QueryDSL의 타입 안정성Querydsl의 핵심 원칙은 타입 안정성(Type safety) 이다. 도메인 타입의 프로퍼티를 반영해서 생성한 쿼리 타입을 이용해서 쿼리를 작성하게 된다. 또한, 완전히 타입에 안전한 방법으로 함수/메서드 호출이 이루어진다. QueryDSL은 개발자가 직접 SQL문을 작성하지 않고, Java 코드 기반의 빌더 API를 사용하여 타입 안전한 쿼리를 작성할 수 있도록 도와주는 프레임워크입니다. QClass는 정적 타입 기반으로 생성된 클래스로, 컴파일 시점에 타입 안정성을 보장하며, 쿼리 작성 과정에서 발생할 수 있는 오류를 최소화합니다. 또한 QClass는 엔티티 클래스에서 생성되며, 엔티티와 데이터베이스의 컬럼 이름을 기반으로 쿼리를 작성하기 때문에, 매핑할 프로퍼티 불일..
플러그인 설정Gradle은 다양한 기능을 제공하는 플러그인을 사용할 수 있습니다.plugins { id 'java' // Java 플러그인 적용} 프로젝트 속성 설정group, version, sourceCompatibility 등 프로젝트의 기본 속성을 설정할 수 있습니다.group = 'com.example' // 프로젝트 그룹 IDversion = '1.0.0' // 프로젝트 버전sourceCompatibility = '17' // 사용될 Java 버전 (Java 17) 의존성 관리프로젝트에서 사용되는 라이브러리와 의존성을 선언하는 부분입니다.dependencies 블록을 사용해 의존성을 추가합니다.depedencies { implementation 'org.springframework...

회사 코드 중에 알림톡을 발송하는 로직이 있었고 로직은 다음과 같이 구현이 되어 있었습니다. 비즈니스 로직을 수행알림톡 이벤트 발행알림톡 이벤트 소비알림톡 발송 이벤트를 발행할 때는 다음과 같이 비즈니스 로직에서 수행된 결과값 중 하나를 사용하고 있었습니다.이를 컬럼 'happyCallId' 라고 하겠습니다. 아래는 이벤트 발행에 사용되는 JSON 객체입니다.{ "happyCallId" : 1234567 [Long 타입] ...} id의 값의 정상적인 범위는 2_000_000 ~ 2_500_000 범위 값이 되어야 합니다.하지만 간헐적으로 알림톡에 발행될 때 입력되는 id 값이 17_000_000 ~ 18_000_000 범위 값인 경우가 있었습니다. 여러가지 로그를 찍으며 의심되는 범위를 좁혀갔고 ..

Server-Sent Event(이하 SSE)는 서버에서 클라이언트로 실시간 데이터를 푸시하는 단방향 통신 방식입니다. 클라이언트가 서버와의 연결을 설정하면, 서버는 지속적으로 데이터를 클라이언트로 전송할 수 있습니다. SSE는 HTML5 표준으로, 브라우저에서 이벤트 스트림을 수신하는 기능을 제공합니다. SSE의 특징단방향 통신: 클라이언트가 서버에 연결을 설정한 후, 서버는 실시간으로 클라이언트에게 데이터를 보낼 수 있지만, 클라이언트는 이 연결을 통해 서버로 데이터를 전송할 수 없습니다. 클라이언트에서 서버로는 일반적인 HTTP 요청을 통해 데이터를 전송해야 합니다.텍스트 데이터 전송: SSE는 서버에서 클라이언트로 텍스트 데이터를 전송합니다. JSON 같은 형식으로 데이터를 보내는 것이 일반적입니..