깃에서 다른 사람의 코드에 내 코드를 통합할 때(integration) 쓰는 대표적인 두 가지 방법을 비교해 보고 언제 어떤 방식을 써야 하는지 알아 보려고 한다. 머지(Merge) 머지(병합, merge) 는 두 개 이상의 개발 히스토리를 하나로 합치는 작업을 의미한다. merge를 하게 되면 각각의 개발자가 작업한 히스토리가 모두 보존(preserve)된다는 특징이 있다. 예제를 한 번 살펴보자. 두 명의 개발자 Ada와 Satoshi가 각각 feature-1, feature-2를 작업한다. Ada는 작업을 완료해서 master 브랜치에 머지를 한 상태고, 이후 Satoshi가 master 브랜치는 feature-2 브랜치에 머지를 한다고 가정해 보자. 결과는 다음과 같다. Satoshi가 작업한 C..
전체 글
안녕하세요. 사진과 철학에 관심이 많은 웹 프론트엔드 개발자 오원종입니다. 시간이 지나도 꾸준히 읽힐 수 있는 글을 쓰고 싶습니다. 재미있는 일만 하면서 살고 있는 사람입니다.올해 초 주식투자를 시작하면서 구입한 책이다. 이전부터 뉴욕주민님 유튜브 채널을 통해 많은 인사이트를 얻었던 것 같다. 후원하는 마음으로 이 책을 샀다. 이번 포스팅에서는 이 책을 읽고 정리한 내용을 적어 보려고 한다. CH01 비무장 상태로 미국 주식 시장에 뛰어들지 마라 바이사이드와 셀사이드 그리고 SEC 미국 주식시장의 3개의 시장 플레이어 미국증권거래위원회(SEC) : 규제 당국, 관리 감독 및 규제를 담당 셀사이드(Sell-side) : 유가 증권 유통은 특정 수준의 신용도와 자격을 갖춘 주체만 할 수 있는데 그러한 조건을 갖추고 유통과정을 실행하는 주체 증권사, 투자은행(IB) 등 바이사이드(Buy-side) : 투자 대상을 분석, 선별해 자산을 투자하거나 관리하는 운용 주체 헤지펀드, 사모펀..
이번 포스팅에서는 테스트에 대한 이야기를 해보려고 한다. 첫 번째 주제는 단위 테스트이다. Jest 설치하기 유닛 테스트를 할 수 있는 라이브러리는 여러 가지가 있지만, 나는 jest가 지금 시점에서는 가장 좋은 옵션이라고 생각을 한다. 자바스크립트를 사용하는 프론트엔드, 백엔드 모두 활발하게 쓰이고 있으며, test runner와 test matcher, test mock 등을 별도의 여러 개의 라이브러리를 설치해 주지 않고 이 jest 프레임워크 안에서 한꺼번에 할 수 있기 때문이다. 그러면 jest 를 프로젝트에 설치하는 과정부터 하나씩 살펴보도록 하자. 먼저 jest 라이브러리를 설치한다. yarn add --dev jest 설치 후에는 package.json 파일에 다음과 같이 스크립트를 추가해..
오늘은 오랜만에 제품 리뷰 포스팅을 하려 한다. 내가 약 2달 전쯤에 구매했던 뱅앤올룹슨 베오사운드 A1 2세대 블루투스 스피커이다. 참고로 이 포스팅은 어떠한 대가도 받지 않고 작성하는 솔직. 담백. 리뷰임을 먼저 밝힌다. 나는 이전에 JBL의 Pulse 3 스피커를 사용했다. 그 스피커도 나에겐 충분히 좋았다. 개인적인 사정으로 그 스피커를 다른 사람에게 넘겨주게 된 이후, 한동안은 블루투스 스피커 없이 살았다. 예를 들면 맥북 내장 스피커, 아이패드 스피커, 갤럭시 폰 스피커 등등... 나쁘진 않았지만 뭔가 아쉬움이 있었고, 그래서 여러가지 블루투스 스피커를 알아보기 시작했다. 10만원 이하의 스피커부터 100만원 이상까지 정~말 다양한 종류의 스피커가 있었다. 개인적으로 한 번도 안 써본 브랜드의..
아이템 1. 타입스크립트와 자바스크립트 관계 이해하기 타입스크립트는 문법적으로 자바스크립트의 상위집합. → 자바스크립트 프로그램에 문법 오류가 없다면, 유효한 타입스크립트 프로그램이라고 할 수 있다. → 자바스크립트 프로그램에 어떤 이슈가 존재한다면 문법 오류가 아니라도 타입 체커에게 지적당할 가능성이 높다. → 문법의 유효성과 동작의 이슈는 독립적인 문제 타입 시스템의 목표 중 하나는 런타임에 오류를 발생시킬 코드를 미리 찾아내는 것이다. → 그러나 타입 체커가 모든 오류를 찾아내지는 않음 → 타입 체커를 통과하면서 런타임 오류를 발생시키는 코드는 충분히 존재. 타입스크립트 타입 시스템은 자바스크립트의 런타임 동작을 '모델링' 한다. const x = 2 + '3'; // 정상, string const..
4. 영지식 증명에 대해 어린아이에게 설명해 준다고 생각하고 본인만의 언어로 설명해주세요. 영지식 증명은 말 그대로 지식이 없이 해당 내용을 증명하는 것이다. 비유를 통해 설명을 해 보도록 한다. 증명자 재석은 어떤 동굴 안에 비밀의 문을 열 수 있는 열쇠를 가지고 있다. 동굴은 다음과 같은 고리 모양으로 되어 있으며 가운데 비밀의 문이 있다. 입구에서는 비밀의 문이 보이지 않는다. 검증자 명수는 키를 가지고 있을 수도 있고, 아닐 수도 있다. 명수가 키를 가지고 있는지 여부를 재석은 알아내야 하지만 명수는 그 사실을 알려주지 않는다. 이러한 상황 속에서 명수가 아무런 정보도 주지 않고 키를 가지고 있는지 재석이 증명하려면 다음과 같이 해볼 수가 있다. 먼저 명수가 A 또는 B 문으로 들어간다. 재석은 ..
최근에 웹 프론트엔드 개발자로 취업을 준비하는 개발자 지망생 분들을 멘토링을 하면서 여러가지 질문들을 받는데, 그 중에서 나도 고민을 하고 답변을 해준 질문들이 있었던 것 같아 그러한 질문들도 조금씩 블로그에서 다루어 보려고 한다. 이번 주제는 리액트에서의 상태관리를 어떤 방식으로 하는 것이 소위 best practice인가에 대한 질문을 받았고 이에 대한 내 생각을 정리해 보려고 한다. 어디까지나 이 글이 정답은 절.대. 아니며 자유로운 의견은 댓글로 남겨주면 감사할 것 같다. 질문 : 리액트에서 상태관리는 어떻게 해야 하나요? 상태관리 라이브러리는 꼭 써야 하나요? 쓰게 된다면 어떤 것을 써야 하나요? 이 이야기를 하려면 먼저 Flux 패턴에 대해서 이야기를 할 수 밖에 없을 것 같다. Flux 패턴..
오픈소스 컨트리뷰션 아카데미를 계속해서 진행하고 있다. 조금 늦은 감이 있지만.. 초반에 했었던 학습 중 이더리움에 대한 기본 과제 심화편 공부한 내용을 정리해 보려고 한다. 1. ECDSA가 무엇인지 또 어떻게 동작하는지 간단하게 설명하세요. 타원곡선 디지털서명 알고리즘(ECDSA, Elliptic Curve Digital Signiture Algorithm)은 타원곡선암호를 전자서명에 접목시킨 알고리즘이다. 일반적인 인증 시스템에서 보안 키의 보호가 점점 어려워짐에 따라 보완하기 위해 만들어졌으며 이 방식에서는 발신자에 의한 서명 시 사용되는 개인 키와 수신자가 발신자의 서명을 사용하는 공개키 한 쌍을 갖는다. 블록체인 네트워크에서 트랜잭션을 주고받을 때 수신자가 인증자의 공개 키로 메시지가 진짜인지..