최근에 typescript 환경에서 개발 컨벤션을 확인하는 작업을 자동화하는 방법을 찾다가 ts-morph
를 도입하게 된 과정을 기술하려고 한다.
관련 코드는 아래 링크에서 확인할 수 있다.
최근에 typescript 환경에서 개발 컨벤션을 확인하는 작업을 자동화하는 방법을 찾다가 ts-morph
를 도입하게 된 과정을 기술하려고 한다.
관련 코드는 아래 링크에서 확인할 수 있다.
최근에 코틀린과 스프링을 활용해 사이드 프로젝트를 하면서 querydsl 사용을 위해 세팅한 작업을 남기려고 한다.
자바로 된 querydsl 관련 블로그 글은 많은데 생각보다 코틀린은 적었고 제대로 적용이 안되어 고생을 하게되었다.
보통 테이블에 기본으로 넣는 생성시간과, 수정시간 필드를 추가하기 위해 typeorm 사용하는 환경에서는 데코레이터와 상속을 사용한다.
예를들어 아래와 같은 클래스를 만든 후 다른 엔티티 클래스가 상속받는 방법으로 구현하게 된다.
이전 글에서는 promise 를 반환하는 함수들을 then 을 이용해 합성하는 과정을 살펴보았다.
이제 파라미터를 2개 이상 요구하는 함수가 있는 경우를 살펴보자.
예전 node.js
의 많은 비동기 함수는 결과를 함수로 받는 콜백형태로 이루어져 있었다.
이로인해 여러 비동기 로직을 순차적으로 실행하는 코드를 보면 일명 Callback Hell
이라는 것을 볼 수 있다.
asyncA((a) => {
asyncB((b) => {
asyncC((c) => {
asyncD((d) => {
return a + b + c + d;
});
});
});
});
이후 이를 해결하는 방안으로 여러 라이브러리나 기술들이 나왔으나 지금은 주로 promise
와 async/await
를 활용한다.
사실 나는 angular
를 통해 js 를 본격적으로 사용했기에 비동기 처리를 rxjs
의 observable
을 사용해왔다.
하지만 백엔드 개발자가 된 이후로 api 를 개발하는데 사용하는 대부분의 함수가 promise
를 반환하다보니 observable
을 활용하지 않게되었다.
promise
를 본격적으로 사용했을 때에는 이미 async/await
가 도입된 이후였고 동기적으로 보이는 코드를 작성하는데 큰 어려움 없었다.
그래서 굳이 then
이나 catch
구문을 사용할 필요가 없다고 생각했었다.
그러나 함수형 패러다임을 공부하면서 함수의 합성, 선언적인 코드, pointfree 에 대한 매력을 느꼈고 이를 then chaining
을 통해 이룰 수 있다는 것을 깨달았다.
함수형 패러다임 중 난해한 monad
도 promise
와 비교하면서 생각하니 이해하는데 많은 도움을 받았다.
그래서 이와 관련한 글을 작성하려고 한다.
localstack
은 AWS 인프라 시뮬레이터로 Lambda, S3, Dynamodb, Kinesis, SQS, SNS 같은 서비스를 로컬 환경에 올릴 수 있다.
이번 글은 이메일 발송 서비스인 SES
를 테스트 해보기 위한 설정과정을 기술하고자 한다.
그동안 함수형 프로그래밍에 대한 공부를 하면서 보았던 자료들을 이곳에 기록하려고 한다.
utterances 는 GitHub 이슈
를 이용해서 원하는 사이트의 댓글 기능을 만들어주는 서비스이다.
따라서 github 계정이 존재해야 댓글 작성이 가능하지만 개발에 관련 글을 작성할 예정이라 큰 문제는 아니었다.
만약 다른 소셜 로그인도 지원하고 싶다면 disqus 같은 서비스를 사용하면 된다.
기술 블로그를 위해 어떤 플랫폼을 사용할지 고민하다가 직장 동료가 Docusaurus
를 추천해주었다.
다크모드를 지원하고 크게 커스텀하지 않아도 쓸만한 블로그를 만들 수 있을거같았다.
그래서 첫 블로그 글로 구축한 내용을 공유하려고 한다.