본문 바로가기
반응형

전체글523

no-return-await 는 항상 정답일까 보편적으로 JS/TS 에서는 async 함수를 사용할때 return 만 필요한 경우에는 굳이 await를 명시하지 않았다. 실제로 ESLint 룰 상에서도 이에 대한 규칙을 갖고 있다. no-return-await 하지만 해당 규칙에서도 이 규칙을 적용하면 안되는 예를 소개하는데, 다음과 같다. await thenable 인 값을 나타내기 위해 사용하려는 경우 return await 회피의 성능상의 이점을 원하지 않는 경우 함수를 스택 추적에 표시하려는 경우 (디버깅에 유용함) 마지막의 "함수를 스택 추적에 표시" 가 이번 포스팅의 주제이다. Node.js를 비롯한 백엔드에서는 에러가 발생한다면 해당 에러에 대한 상세한 Trace가 거의 대부분 필요하다. Node.js에서는 await 없이 Promise.. 2023. 1. 24.
Spring Boot 3.x 실행이 안될 경우 (feat. IntelliJ) 스프링 부트 3.0 이 출시되었다. (현재 최신은 3.0.1 이지만) 3.0 부터는 Java 17부터 지원된다. 그러다보니 기존에 Java8, 11등을 사용하시던 분들은 3.x 스프링 부트 프로젝트를 실행할때 에러들을 만나게 되는데, 이번에 나도 똑같이 경험해서 정리하게 되었다. 문제 스프링 부트 3.0.1 프로젝트를 실행할 일이 생겼다. 그래서 기존에 설치된 IntelliJ에서 Gradle Import를 시켰더니 다음과 같이 방다한 에러 메세지와 함께 실행이 되지 않았다. 기존 노트북에서 모두 Java 11로 프로젝트를 구동시켰었다. No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The .. 2023. 1. 20.
1. 좋은 함수 만들기 - 부작용과 거리두기 요즘의 개발에서 프레임워크나 라이브러리 사용이 없는 개발은 생각하기 어렵다. 특히 DDD 등의 개념까지 기본지식처럼 취급되어 점점 추상화된 개발에 익숙해지고 있다. 복잡한 애플리케이션 구현을 하다보면 이러한 것들에 대해 당연히 필요하다. 다만, 이게 심해지다보면 실제 구현을 해야할 변수, 함수, 클래스 등을 잘 작성하는 것보다 프레임워크나 라이브러리의 기능을 얼마나 많이 알고 있느냐를 개발자의 성장으로 오해할 수도 있다. 프레임워크와 라이브버리와 같은 도구에 대해서 숙련도가 높다면 당연히 좋겠지만, 그 이전에 좋은 변수, 함수, 클래스에 대해 먼저 고민하는 것도 필요하다. 그래서 이번 시리즈에서는 좋은 함수에 대해서 이야기하려고 한다. JS/TS 환경에서 불변객체 다루는 방법이 순수 함수형 언어들에 비해.. 2023. 1. 18.
2022 개인 회고 2021년엔 개인 회고를 작성하지 않았다. 일기장에 있는 내용들을 모아서 2021년부터 작성할까 하다가, 그럼 또 2022년 개인 회고를 미루게 될 것 같았다. 회사와 관련된 2022 CTO 회고는 이미 작성했기 때문에, 회사가 아닌 개인 생활를 정리했다. 새로운 회사의 적응을 마침과 동시에 개인 생활을 점검해본 한해였다. 생활 07~08 시에 출근해서 22~23시에 퇴근하는 생활을 한동안 계속 했다. 아침 일찍 아무도 없는 회사에 와서 책을 보거나 개인 일정을 진행하면 참 기분이 좋았다. 특히 유스페이스 스타벅스점은 아침 7시부터 오픈을 해서, 커피사서 회사 타운홀 창가에 앉아서 책을 보거나 코드를 작성하면 오늘 하루가 참 잘될것 같다는 느낌을 받곤 했다. 올해 사무실을 이사한 날, 처음으로 출근했을때.. 2023. 1. 14.
2022 CTO 회고 지난 회고에 이어 올해도 CTO 회고를 쓴다. 개인 회고를 2021년에도 못써서, 2022년 개인 회고만 작성했다. 작년에 다짐했던 기술, 조직 관점에서 많은 시도들과 시행착오들이 있었던 해였다. 개발자를 하면서 가장 많은 조언들을 구하러 다녔던 시간이였던것 같다. 조직관리에 대해 많은 고민을 했다. 조직이 완전히 찢어지지지 않는 범위내에서 계속 조직을 키워나가는게 리더의 역량이라고 하는데, "내가 먼저 찢어지는건 아닌가?" 하고 자주 생각했던것 같다. 서비스와 기술 1월의 악몽 1월에 진행된 100% 강의 할인 이벤트로 1월 3일 ~ 17일 사이에 총 6번의 서비스 전체 장애가 발생했다. 2022년 1월 100% 할인 이벤트 장애 부검 서비스 전체가 작동이 안되는 경우가 정말 오랫만이였다. 예전 201.. 2023. 1. 2.
NodeJS에서 데이터베이스 통합 테스트 성능 개선하기 (TypeORM, Jest, PostgreSQL) 보통 통합 테스트는 SQLite, H2와 같은 InMemory 데이터베이스를 사용한다. 메모리상에만 존재하기 때문에 실제 ORM (SQL) 을 검증이 가능하면서도 병렬로 테스트를 수행할 수 있고, 고속의 쿼리 수행이 가능하기 때문이다. 대부분의 데이터베이스 쿼리는 InMemory 데이터베이스에 대해 실행할 수 있지만 많은 엔터프라이즈 시스템은 실제 Production과 같은 데이터베이스에 대해서만 테스트할 수 있는 복잡한 쿼리를 사용한다. 그래서 운영 환경에서 사용하는 데이터베이스(MySQL, PostgreSQL 등) 에서 지원하는 여러 기능(Windows함수, 프로시저, 트리거 등) 들을 적극적으로 사용하는 환경에서는 InMemory DB로 검증하는데 한계가 있다. 이를 위해 보통은 로컬 PC에서는 D.. 2022. 12. 25.

728x90
반응형