본문 바로가기

전체 글27

Clean Architecture - Robert C. Martin 이 길은 소프트웨어가 지닌 '부드러움(softness)'을 인지하고, 이 부드러움을 시스템에서 최우선으로 보존하는 것을 목표로 한다. 이 글을 보고 회사에서 만들고 있던 기능에 수정사항이 생겼을 때 불평을 하던 내 모습이 부끄럽게 느껴졌다. 소프트웨어는 기계의 동작을 변경하기 쉽게하기 위해 만들어진 것이다. 애초에 쉽게 수정하기 위해 만들어진 것이 소프트웨어인데 수정사항이 생겼다고 불평을 하다니.. 변경하기 쉬운 소프트웨어를 만드는 것은 어찌보면 당연한 일인데 참 어려운 것 같다. 이 책을 열심히 읽고 그 일을 쉽게 할 수 있는 개발자가 되도록 노력해야겠다. 2021. 5. 20.
Javascript의 callback과 promise javascript는 single thread에서 동작하는 언어입니다. single thread에서 동작한다는 것은 한 번에 한 가지 일만 처리할 수 있다는 것을 의미합니다. 하지만 javascript가 처리하는 브라우저의 이벤트들은 한 번에 한 가지씩만 발생하지 않기 때문에 single thread로 비동기적으로 발생하는 이벤트를 처리하기 위한 메커니즘이 필요했습니다. 그래서 등장한 것이 callback 함수입니다. Callback javascript에서는 비동기 함수를 호출할 때 callback 함수를 같이 넘겨줍니다. javascript는 비동기 함수가 종료되면 같이 넘어온 callback 함수를 실행합니다. setTimeout(() => console.log('Hello, my name is jo.. 2021. 5. 19.
Javascript의 실행환경과 동작방식 Node.js 가 등장하기 전 javascript 코드는 브라우저에서만 동작할 수 있었습니다. javascript 코드가 동작하려면 어떤 환경이 갖춰져야 하길래 브라우저에서만 동작할 수 있었는지 그리고 javascript 코드는 어떤 방식으로 동작하는지에 대해 정리해보겠습니다. Javascript 실행환경 javascript 코드는 특정한 실행환경이 갖춰져야 동작이 가능합니다. 그 실행환경은 아래 4가지 요소로 구성됩니다. javascript 엔진 Web API / Node API callback 큐 이벤트 루프 먼저, javascript 엔진에 대해 알아보겠습니다. javascript 엔진은 javascript 코드를 읽고 실행시키는 프로그램입니다. 위 사진에서 JS, Memory Heap, Call .. 2021. 4. 25.
Javascript의 iterable, iterator, generator javascript에서의 iterable, iterator, generator에 대해 정리해보겠습니다. TL;DR iterable 프로토콜과 iterator 프로토콜을 만족하면 어떤 객체든지 iterable 객체, iterator 객체가 될 수 있음. iterable 프로토콜 : iterator 객체를 반환하는 함수가 Symbol.iterator 프로퍼티에 들어있어야함. iterable 객체 : for of 문이나 ...(spread) 연산자처럼 값들을 순회하는 연산에 사용될 수 있는 객체. iterator 프로토콜 : next() 메서드를 가지고 있어야하면 next() 메서드는 value, done 프로퍼티를 가지는 객체를 반환해야함. iterator 객체 : 값들을 순회할 수 있는 객체. iterab.. 2021. 4. 6.