반응형

전체 글 241

g

[성과] 회사에서 성과를 내고 인정 받는 법

일을 하면서 성과를 내고 고과를 잘 받는 법이 뭘까? 당연히, 그걸 알면 내가 여기서 이러고 있을까? 하지만 회사생활을 10년 정도 하다 보니 최소한 어떻게 해야 확률이 높아지는지는 알 수 있을 것 같다. 최근에 고과 시즌에다가 진급 시즌이다 보니 다들 고민이 많은 것 같다. 최소한 주니어들에게는 조언을 해줄 수 있지 않을까 싶다. 고과는 운이다 솔직히 말해서 운이 매우 많이 차지한다. 아니 나는 운이 아니고 성과도 엄청 내고 어필해서 잘 받았는데?라고 한다면 진짜 운이 안 좋아서 아무리 잘해도 받을 수 없는 구조를 겪어보지 못한 사람이다. 오래된 히스토리의 조직(진입장벽이 높은 기술), 초기부터 합류한 헌신적인 멤버가 버티고 있고, 또 그들로 인해 피해를 보아왔던 중간연차 선배들이 이제야 받아야지라는 ..

공부 2023.01.06

g

[라이브러리] 정적(static) vs 공유(shared)

정적 라이브러리(Static Library)란? 프로그램 빌드 시에 라이브러리가 제공하는 코드를 실행 파일에 넣어서 빌드하는 방식의 라이브러리를 의미한다. 정적 라이브러리를 사용하여 컴파일하면 링커가 프로그램이 필요하는 부분을 라이브러리에서 찾아 실행파일에 복사한다. 실행파일에 다 들어가기 때문에 실행할 때 라이브러리가 필요 없이 다 포함되어 있다. 장점은 시스템 환경이 변해도 애플리케이션에 아무런 영향이 없고, 완성된 애플리케이션을 안정적으로 사용할 수 있다는 점이다. 반면에 사용하는 모든 오브젝트 코드를 실행 파일에 포함하기 때문에 메모리에 로드되는 애플리케이션 코드 크기가 커진다는 단점이 있다. 리눅스에서는 확장자 a가 붙는다. 공유 라이브러리(Shared Library)란? 어떤 라이브러리가 제공..

g

[Git] 터미널에 Git branch 표시

Git branch의 의미 Git에서 branch는 생각보다 매우 중요하며 필수적이다. 아래 Git 원리 강의에서 branch의 의미에 대해서 충분히 이해해야 한다. https://growing-dev101.tistory.com/8 [Git] 원리 강의 추천 Git 이 그렇게 중요한가? 내가 생각했을 때 소프트웨어 개발에서 가장 중요한 것이 뭐냐 라고 했을 때 (C언어와 같은 근본적인 언어를 제외하고서) 망설임 없이 Git 이라고 할 것이다. 하지만 막상 growing-dev101.tistory.com branch가 지정되지 않고 HEAD가 특정 commit을 그대로 가리키는 상태는 detached HEAD 상태이다. Detached HEAD란? 보통 브랜치는 특정 commit을 가리키고 HEAD가 이 ..

개발/Git 2023.01.05

g

[Git] 원리를 이해해야 보인다, 강의 추천

Git 이 그렇게 중요한가? 내가 생각했을 때 소프트웨어 개발에서 가장 중요한 것이 뭐냐라고 했을 때 (C언어와 같은 근본적인 언어를 제외하고서) 망설임 없이 Git 이라고 할 것이다. 하지만 막상 사용해보고 처음 접하면 굳이 이게 왜? 그냥 별거 아닌 거 같은데 라는 생각이 든다. 그냥 git이라는 명령어로 시작하는 수많은 툴 중에 하나인데 이게 왜 이렇게 유명하고 필수적인가? 막상 개발을 하고 여러 사람과 협업하고 여러 가지 수정 상황을 겪어보면 비로소 Git의 위대함을 이해할 수 있다. Git은 분산 버전 관리 시스템 기존 버전관리 시스템(SVN과 같은) 과 차별화되는 Git의 특징은 분산형 버전관리 시스템이라는 것이다. 또한 분산형 버전관리가 오프라인으로 관리가 되는 것이 중요하다. 출장을 가거나..

개발/Git 2023.01.05

g

[개발문화] 데일리 스크럼을 더 잘하기 위한 방법

데일리 스크럼이란? 스크럼 방법론에서 쓰이는 용어로, 날마다 하는 짧은 회의를 뜻한다. 매일 현재 상태를 업데이트하고 조율하는 것 을 의미한다. 다른 애자일 방법론인 XP에서는 스탠드업 미팅이라고 하는 것도 있다. 스탠드업 미팅에서는 회의를 서서한 것이 필수적이다. 데일리 스크럼의 기본 원칙을 보면 아래 세가지 정도이다. 15분 이내로 가능한 짧게 정해진 시간은 없다 어제 무엇을 했는지, 오늘 무엇을 할건지, 막히는 부분/도움이 필요한 부분이 있는지를 이야기한다 이렇게 데일리 스크럼을 잘 활용하면 장점이 많다. 우선 구성원 간에 같은 목표를 향할 수 있다. 매일 같이 서로 어떤 일을 하는지 알 수 있고 정보 공유가 자연스럽게 되면서 함께 일해나가는 느낌이 든다. 두 번째로는 친밀해져서 의사소통이 잘 된다..

g

[블로그] 시작이 반이다

누구나 그렇고 언제나 그랬듯 새해가 되면 지난해를 정리하고 반성하며 여러 가지 목표를 세우고 실천하거나 실천하지 않거나 작심삼일이 반복될 것입니다. 그런 의미에서 작년은 나에게 좀 특별했습니다. 새로운 도전들을 했고 결국엔 이룬 것들이 훨씬 많고 느낀 게 많았습니다. 정체되어 있던 나는 성장했습니다. 올해는 기존과 달라진 나를 증명하는 한해가 될 것 같습니다. 블로그는 그것들을 기록하고 자극하는 플랫폼이 될 것입니다. 이 블로그를 보는 사람 모두 성장하고 증명할 수 있길 바랍니다.

공부 2023.01.05

g

[Git] Gerrit Reviewer 등록을 자동화하자

Gerrit Reviewer 등록 코드리뷰를 강제하는 회사가 많아지는 걸로 알고 있다. Gerrit을 사용하고, 코드리뷰가 필수인 경우 로컬에서 자체적으로 리뷰어를 등록해 놓으면 push 때마다 gerrit상에서 자동으로 등록이 된다. # gerrit 이라는 remote 를 만든다. git config remote.gerrit.url ssh://xx # %r 뒤로 리뷰어를 추가한다. git config remote.gerrit.push HEAD:refs/for/master%r=abc@gmail.com,r=def@gmail.com . git/config 내에 아래와 같이 반영된다. [remote "gerrit"] url = ssh://xx push = HEAD:refs/for/master%r=abc@gma..

개발/Git 2023.01.05

g

[Git] Git을 사용하는 방법 shell(cli)방식과 GUI방식

Git을 사용하는 방법 shell(cli)방식과 GUI방식 Git을 사용하는 방법에는 크게 두 가지가 있다. 첫 번째는 shell 명령어로 하는 방식이다. 기본적인 방식이며 가장 빠르고 권장하는 방식이다. 두 번째는 GUI 툴을 사용하는 것이다. 명령어로는 하기 어려운 유용한 동작들을 쉽고 편하게 GUI 방식으로 활용할 수 있는 것이 큰 장점이다. 무엇보다 git을 처음 접하거나 익숙하지 않은 사람은 툴을 사용하는 것이 접근하기 훨씬 수월할 것이다. 굳이 한 가지를 더하자면 IDE 자체에서 제공하는 툴을 사용하는 것이다. 두 가지 방식 중 그럼 무엇을 추천하는가? 개인적으로는 두 가지 방식을 혼용해서 사용해야 한다고 생각하고 그렇게 사용하고 있다. 우선 명령어 방식의 장점은 자유도가 높고 빠르고 직관적이..

개발/Git 2023.01.04

g

[Git] Git alias 활용해서 생산성을 높이자

Git alias 란? git을 명령어로 입력하는 방식으로 사용하는 것이 처음에는 힘들지만 익숙해지면 자유롭게 활용할 수 있어서 좋다. 이때 좀 더 효율적으로 명령어를 입력하기 위해 git alias를 지원한다. checkout, branch, status와 같은 명령어는 매우 자주 사용되지만 매번 입력하기 귀찮은 것들을 축약해서 등록하고 사용한다. Git alias 사용 일반적으로 많이 사용하는 alias를 소개한다. alias를 등록하는 방법은 두 가지가 있다. 두 가지 모두 결국 ~/.gitconfig 에 기록되지만 등록하는 방식이 다르다. 하나는 아래와 같이 git config --global alias.xx XXXX와 같이 명령어를 입력해서 등록하는 것이다. $ git config --globa..

개발/Git 2023.01.04

g

[블로그] 무엇을 기록할 것인가

S/W 개발과 자기 계발 S/W 개발과 관련된 주제가 가장 주된 내용이 될 것입니다. C, C++, Python 등과 같은 언어부터 Embedded System, Firmware, Linux와 같은 도메인 내용을 포함하여 CMake, gtest, Git, GitHub, Jenkins, IDE와 같은 개발환경도 다룰 예정입니다. 개발자가 갖추어야 할 자질을 크게 두 가지로 생각합니다. 하나는 기본기로 언어, 자료구조, 알고리즘, 소프트웨어 공학 등과 같은 지식적인 역량을 갖추어야 하고 뿐만 아니라 글쓰기, 말하기, 보고하기, 코드리뷰하기, 협업하기 등과 같은 제너럴 한 역량까지도 굉장히 필요하다고 생각합니다. 또 다른 하나는 이런 기본기를 바탕으로 도전적이고 열정적이며 프로페셔널한 마인드입니다. 이러한 기..

공부 2023.01.03
반응형