-
[Git] Cherry Pick 사용하기General/🟢 General 2022. 2. 20. 12:25
체리피킹은 어떤 회사의 제품이나 서비스 가운데 비용 대비 효율이 뛰어나거나 인기 있는 특정 요소만을 골라 합리적으로 소비하려는 현상을 가리키는 경제 용어이다. 체리피킹에 대해서 알고 계신가요? 나에게 이득이되는 점만 쏙 사용하고 나머지는 버리는 전략인데요. 예를 들어 스포티파이 무료체험 3개월만 사용하고 실제 유료 결제 구독은 하지 않는 거죠 😆 그런데 우리 프로젝트의 버전관리에서도 이런 전략을 취할 수 있습니다! Cherry Pick : 다른 브랜치에서 하나의 커밋만 가져와서 반영시키기 보통 다른 브랜치의 커밋을 내 브랜치에 반영하는 방법은 병합이나 리베이스 입니다. 병합은 브랜치가 분기된 시점부터의 모든 커밋을 내 브랜치에 반영하게 됩니다. 하지만 다른 브랜치가 아직 미완성 상태여서 모든 커밋을 가져..
-
[Design Patterns] 옵저버 패턴이란?General/🟢 General 2022. 2. 18. 00:01
키워드 : 옵저버, 구독, 이벤트, 알림, 폴링 옵저버는 Subscriber, Listener 등으로도 불립니다. 옵저버는 이벤트가 발생하면 수행할 동작을 정의해놓고 옵저버블을 감시, 구독합니다. 옵저버블은 자신을 구독하려는 옵저버를 등록하고 (register) , 이벤트가 발생했을때 등록된 옵저버들에게 알려줍니다.(notify) 위와 같은 방식으로 옵저버는 이벤트에 바로 반응할 수 있습니다. 폴링이라는 개념과 비교하여 이해해볼까요? 폴링은 옵저버블이 옵저버에게 알려주는 대신, 옵저버가 직접 이벤트가 발생하는지 주기적으로 감시하는 방법을 사용합니다. ( for , while 등을 떠올리면 됨 ) 하지만 주기가 아닐때 발생한 이벤트를 알지 못하고, 발생하지 않을 때도 자원을 점유하고 있기 때문에 오버헤드가..
-
[SOLID] 의존관계 역전 원칙이란?General/🟢 General 2022. 2. 17. 23:46
Dependency inversion principle 고수준의 모듈이 저수준의 모듈에 직접 의존하지 않고, 인터페이스에 의존한다. 저수준의 모듈도 이 인터페이스를 의존한다. 저수준의 입장에서 의존 받는 입장에서 의존 하는 입장으로 관계가 역전된다. 처음보면 이해가 잘 가지 않습니다. 아래 설명을 한번 볼까요? High Level Module 과 Low Level Module 보통 더 많은 정보를 가지고 있으면 하이레벨 ( 동물원 ) 상대적으로 적은 정보를 가지고 있으면 로우레벨이라고 설명합니다. (동물들) 정리하자면 동물원은 펭귄, 사자, 코끼리에 의존하고 있습니다. 이것이 보통은 자연스러운 관계입니다. 하지만 ... 프로그래밍 세계에서는... 양이나 소, 토끼 등 동물들이 계속 추가되면 동물원은 더 ..
-
[Git] Rebase 사용하기General/🟢 General 2022. 2. 13. 14:57
안녕하세요🐶 이번 시간에는 개념은 알았지만 실제 적용은 많이 해보지 않았던 rebase 에 대해 정리해보았습니다. 이제부터라도 깃이 제공하는 다양한 기능들을 제대로 사용해보려구요. 리베이스는 어려운 개념이 아닙니다. 그럼 시작할게요! 무엇을 하는 명령인가? 베이스 커밋을 갈아치기 한다. base 를 다시(re) 정한다. 목적 불필요한 병합 커밋을 줄여서 그래프를 깔끔하게 보이게 할 수 있다. 활용할 수 있는 상황 upstream 의 main 브랜치로 풀 리퀘스트를 보내려고 하는데, merge conflict 가 발생한다. 보통과 같은 상황이면 자신의 작업 브랜치로 main 을 머지해서 충돌을 해결한후, 다시 pr 을 보내면 된다. ( fast-forward merge 가 될 것 이다 ) 이렇게 하면 원래..
-
문자열 인코딩이란?General/🟢 General 2022. 2. 12. 10:55
위와 같이 웹 페이지가 알 수 없는 문자로 보이신 경험 있으신가요? 문자열 인코딩과 관련이 있는 문제입니다. 문자열 인코딩 문자열 인코딩이란, 사용자가 입력한 문자를 컴퓨터가 해석할 수 있는 신호로 변환하는 것입니다. 이 때, 신호로 변환하는 규칙이나 기준이 있어야할 것 입니다. 어제는 'a' 라는 문자를 0010 으로 저장하기로 했다가, 오늘은 0011 로 저장한다면 어제 저장해 놓은 글자는 오늘 알아볼 수 없게 될 것입니다. 이렇게 신호로 변환하는 규칙을 문자 집합 이라고 부릅니다. 가령 'a' 는 비트열 16진수 61로 저장하기로 정한다!!! 라는 규칙과 같은 것입니다. 저장된 문서의 인코딩 규칙을 알고 있고, 해당 규칙을 이해하고 있는 컴퓨터는 16진수 61을 만나면 'a' 라는 문자를 화면에 잘..
-
[책샀어요] 실용주의 프로그래머 절판과 자본주의의 쓴맛일상/💰 내돈내산 2022. 2. 7. 22:45
최근 조엘 온 소프트웨어를 다 읽고, 새로 읽을 책을 고르던 중 눈에 자주 밟힌 책이 있었습니다. 실용주의 프로그래머 라는 책인데요. 많은 유튜버와 블로그에서 추천해주는 책이어서 이번 기회에 읽어보려고 합니다. 문제는 2021년 12월 31일 절판되었다는 것인데요. 알라딘, yes24, 교보문고 눈을 씻고 찾아봐도 새상품을 파는 곳은 없었습니다. 판권 종료로 더이상 생산할 계획이 없다는 메시지도 붙여놓았더라구요... 그래서 중고를 구입하려고하니 가격이 당근에도 중고나라에도 없었답니다 :) 동네 도서관이나 대학 도서관에서 빌릴 수도 있겠지만, 코시국이기도하고 남의 책을 읽는 것을 썩 좋아하지 않아서 어쩔 수 없이 알라딘 중고매장에서 그나마 저렴한 가격으로 구입했습니다. 아직 학생이었다면 절대 못샀을 것 같..