async async function f() { return 1; } function 앞에 async를 붙이면 해당 함수는 반환 값을 fulfilled 상태 Promise로 감싸 반환 await : async 함수 안에서만 동작. JS는 await 키워드를 만나면 Promise가 처리될 때까지 기다림. await...
모던 JavaScript 튜토리얼 - Promise 4 - 프라미스화
: 콜백만 지원해주는 API 등 콜백 함수를 프라미스를 반환하도록 프라미스로 감싸는 것 프라미스화(Promisify) 콜백을 그대로 써도 되지만, 기존 코드가 프라미스 기반으로 작성되어있으면 프라미스로 바꾸는 것이 일관성있고 좋을 것 같다. 특히, Async/await 패턴과 함께 사용하면 더 좋다. ...
모던 JavaScript 튜토리얼 - Promise 3 - Promise API
Promise.all Promise 배열을 받고, 모두 처리되면 각 Promise의 결과를 담은 배열이 Promise 로 반환 됨. Promise.all([ new Promise(resolve => setTimeout(() => resolve(1), 3000)), // 1 new Promise(resolve => ...
모던 JavaScript 튜토리얼 - Promise 2 - Error 처리
Promise error handling : Chaining에서 여러 then 중 Promise가 하나라도 거부된다면 .catch 트리거 따라서, 체이닝 되어있는 모든 then에서의 에러를 한 catch에서 처리 할 수 있다. 세부적인 에러 처리를 위해 각 task(then)마다 catch 하나씩 둘 수도 있다. ...
모던 JavaScript 튜토리얼 - Promise 1 - Promise 기초
: 처리 성공 여부에 따라 resolve or reject 호출 Basic Promise는 성공 또는 실패만 한다. 이 때 변경된 상태는 더이상 변하지 않는다. resolve(value): 일이 성공적으로 끝난 경우 value(하나 혹은 없음)와 함께 호출 reject(error): 에러 시 error(Error 객체 혹은 Error...
모던 JavaScript 튜토리얼 - Callback
콜백 기반 비동기 프로그래밍 함수 내부의 모든 작업을 수행하고 실행할 함수를 callback으로 전달 c.f) script, module 로딩하는 과정 또한 비동기 과정 → loadScript 내부에서 해당하는 script를 callback한다. Callback in callback 콜백의 중첩....
Git과 관련해 겪은 이슈들, 간단한 메모
200301 git config --list author등 현재의 상태 볼 수 있음. git config --global --user.name="hungryjay" author 변경 user.name 대신 다른 것(email 등)도 변경 가능 global...
Redis란
장점 성능: In memory data store라서 초고속 성능을 제공한다. Disk 참조 하지 않기 때문에 엔진 대기 시간이 마이크로초 단위까지 줄어든다. 유연한 데이터 구조: Key value쌍의 다양한 Data structure: 문자열, 목록, 세트, 해시 비트맵 등 단순성: 다른 DB의 쿼리구조와 다르게, 단순하다. get...
Docker를 통해 LB / REDIS로 scaled-server 리소스 공유
Redis docker-compose 설정 default로 6379 포트를 갖는다. redis-cli에 ping날리는 정도로 간단하게 헬스체킹이 가능하다. 애플리케이션 서버 디펜던시 설정에 redis 헬스체크도 추가해주면 더 좋을 것 같다. Server Load Balancing $ ping 결과: 1...
Redis를 통해 서버 Scale out에서 자원 공유
Scale out : 접속한 서버의 대수를 늘려 처리 능력 향상 시키는 것 : 서버의 수를 늘림. 복수의 서버를 구축해 Scale out 수평 확장(horizontal scaling) 공유 자원에 대해 고려해야 한다. Scale up: 서버 자체를 증강 : 인스턴스를 더 좋은 인스턴스로 변경. 수직 확장(vertical...