Daily Study | Sukjae

Written by Sukjae who lives and works in Seoul building useful things. You should follow him on Github

Clean Architecture 2

March 15, 2020

원제 Clean Architecture 제목 클린 아키텍쳐 저자 Robert C. Martin ISBN 978-89-6626-247-2 독서 기간 2020-03-15 독서 량 CH…

Clean Architecture 1

March 12, 2020

원제 Clean Architecture 제목 클린 아키텍쳐 저자 Robert C. Martin ISBN 978-89-6626-247-2 독서 기간 2020-03-12 독서 량 CH1, CH…

Lucid Chart

March 12, 2020

Lucid Chart 학습 계기 원래는 keynote나 powerpoint, sketch app 등으로 다이어 그램을 그리곤 했다. 그러다, 이를 더 쉽고 체계적으로 그릴 수 있는 도구들에 대해 알아보게 되었고 lucid chart…

CSS의 Width/Height VS HTML attributes의 Width/Height

January 25, 2020

HTML의 여러 엘리먼트를 스타일링 하기 위해 다양한 방법이 존재한다. 엘리먼트 자체가 약속에 의해 스타일을 포함하는 경우가 있고, 브라우저가 임의로 스타일링 하는 경우도 있으며 css 파일로 적용할 수 있다. 아니면 inline style…

Microbrowser 간단 느낌 정리

January 18, 2020

우연히 microbrowser란 용어에 대해 알게 되었고, microbrowser에 대해 깊이 알아 보기전 간단한 정리를 진행하였다 microbrowser…

객체지향의 사실과 오해 1

December 31, 2019

원제 객체지향의 사실과 오해: 역할, 책임, 협력 관점에서 본 객체지향 저자 조영호 ISBN 978-89-98139-76 독서 기간 2019-12-31 ~ 독서 량…

Node.js Design Patter 1

December 23, 2019

원제 Node.js Design Patter 제목 Node.js 디자인패턴 저자 Mario Casciaro, Luciano Mammino ISBN 9788931459425 독서 기간 2019-11-23 독서 량 1장 시작하기 앞서… Node…

TS에서 any대신에 $TSFixMe

December 05, 2019

오늘 정말 간단한 것에서 생각의 확장이 이루어진것 같다. 대단한건 아니지만, 나로서는 굉장시 신박하였고, 창의적이였다. 지하철에서 부스트 캠프를 가면서, airbnb에서 typescript를 적용한 사례에 대한 영상을 보고 있었다. Adopting…

IAM 정책 기본적인 내용 정리

December 05, 2019

발표명 IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! 발표자 신은수 솔루션즈 아키텍트(AWS) 출처 https://youtu.be/iPKaylieTV8 오늘은 AWS의 IAM…

Elasticsearch 기본 정리

November 26, 2019

프로젝트를 진행하며 Elasticsearch를 사용해야 할 일이 생겼습니다. 이에 따라 기본적인 사용 방법을 파악하기 위해 공식 문서의 get started 내용을 정리하였습니다. Elastic Stack 과거 ELK…

웹 개발자들을 위한 잡다한 웹 지식 세미나

November 06, 2019

세미나 명 웹 개발자들을 위한 잡다한 웹 지식 세미나 일정 2019-11-06 19:00-21:00 장소 구글 스타트업 캠퍼스 발표자 이동휘 님 주제 구글 검색 엔진 이해하기, 구글 크롤러 봇은 JS…

Agile Software Development with Scrum 2

November 01, 2019

원제 Agile Software Development with Scrum 제목 스크럼 저자 Ken schwaber, Mike beedle ISBN 9788991268470 독서 기간 2019-11-01 독서 량 1장 -…

Agile Software Development with Scrum 1

October 31, 2019

원제 Agile Software Development with Scrum 제목 스크럼 저자 Ken schwaber, Mike beedle ISBN 9788991268470 독서 기간 2019-10-31 독서 량…

Extreme Programming Explained 2/E 3

October 28, 2019

원제 Extreme Programming Explained 2/E 제목 익스트림 프로그래밍 저자 Kent Beck ISBN 8991268102 독서 기간 2019-10-28 독서 량…

Extreme Programming Explained 2/E 2

October 27, 2019

원제 Extreme Programming Explained 2/E 제목 익스트림 프로그래밍 저자 Kent Beck ISBN 8991268102 독서 기간 2019-10-27 독서 량…

Extreme Programming Explained 2/E 1

October 26, 2019

원제 Extreme Programming Explained 2/E 제목 익스트림 프로그래밍 저자 Kent Beck ISBN 8991268102 독서 기간 2019-10-26 독서 량 1장 -…

Test Driven Development 2

September 24, 2019

원제 Test Driven Development: by example 제목 테스트 주도 개발 저자 Kent Beck ISBN 9788966261024 독서 기간 2019-09-24, 15:00-16:00 독서 량 5장 -…

Test Driven Development 1

September 23, 2019

원제 Test Driven Development: by example 제목 테스트 주도 개발 저자 Kent Beck ISBN 9788966261024 독서 기간 2019-09-23, 18:00-19:00 독서 량 1장 -…

부스트캠프 2019 맴버쉽 28

September 22, 2019

Kubernetes 삽질기 2 구상중인 k8s + AWS 인프라 구성 v1 햇갈리는 부분 정리 K8s에 쓰일 docker image는 어느 레벨까지 dockerlize가 되어야 할까 드는 생각들은, os위에 node, 그리고 그 위에 Express…

부스트캠프 2019 맴버쉽 26

September 20, 2019

왜 성과를 내지 못했을까 한정된 시간속에서 주어진 과제를 수행하기 위해 최선을 다해야 한다. 이번 프로젝트 6~…

부스트캠프 2019 맴버쉽 25

September 19, 2019

Kubernetes 삽질기 1 햇갈리는 부분 정리 약 결함 k8s 는 loosely coupled 되어 있다. 오로지 라벨 만으로 템플릿을 확인하여, 작업된다. Rolling update 새로운 pod 띄우고, 기존 pod…

부스트캠프 2019 맴버쉽 24

September 18, 2019

Socket.IO 삽질기 2 부스트 캠프 프로젝트 중에 채팅 기능을 구현해야 했고, 그 기술로 웹소켓을 선정하였다. 개인적으로 두가지 후보를 고민하였는데, 하나는 AWS의 api gateway에서 제공하는 websocket…

부스트캠프 2019 맴버쉽 23

September 17, 2019

부스트 캠프 프로젝트 중에 채팅 기능을 구현해야 했고, 그 기술로 웹소켓을 선정하였다. 개인적으로 두가지 후보를 고민하였는데, 하나는 AWS의 api gateway에서 제공하는 websocket이고, 다른 하나는 socket.io…

AWS SAM 에서의 Update, 불사조 서버

September 15, 2019

AWS SAM이란 AWS SAM은 CloudFormation의 확장. 이용을 더 쉽게 해주는 도구이다. SAM 업데이트 시에 데이터 유실 조심 Template 에서 Attribute 를 Update시에 data losses…

부스트캠프 2019 맴버쉽 18

September 12, 2019

스크럼이 옳바른 선택일까? 스크럼이 정말 좋은 개발론임에는 이견이 없다. 하지만, 모든 개발론이 그러하듯 하나의 절대적인 방법은 없으며, 상황에 따라 적절한 방법을 선택해야 하는것 같다. 우리의 경우에는 7주라는 시간동안…

부스트캠프 2019 맴버쉽 17

September 11, 2019

멤버십 프로젝트를 시작하여 이제 2달간의 멤버십 프로젝트가 시작되었다. 약 7주간의 시간동안…

부스트캠프 2019 맴버쉽 16

September 10, 2019

오늘의 고민들 React에서 useEffect의 실행 흐름 이해하기 다음과 같은 컴포넌트는, 결국 몇번의 “work” 로그를 찍을까? 정답: 3번 그렇다면, 다음은? 정답:…

부스트캠프 2019 맴버쉽 15

September 09, 2019

오늘의 고민들 React에서 hooks가 어떻게 HOC를 대체하는가 React에서는 보통 cross-cutting concerns(공통의 관심사)를 해결하기 위해서 사용되었다. Component…

부스트캠프 2019 맴버쉽 14

September 08, 2019

오늘의 고민들 React의 props를 통하여 동일한 값을 너무 깊게 내려야 한다면? 예를 들어, 상위 컴포넌트에서 자식 컴포넌트로 특정 props…

부스트캠프 2019 맴버쉽 13

September 07, 2019

오늘의 고민들 React에서 어떻게 하나의 변화에 대해, 연쇄적으로 다른 변화를 이르킬 수 있을까 Redux, context 등을 고려하지 않고, 순수하게 React의 사고 방식으로 부모에서 자녀로 props…

부스트캠프 2019 맴버쉽 12

September 06, 2019

오늘의 고민들 모던한 웹 환경에서 사용자 인증과 권한 부여는 어떻게 이루어 질까 위 내용을 살펴보며 중요한 키워드 몇가지가 눈에 띄었다. OAuth2.0 OpenID Connect SAML SSO JWT…

부스트캠프 2019 맴버쉽 10

September 04, 2019

프로젝트를 완성하지 못한 이유 계획의 부재 지나친 고민 컨디션 저조 빠르게 구현을 해보지 못함(최소한 사용가능한 모습으로 만드는것을 우선시 했어야 함)…

부스트캠프 2019 맴버쉽 8

September 02, 2019

오늘의 배움 Express에서 미들웨어를 테스트하는 방법 Node 진영에서 사용할 수 있는 많은 테스트 라이브러리 들이 존재한다. 그중에서 나는 FE와의 통일성을 위하여 Jest…

부스트캠프 2019 맴버쉽 7

September 01, 2019

오늘의 배움 Node & Express를 사용하면서, DB연결에 대한 고민을 하였다. 우리의 경우에는 lowDB를 선택적으로 사용할 수 있었는데, 이에 대한 설정을 하는 부분에서 많이 배웠다. 1. Express…

부스트캠프 2019 맴버쉽 6

August 31, 2019

마스터 클래스 정리 TCP소켓과 웹소켓의 차이, 브라우저에서 왜 필요한지 생각해보자 브라우저 없이 TCP/IP…

Github Markdown에서 이미지 크기 조절하는 방법

August 20, 2019

깃헙 README.md에 사진을 올리면 기본적으로 전체 사이즈로 올라가게 된다. 문제는, width가 화면에 꽉차게 맞춰져서 스마트폰등에서 찍은 세로로 긴 사진을 올리면 보기 싫어지게 된다… 사진을 MD…

Netlify & Netlify CMS

August 15, 2019

개요 Netlify와 같은곳에서 만들지만 살짝 다른 서비스 Netlify는 static site를 Host하는 도구 그러나… 어차피 Netlify CMS를 사용하려 하여도 Authentication을 위해서 서버가 필요하다… github…

Redux-Thunk에 대한 생각 정리

August 12, 2019

역시 하나를 알려면 제대로 알아야 한다. 막상 Redux에서 Thunk를 활용할 고민을 하니, 어떻게 활용할지 잘 감이 안왔다. 이 Thunk 덕분에 바로 dispatch…

Normalizr, 객체(JSON) 분해하기

August 11, 2019

Normalizr는 redux를 만든 Dan씨가 만든 라이브러리이다. Redux와 궁합이 잘 맞고, 복잡한 nested object에 대해 사용이 편리한 객체로 변환을 용이하게 해준다. Motivation Many APIs, public or not…

Lambda에서 API-Gateway로 넘겨받은 post의 body읽기

August 10, 2019

오늘의 trial & error 오늘 이 부분에 안되서 한참을 고민을 하였다. 물론, 빠르게 구현하려고 docs를 제대로 안 본 나의 쟐못도 있지만, 이 문제를 해결하는데 힘들었다. Lambda…

부스트캠프 2019 챌린지 20일차

August 09, 2019

피어 세션 중 생각 정리 테스트 코드 테스트 코드를 효율적으로 관리하기 위해 Jest 라이브러리를 사용하여 구현하였다. 모든 모듈별로 테스트를 독립적으로 구성하여, 유지보수를 용이하게 하였다. Node의 URL Node의 URL…

부스트캠프 2019 챌린지 18일차

August 07, 2019

피어 세션 중 생각 정리 setTimeout 내부 동작 방식 setTimeout의 동작 방식은 JS를 실행하는 엔진의 구현방식에 따라 상이합니다. 웹에서는 web API로 추상화된 기능을 사용할 수 있고, Node…

부스트캠프 2019 챌린지 17일차

August 06, 2019

피어 세션 중 생각 정리 코드 구성에 대한 고민 type array 를 제외한 모든 type은 child:[] 를 갖지 않는다. 이렇게 하는게 조금 더 자연스러운것 같다. array는 child를 갖을 수 있지만, 나머지 자료형은 child…

JS의 switch-case에서 block단위 처리 방법

August 04, 2019

JS에서 를 사용하면, 이하 부분이 하나의 block일거라 가정하고 을 쓰면 항상 이미 정의되어있다는 에러가 나서 왜그런가 찾아보니, 이하 부분이 하나의 block 이더라… 그래서, 별로 변수를 지정하여 사용하려면 다음처럼 뒤에 brackets…

Conditional rendering 에서 empty component는 어떻게 처리할까?

August 04, 2019

처음 든 생각은 Fragment를 이용하는 방법이였다. 반환값으로 를 제공하면, React스럽게 진행될것이라 예상하였다. 이전에 다른 분이 짜놓으신 코드에서는 상황별로 component가 를 반환하게끔 처리 되어있었는데, 이 부분이 ts-check…

React에서 Redux사용시 local state를 사용하면 안되나?

August 04, 2019

다른 분이 질문하신 내용에 대한 나의 생각을 답변하였다. 그 내용을 기록한다. 질문 : 지난번 세션에서 리액트 컴포넌트에서는 상태를 최대한 배제하는 게 좋다고 하였다. 그렇다면 존의 리액트 전달 방식은 최대한 안쓰는게 좋은가? 그렇다면, state…

fork한 repo, 원본의 변화에 동기화 하기

August 03, 2019

TL;DR 요즘 프로젝트를 하며 Github을 통해 fork를 많이 한다. 문제는, 내 생각과는 다르게 원본(upstream repository) 에서의 수정 (ex, master 갱신 등) 이 forked된 나의 repo…

부스트캠프 2019 챌린지 15일차

August 02, 2019

피어 세션 중 생각 정리 전날 구현한 코드에 대해 다시 한번 정리하는 시간을 갖습니다 WEB API 속의 Canvas API 는 HTML속의 DOM 엘리먼트를 뜻합니다. (로서 표현 됩니다.) ](https://developer.mozilla…

부스트캠프 2019 챌린지 14일차

August 01, 2019

피어 세션 중 생각 정리 전날 구현한 코드에 대해 다시 한번 정리하는 시간을 갖습니다 Utils 자주 쓰이는 함수들을 따로 Utils로 분리하여 관리 하였습니다. 를 구현하여 출력되는 log…

부스트캠프 2019 챌린지 13일차

July 31, 2019

피어 세션 중 생각 정리 전날 구현한 코드에 대해 다시 한번 정리하는 시간을 갖습니다 Model-Controller 기능 구현을 용이하게 하고, 구조화 하기 위해 Model/Controller/Util/Starte…

부스트캠프 2019 챌린지 12일차

July 30, 2019

피어 세션 중 느낀것 async/await 사용에 대한 고민 JS에서 연산자는 다음과 같은 특징을 갖고 있습니다. await 문은 async함수의 실행을 중단시키고, Promise가 fulfill되거나 reject되기를 기다리고, 다시 async…

부스트캠프 2019 챌린지 11일차

July 29, 2019

오전 시간에 느낀점 오늘은 일찍 와서 책을 보았다. 앞부분만 보고 끝까지 읽지 않았던 자바스크립트 노랑이를 읽었다. 이 책을 이번주 안에 1/4를 읽기로 마음을 먹고, 차근차근 책을 읽으니 좋은 내용이 참 많았다. 3.7.1 매개변수의 이해 ES…

ReactJS에서의 styled-jsx

July 28, 2019

programmers 에서 진행하는 react 스터디를 통해 styled-jsx를 접하게 되었다. 처음에는 개인적으로 문법을 사용하는 방법이 워낙 괴랄하여 거부감이 많이 들었다. 뭔가, 너무 react…

JS에서 Spread syntax는 shallow copy일까 deep copy 일까

July 27, 2019

어제 정리한 내용중에 immutable data pattern 이라는 부분이 있다. 여기서 정리 하였듯이, Primitive value를 제외한 모든 것이 mutable 하고, 이로 인한 사이드 이펙트를 방지하기 위해 copy…

부스트캠프 2019 챌린지 10일차

July 26, 2019

피어 세션 중 느낀것 옵저버 패턴의 장점 하나의 이벤트에 대해서 다수의 서로 다른 액션이 가능하다. 이 과정에서, 이벤트를 방생시키는 주체와, 이벤트를 소비하는 대상이 서로 디커플링이 되어 종속을 최소화할 수 있다. immutable value Js…

부스트캠프 2019 챌린지 7일차

July 23, 2019

피어 세션 어제 작성한 코드를 돌아보며 두가지 부분에 대한 생각을 추가로 정리하였다. 를 구현 하면서 에 접근 하기위한 3가지 방법 를 다른 변수에 넣기 해주기 arrow function…

부스트캠프 2019 챌린지 4일차

July 18, 2019

챌린지 중 느낀것 주어진 기능을 완성 한 뒤 시간이 많이 남아 재밌는 도전을 해봤다. 단, 코드의 가독성을 일부러 떨어트리는, 예를 들어 그 스스로 적당한 이름이 있을 수 있는 count 변수를 임의의 한글자 x…

부스트캠프 2019 챌린지 3일차

July 17, 2019

피어 세션 중 느낀것 오늘 역시 새로운 용어들을 많이 들었고, 다른 이들의 생각과 고민의 흔적을 들어볼 수 있었다. 그중에 몇가지 기억에 남는 토론을 적는다. thorw & try catch 에러를 핸들링 하기 위해서 try catch…

부스트캠프 2019 챌린지 2일차

July 16, 2019

피어 세션 후기 오늘 처음 피어 세션을 통해 코드리뷰를 했다. 모두 높은 수준의 지식과 긱함을 같고 있어 굉장이 놀라운 경험이엿다. 조원 중 한명은 타입과 디자인에 대해 광적으로(좋은 의미)로 집착을 하였고 또 다른 한명은 기본적인 js…

부스트캠프 2019 챌린지 나의 다짐

July 15, 2019

절대 지각하지 않는다. 9 to 9 모든 코드에 Test를 적용한다. 새로운 것들을 적용해 본다. 커밋 규칙을 준수한다. 매일 배운 내용은 그날 정리한다.

부스트캠프 2019 챌린지 1일차

July 15, 2019

주어진 문제를 해결하며 적용한 라이브러리 Jest - testing library JsDoc - markup language used to annotate JavaScript source code files TypeScript - It is a…

JS 이해하기 [JS, nodeJS, V8, Libuv]-1탄

July 14, 2019

공부 이유 JS를 공부하며 항상 햇갈리는 개념들이 있었다. 나는 JS를 공부한다 해야 하나 NodeJS를 공부한다 해야하나 JS event loop은 도대체 무엇일까 JS는 왜, 어떻게 single thread, non blocking io…

bash_profile 와 zsh에 관한 글

July 13, 2019

TL;DR 그냥 bash_profile내용을 zshrc 파일에 넣으면 된다 기본 터미널을 Iterm2로 바꾸고, zsh로 바뀌었음에도 bash_profile…

ReactJS에서 props.render vs props.children vs HOC

July 12, 2019

공부 이유 : Composition over Inheritance ReactJS에서 선호되는 방식 중 하나이다. 또한, JS에서도 선호되는 방식이다. React docs 에서 학습을 하다보면, 항상 Composition 과 Inheritance…

Just Enough Functional Programming - 3탄

July 11, 2019

공부 이유 : 요즘 functional programming과 reactive programming을 학습하며 다양한 Intro 강의들을 찾아 학습하고 있다. 그 중에서 오랜만에 깔끔하고 잘 만들어진 강의가 있어 정리해 보았다. [Just Enough…

Just Enough Functional Programming - 2탄

July 09, 2019

공부 이유 : 요즘 functional programming과 reactive programming을 학습하며 다양한 Intro 강의들을 찾아 학습하고 있다. 그 중에서 오랜만에 깔끔하고 잘 만들어진 강의가 있어 정리해 보았다. [Just Enough…

Just Enough Functional Programming - 1탄

July 08, 2019

공부 이유 : 요즘 functional programming과 reactive programming을 학습하며 다양한 Intro 강의들을 찾아 학습하고 있다. 그 중에서 오랜만에 깔끔하고 잘 만들어진 강의가 있어 정리해 보았다. [Just Enough…

SAGA의 필요성과 특징

July 07, 2019

공부 이유 : React에서 Redux를 사용하여Async한 로직을 관리할때 자주 쓰이는 라이브러리가 redux-thunk, redux-saga, 그리고 어쩌면 redux-observable(RXJS)등 이 있을것이다. redux에서 async…

Redux vs Apollo ..?

July 03, 2019

공부 이유 : 프로그래머스에서 진행하는 온라인 스터디 내용중에 Parcel를 활용한다는 내용이 있었다. 이게 Webpack과 비교하여 어떤 장점으로 사용되나를 찾아보다 네이버에서 적용한 후기를 찾아보게 되었다. React와 Apollo, Parcel…

Snapshot

July 01, 2019

공부 이유 : TDD가 선택이 아닌 필수임을 알게된 이상 Testing에 대한 딥 다이브가 필요하였다. 그러나 UI 컴포넌트에서 어떤 테스팅 기법이 쓰이는지 상상이 안갔다. 그래서 React에서 쓰이는 테스팅 도구인 jest…