본문으로 건너뛰기

· 약 4분
Jake Son

최근에 코틀린과 스프링을 활용해 사이드 프로젝트를 하면서 querydsl 사용을 위해 세팅한 작업을 남기려고 한다.
자바로 된 querydsl 관련 블로그 글은 많은데 생각보다 코틀린은 적었고 제대로 적용이 안되어 고생을 하게되었다.

· 약 5분
Jake Son

문제 상황

보통 테이블에 기본으로 넣는 생성시간과, 수정시간 필드를 추가하기 위해 typeorm 사용하는 환경에서는 데코레이터와 상속을 사용한다.
예를들어 아래와 같은 클래스를 만든 후 다른 엔티티 클래스가 상속받는 방법으로 구현하게 된다.

· 약 6분
Jake Son

이전 글에서는 promise 를 반환하는 함수들을 then 을 이용해 합성하는 과정을 살펴보았다.
이제 파라미터를 2개 이상 요구하는 함수가 있는 경우를 살펴보자.

· 약 10분
Jake Son

예전 node.js 의 많은 비동기 함수는 결과를 함수로 받는 콜백형태로 이루어져 있었다.
이로인해 여러 비동기 로직을 순차적으로 실행하는 코드를 보면 일명 Callback Hell 이라는 것을 볼 수 있다.

asyncA((a) => {
asyncB((b) => {
asyncC((c) => {
asyncD((d) => {
return a + b + c + d;
});
});
});
});

이후 이를 해결하는 방안으로 여러 라이브러리나 기술들이 나왔으나 지금은 주로 promiseasync/await 를 활용한다.

사실 나는 angular 를 통해 js 를 본격적으로 사용했기에 비동기 처리를 rxjsobservable 을 사용해왔다.
하지만 백엔드 개발자가 된 이후로 api 를 개발하는데 사용하는 대부분의 함수가 promise 를 반환하다보니 observable 을 활용하지 않게되었다.

promise 를 본격적으로 사용했을 때에는 이미 async/await 가 도입된 이후였고 동기적으로 보이는 코드를 작성하는데 큰 어려움 없었다.
그래서 굳이 then 이나 catch 구문을 사용할 필요가 없다고 생각했었다.
그러나 함수형 패러다임을 공부하면서 함수의 합성, 선언적인 코드, pointfree 에 대한 매력을 느꼈고 이를 then chaining 을 통해 이룰 수 있다는 것을 깨달았다.
함수형 패러다임 중 난해한 monadpromise 와 비교하면서 생각하니 이해하는데 많은 도움을 받았다.
그래서 이와 관련한 글을 작성하려고 한다.

· 약 5분
Jake Son

utterancesGitHub 이슈 를 이용해서 원하는 사이트의 댓글 기능을 만들어주는 서비스이다.
따라서 github 계정이 존재해야 댓글 작성이 가능하지만 개발에 관련 글을 작성할 예정이라 큰 문제는 아니었다.
만약 다른 소셜 로그인도 지원하고 싶다면 disqus 같은 서비스를 사용하면 된다.

· 약 7분
Jake Son

기술 블로그를 위해 어떤 플랫폼을 사용할지 고민하다가 직장 동료가 Docusaurus 를 추천해주었다.
다크모드를 지원하고 크게 커스텀하지 않아도 쓸만한 블로그를 만들 수 있을거같았다.
그래서 첫 블로그 글로 구축한 내용을 공유하려고 한다.