Backend (2) 썸네일형 리스트형 [QueryDSL] MATCH.. AGAINST.. dialect 사용하기 (Full-Text 검색 함수, 커스텀 함수 정의) with Kotlin 1. FunctionContributor 정의 나는 MatchFunctionContributor라고 선언했다. class MatchFunctionContributor : FunctionContributor { companion object { private const val FUNCTION_NAME = "MATCH_AGAINST" private const val FUNCTION_PATTERN = "MATCH (?1) AGAINST (?2 IN BOOLEAN MODE)" } override fun contributeFunctions(functionContributions: FunctionContributions) { functionContributions.functionRegistry .registerPa.. [NestJS] Interceptor를 활용한 TypeORM Transaction 코드 개선하기 TypeORM에서 제공해 주고 있는 QueryRunner 트랜잭션을 사용하려면 commit, rollback, release 처리를 수동으로 해주어야 합니다. 그래서 코드가 길어짐과 동시에 가독성이 떨어지게 되고, 트랜잭션을 수행하는 함수마다 동일한 코드가 반복되어 생길 것입니다. 이를 개선하고자 트랜잭션 인터셉터를 생성하여 적용했던 방법을 기록하고자 합니다. 인터셉터의 동작 과정 우선 인터셉터가 동작하는 순서를 그림으로 살펴보면, 컨트롤러를 거쳐 서비스 로직이 실행되기 전/후에 실행된다는 것을 알 수 있습니다. 이 점을 활용해 우리는 아래의 로직을 인터셉터로 구현할 것입니다. 1. 컨트롤러/서비스 로직이 실행되기 전 a. 새로운 QueryRunner 인스턴스를 생성하고 트랜잭션 start b. Requ.. 이전 1 다음