반응형

개발 107

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

[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
반응형