반응형

개발 113

g

[Git] 안심하고 commit하자 reflog

아래 포스팅에서 자주 쓰는 명령어와 업무 flow를 정리해 보았다. https://growing-dev101.tistory.com/20 [Git] 자주 쓰는 명령어 Git 자주 쓰는 명령어 내가 현업에서 Git을 사용하면서 자주 사용하는 순으로 나름대로 정리해 보았다. 실제로 더 디테일한 옵션을 사용하기도 하지만 아래 내용만으로도 대부분의 업무가 가능하 growing-dev101.tistory.com 터미널에서 Git을 잘 활용해서 복잡하게 얽힌 상황을 해결해야 할 때가 있고 또 그런 환경에서 실수하기 쉽다. GitHub에서 원격 저장소가 여러 개이고 Fork 된 저장소까지 있다면 단순 작업을 하더라도 실수할 소지가 많다. Merge나 Rebase가 제대로 되지 않아, 원격 저장소와 로컬 저장소의 상태가..

개발/Git 2023.01.13

g

[Git] 자주 쓰는 명령어, 익숙해지자

Git 자주 쓰는 명령어 내가 현업에서 Git을 사용하면서 자주 사용하는 순으로 나름대로 정리해 보았다. 실제로 더 디테일한 옵션을 사용하기도 하지만 아래 내용만으로도 대부분의 업무가 가능하고, 브랜치가 엄청 많거나 분단위로 커밋이 발생하는 경우가 아닌 이상 충분하다고 생각한다. # remote 저장소로부터 git repository를 복사한다. git clone [remote repo] # commit history를 보여준다. git log # 한줄로 commit 로그를 출력한다. git log --oneline # commit 로그 그래프를 보여준다. git log --graph # 현재 파일 상태를 표시한다. git status # stage 상태와 HEAD를 비교한다. git diff --sta..

개발/Git 2023.01.13

g

[도서 리뷰] 소프트웨어 장인 책을 읽은 후기

http://www.yes24.com/Product/Goods/20461940 소프트웨어 장인 - YES24 더 나은 개발자가 되어, 더 좋은 코드를 전달하고 싶은 당신을 위하여...이 책에서 풀어낸 소프트웨어 장인정신의 프로페셔널리즘, 기술적 탁월함, 고객 만족은 애자일, 린(lean) 원칙들과 시너지 www.yes24.com 총평 소프트웨어 엔지니어링 관련 업무를 하며 처음으로 접한 책이다. 많은 추천과 후기가 있는 걸 보면 분명히 얻을 수 있을게 많다고 생각해서 정말 진지하게 꼼꼼하게 읽었다. 많은 사람들이 읽었다고 해서 다 맞거나 모두 공감할만한 내용은 아닐 수 있지만 적어도 소프트웨어를 진지하게 바라보기 시작하는 내 입장에서는 많은 내용이 공감되고 와닿았다. 개발을 하다 보면 실제 개발보다는 이..

g

[Git] GitHub vs Gerrit

GitHub와 Gerrit이 뭐지? GitHub와 Gerrit 두 가지 모두 코드를 관리하고 코드 리뷰를 통한 협업을 위한 시스템이다. Git을 베이스로 하여 각자 로컬 저장소에 있는 코드들을 함께 효율적으로 관리하기 위해 만든 시스템이라고 볼 수 있다. 또한 두 가지 모두 코드 리뷰를 자동화하고 강제하는 목적에 맞춰 만들어진 시스템이다. 수정한 코드를 적용하려면 일정 점수 이상의 코드 리뷰 점수를 획득해야 하도록 설정할 수 있다. 개발자가 수정한 코드를 중앙 저장소에 보내면 자동으로 지정된 리뷰어에게 알림이 가고, 리뷰어는 온라인으로 리뷰를 진행한다. 리뷰에서 규정된 점수 이상을 획득하면 최종적으로 해당 코드를 반영할 수 있다. Gerrit https://www.gerritcodereview.com/a..

개발/Git 2023.01.09

g

[개발 상식] 프로그래밍 패러다임을 알아보자

프로그래밍 패러다임의 개념과 패러다임 3가지 종류에 대해서 알아보도록 하겠다. 프로그래밍 패러다임 프로그래밍 패러다임은 어떠한 방식으로 프로그래밍을 할지, 프로그래밍 혹은 코드를 바라보는 관점에 대한 고민에서 나온 전략이라고 볼 수 있다. 사람이 프로그래밍을 하고 컴퓨터가 프로그래밍된 대로 돌아가는데, 결국 똑같은 기능을 하더라도 어떻게 프로그래밍을 하느냐에 따라 코드가 천차만별이 될 수 있다. 따라서 프로그래밍이 지향하는 혹은 지양하는 방법들과 프로그래밍할 언어가 어떠한 고민과 철학을 갖고 만들어졌는지에 대한 생각이라고 이해할 수 있다. 대표적으로 절차적, 객체지향, 함수형 프로그래밍이 있다. 1. 절차적 프로그래밍 절차 혹은 순서에 따라 프로그래밍을 하는 방식으로, 어떤 프로시저의 호출을 바탕으로 한..

g

[Git] 좋은 commit message 작성

commit message가 중요한가요? 개발하면서 commit을 많이 하는데, commit message의 중요성을 간과하는 경우가 많다. commit이 수백 수천 개가 되고, 수십 수백 명이 개발하는 환경이라면 더더욱 message의 명확성과 간결성이 중요해질 것이다. 결국 개발은 사람이 하는 것이므로 사람이 이해하기 좋은 것(가독성)이 좋은 commit message라고 할 수 있을 것 같다. 그럼, 좋은 commit message는 무엇일까? 사실 좋은 commit message가 어떤 것이다라는 정답은 없다. 당연히, 회사, 과제, 인원들의 수준 등에 따라 달라질 수밖에 없고 또 달라져야 한다. 하지만 우리 S/W라는 분야는 언제나 그렇듯, 정답은 없지만 여러 시행착오를 거쳐 나온 일반 원리 혹..

개발/Git 2023.01.08

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분 이내로 가능한 짧게 정해진 시간은 없다 어제 무엇을 했는지, 오늘 무엇을 할건지, 막히는 부분/도움이 필요한 부분이 있는지를 이야기한다 이렇게 데일리 스크럼을 잘 활용하면 장점이 많다. 우선 구성원 간에 같은 목표를 향할 수 있다. 매일 같이 서로 어떤 일을 하는지 알 수 있고 정보 공유가 자연스럽게 되면서 함께 일해나가는 느낌이 든다. 두 번째로는 친밀해져서 의사소통이 잘 된다..

반응형