본문 바로가기

전체 글266

[Git]03 - upstream / PR / fork / rebase / merge 전략 챕터 안내 Ch04. 둘 이상의 원격저장소로 협업하기 원본저장소를 복사해서 너구리의 원격저장소를 만든다(fork) 원본저장소에 풀 리퀘스트 보내기 묵은 커밋을 새 커밋으로 이력 조작하기(rebase) 개념 정리 upstream 원본저장소를 지칭하는 관용적 닉네임 평행세계를 만드는 브랜치, 평행우주를 만드는 포크 기본적으로 원격저장소에 커밋을 직접 푸시할 수 있는 사람은 소유자뿐이다. 다른 사람이 푸시 하려면 협력자로 등록해야한다. 원격저장소의 소유자는 많은 개발자들에게 의견을 받고 오픈소스를 개선하고싶은 니즈가 있다. 개발자는 오픈소스에 참여하고 기여하고 싶어한다. 하지만 원본저장소에 직접 푸시하는것에 대한 부담이 있다. 이럴때 대안이 될 수 있는 방법이 풀 리퀘스트 Pull Request 이다. 원본저.. 2022. 11. 1.
[Git]02 - 협업 / Branch / HEAD / Conflict / Pull Request 개념 정리 브랜치 특정 기준에서 줄기를 나누어 작업할 수 있는 기능 체크아웃 브랜치를 이동하는 명령어. 새 브랜치를 체크아웃 체크박스를 선택하면 브랜치를 만듦과 동시에 그 브랜치로 이동하게 된다. 체크를 해제하고 브랜치를 생성하면 HEAD는 여전히 master를 가리킨다. 병합merge 두 버전의 합집합을 구하는 것. 여러 사람이 동시에 버전 관리를 해야한다면 ? 서로의 작업물에 의존하지 않고 내가 원할 때 코드를 올리고, 또 내가 원할 때 협업자의 코드와 합칠 수 있다. 특정 기준에서 줄기를 나누어 작업할 수 있는 기능을 브랜치라고 한다. 새로운 가지로 커밋을 만들려면 반드시 브랜치를 먼저 만들어야한다. 여러 작업자가 한 커밋을 기준으로 커밋을 만드려고 한다면 오류가 난다. 먼저 커밋한 사람은 정상적으.. 2022. 6. 28.
[Git]01 - 기본개념 / 시작하기 / 커밋 / 원격저장소 개념 정리 버전관리 작업을 진행할 때 원하는 시점(버전)으로 이동할 수 있다 버전관리 툴 버전관리를 도와주는 툴. Git과 Github등이 있다. GUI 그래픽 유저 인터페이스. 마우스로 클릭해서 사용하는 방식 CLI 커맨드 라인 인터페이스. 명령어를 입력하는 방식 Git Bash CLI방식으로 Git을 사용할 수 있는 환경 체크아웃한다 checkout 으로 원하는 지점으로 파일을 되돌릴 수 있다. 타임머신과 같다. 로컬저장소 git으로 버전관리하는 내 컴퓨터 안의 폴더를 의미 원격저장소 github에서 협업하는 공간(폴더)를 의미 레포지토리 원격저장소 푸시 로컬저장소의 커밋을 원격저장소에 올리는 것 풀 원격저장소의 커밋을 로컬저장소에 내려받는것 첫번째 커밋 만들기 Git 시작하기 git init .gi.. 2022. 6. 2.
실용주의 프로그래머 Assignment #15 - 9장. 실용주의 프로젝트 오늘 TIL 3줄 요약 버전관리, 테스트, 자동화 실용주의 기법 요약 실용주의 시작 도구 TIL (Today I Learned) 날짜 2022-04-05 오늘 읽은 범위 9장. 실용주의 프로젝트 책에서 기억하고 싶은 내용을 써보세요. 안정적인 소프트웨어를 위한 마법 삼총사인 버전관리, 테스트, 자동화 프로그래머는 고양이 같은 면이 잇다. 호기심 많고 제멋대로이며, 고집이 세고, 독립적인 데다, 가끔은 인터넷에서 숭배를 받기도 한다. 팀 전체에 실용주의 기법들을 어떻게 적용 할 수 있는지 간략한 요약 깨진 창문을 없애라 - 사소한 결점을 아무도 고치지 않고 놔두어서는 안되고, 제품의 품질에 책임을 져야한다. 삶은 개구리 - 개구리는 서서히 변화하는 환경을 감지하지 못하고 결국 삶아진다. 팀은 개인보다 더 .. 2022. 4. 6.
실용주의 프로그래머 Assignment #14 - 미션(3) 연습문제 33 다음 문장들이 진정한 요구사항인가? 가능하다면 진정한 요구사항이 아닌것을 좀 더 유용하게 고쳐보라 응답시간은 500ms이하여야한다. 요구사항이 맞다고 생각한다. 코드 자체의 효율성도 중요하겠지만 응답 시간을 향상 시키기 위해서는 서버나 데이터베이스의 성능 또한 중요하다고 생각된다. -> 해답 : 요구사항처럼 보인다. 환경 대문에 애플리케이션에 제약을 추가할 수 있다. 모달 창의 바탕색은 회색이다. 요구사항이 맞다고 생각한다. -> 해답 : 이 문장만으로는 진짜 요구사항이 아니다. 무엇이 필요한지 알기 위해서 "왜?"라는 질문을 할 필요가 있다. 애플리케이션은 프론트엔드 프로세스 몇개와 백엔드 서버로 구성된다 요구사항이 아니라고 생각한다. 몇개의 프론트엔드와 백엔드 서버로 구현할지는 고객의 .. 2022. 4. 4.
실용주의 프로그래머 Assignment #13 - 8장. 프로젝트 전에 오늘 TIL 3줄 요약 요구사항 사용자와 함께 일하라 짝 프로그래밍과 몹 프로그래밍 TIL (Today I Learned) 날짜 2022-04-03 오늘 읽은 범위 8장 프로젝트 전에 책에서 기억하고 싶은 내용을 써보세요. 신입 개발자들이 자주 범하는 실수는 이런 요청 사항을 받았을 때 바로 해결책을 구현해 버리는 것이다. 하지만 의뢰인이 미처 고려해보지 않은 문제도 있을 것이다. 좋은 개발자라면 협상 능력을 키울 수 있는 상황이기도 하다. 요구사항은 피드백을 반복하며 알게된다. 말로 표현하기 어려울 때도 있다. 목업이나 프로토타입을 만들어서 의뢰인에게 직접 다루어 볼 수 있도록 한다. 만든 모형이나 프로토 타입이 이리저리 바꾸기 쉬워서 의뢰인과 대화하는 도중에도 계속 바꿀 수 있다면 이상적이다. 실용주.. 2022. 4. 3.
실용주의 프로그래머 Assignment #12 - 7장. 코딩하는 동안 오늘 TIL 3줄 요약 프로토타이핑 의도적으로 프로그래밍하기 우연에 맡기지 않기 TIL (Today I Learned) 날짜 2022.04.02 오늘 읽은 범위 7장 책에서 기억하고 싶은 내용을 써보세요. 가면증후군 : 자신이 가진 능력이 과대평가 받았고 자신은 자격이 없는 사람이라고 생각하며 불안해하는 것 코드가 잘 안 써질때가 있다. 그럴때는 일단 멈추고, 뇌가 정리 할 수 있는 약간의 시간과 공간을 확보하라. 산책을 하거나 점심을 먹거나 수다를 떨거나.. 이 방법이 잘 통하지 않는다면 코드에 대한 그림을 그리거나, 동료에게 설명을 해보라. 사람이 없다면 고무오리라도 괜찮다. 그래도 어렵다면 프로토타이핑으로 만들어라. 코드를 우연에 맡기지말아라. 왜 잘 돌아가는지 몰라서는 안된다 인터넷 검색으로 찾은.. 2022. 4. 3.
실용주의 프로그래머 Assignment #10 - 6장. 동시성 오늘 TIL 3줄 요약 동시성과 병렬성 공유 상태 없는 동시성을 위하여 액터를 사용하라. 칠판 시스템 TIL (Today I Learned) 날짜 2022.03.29 오늘 읽은 범위 6장. 동시성 책에서 기억하고 싶은 내용을 써보세요. 동시성(Concurrency): 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것 병렬성(Parallelism): 실제로 동시에 실행되는것 모든 일에는 동시성이 있다. 여러분의 애플리케이션이 실제 세상을 다루기 원한다면 동시성은 필수다. 세상은 비동기적이기 때문이다. 동시성이나 병렬성을 지원하는 코드를 쓰는 건 왜 어려울까? 한가지 이유는 우리가 프로그래밍을 순차적 시스템으로 배워서다. 순차적으로 사용할 땐 비교적 안전하지만, 동시에 두가지 일이 일어.. 2022. 3. 29.
[책] 주니어개발자가 읽어 본 소프트웨어 아키텍처 101 회사 상사분과 대화를 나누며 책 이야기가 나왔을 때 개발자로서의 가이드라인을 제시해주신 적이 있다. 지금은 입사 초반이므로 객체지향 언어에 대한 대한 서적을 먼저 필독이라고 알려주셨고, 그다음으로는 알고리즘 혹은 디자인 패턴에 대해 공부하라고 알려주셨다. 그 뒤에 5년 정도의 경력이 쌓인 후 아키텍처에 대해서 공부해보면 좋을 거라고 하셨다. 개발 관련 문서나 블로그 등을 읽다 보면 아키텍처, 아키텍트라는 단어가 자주 보이곤 하지만 그 뜻을 정확하게 이해하고 있진 않았다. 그러다가 만나게 된 소프트웨어 아키텍처 101이라는 책. 아직 개발 실무 경험도 많지 않고 여러모로 공부하는 단계여서 아직 읽기는 이를 수도 있다고 생각했지만 모르는 분야이지만 언젠가 공부해야 한다면 미리 읽고 용어들에 익숙해져 두는 것.. 2022. 3. 28.
실용주의 프로그래머 Assignment #08 - 5장. 구부러지거나 부러지거나 오늘 TIL 3줄 요약 결합도 줄이기 설정데이터 - 정적 설정, 서비스형 설정 이벤트 TIL (Today I Learned) 날짜 2022.03.26 오늘 읽은 범위 5장. 구부러지거나 부러지거나 책에서 기억하고 싶은 내용을 써보세요. 결합도 줄이기 가능한 한 느슨하고 유연한 코드를 작성해야한다. 그렇지 않으면 코드는 금세 낡고 수정하기 어려워지고, 결국 기억 저편으로 사라질 것이다. 유연함을 유지하는 한 가지 좋은 방법은 물론 가능한 한 코드를 적게 작성하는 것이다. 코드 수정은 새로운 버그가 생기는 계기이기도하다. 높은 결합도는 변경의 적이다. 결합도가 낮은 코드가 바꾸기 쉽다. 소프트웨어 구조는 유연해야한다. 다음과 같은 결합의 증상을 놓치지 않도록 주의해라 개발자가 수정하는 부분이 시스템에 어떤 .. 2022. 3. 27.
실용주의 프로그래머 Assignment #06 - 4장. 실용주의 편집증 오늘 TIL 3줄 요약 완벽한 소프트웨어를 만드는 것은 불가능하다. "그런 일은 절대 일어날리 없다"는 없다. 작은 단계를 밟아라. 언제나. TIL (Today I Learned) 날짜 2022년 3월 24일 오늘 읽은 범위 4장. 실용주의 편집증 책에서 기억하고 싶은 내용을 써보세요. 여러분은 완벽한 소프트웨어를 만들 수 없다. 삶의 공리로 인정하고 받아들여라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다. 그리 길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다. (중략) 그래봐야 일관성을 확인하고 데이터베이스 칼럼에 제약을 거는 정도로 뿌듯해 하는 경우가 대부분이다. 모든 프로그래머가 자기 경력을 쌓는 초기부터 암기해야 하는 계명이 있는것 같다. 요구사항,.. 2022. 3. 24.
실용주의 프로그래머 Assignment #05 - 3장. 기본도구 오늘 TIL 3줄 요약 도구 사용법에 익숙해져라 버전관리를 하라 일지를 써라 TIL (Today I Learned) 날짜 2022.03.23 오늘 읽은 범위 3장. 기본도구 책에서 기억하고 싶은 내용을 써보세요. 도구는 여러분의 재능을 증폭한다. 도구가 더 훌륭하고 여러분이 더 사용법에 능숙해질수록 여러분의 생산성은 더 높아질 것이다. 마우스나 트랙패드를 치워라 프로젝트 허브로서의 버전관리 디버깅은 단지 문제풀이일 뿐이라는 사실을 받아들이고, 그런 마음으로 공략하라. 비난 대신 문제를 해결하라 경계조건과 실제 최종사용자의 패턴 모두를 철저히 테스트 해야한다. 엔지니어링 일지 - 기억보다 더 믿을 만하다. 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 오늘은 다양한 도구에 대한 이야기였다. 이미 내.. 2022. 3. 24.
실용주의 프로그래머 Assignment #03 - 2장.실용주의 접근법 오늘 TIL 3줄 요약 ETC 원칙 - 바꾸기 더 쉽게 다른 사람의 소스 코드와 문서 읽고 배우고, 기억하기 높은 응집도와 낮은 결합도 TIL (Today I Learned) 날짜 2022. 03. 20 오늘 읽은 범위 2장. 실용주의 접근법 책에서 기억하고 싶은 내용을 써보세요. ETC원칙 - 바꾸기 더 쉽게 왜 결합도를 줄이면 좋은가? 관심사를 분리함으로써 각각이 더 바꾸기 쉬워지기 때문이다. 왜 단일 책임 원칙이 유용한가? 요구사항이 바뀌더라도 모듈 하나만 바꿔서 반영 할 수 있기 때문이다. 왜 이름 짓기가 중요한가? 이름이 좋으면 코드가 읽기 쉬워지고, 코드를 바꾸려면 코드를 읽어야 하기 때문이다. ETC는 규칙이 아닌 가치이다. 파일을 저장할때, 테스트를 쓸때, 버그를 수정할 때도 '바꾸기 더 .. 2022. 3. 21.
반응형