Sticky Session 1. 개요 최근 외부 시스템과 로그인 처리를 연동해야할 일이 있었는데, 해당 시스템은 SAML기반 인증 방식 을 사용하고 있었다. 카카오, 네이버, 구글등은 로그인을 Oauth 2.0 기반의 사용자 인증 기능을 제공하는데, 개인적으로는 SAML 인증 방식은 처음 접해봤다. 가이드 문서가 잘 되어 있어서 개발환경 / 테스...
FFI
FFI 1. 개요 FFI는 Foreign Function Interface의 약자입니다. 이는 어떤 프로그래밍 언어세서 다른 프로그래밍 언어나 라이브러리의 함수를 호출하고 사용하기 위한 인터페이스를 의미합니다. FFI는 일반적으로 서로 다른 언어 간에 상호 운용성(interoperability)을 제공하기 위해 사용됩니다. 프로그래밍 언어 간에는 ...
DB 뷰(View)
1. 개요 데이터베이스 뷰는 현대의 데이터 중심 시스템에서 필수적인 요소로 자리잡았습니다. 데이터베이스 뷰는 데이터베이스 시스템에서 사용자들에게 편리한 인터페이스를 제공하고, 데이터를 효율적으로 조작하고 검색할 수 있는 기능을 제공합니다. 특히, PostgreSQL과 같은 강력한 관계형 데이터베이스에서 데이터베이스 뷰는 매우 유용한 도구입니다. 데이...
자바 동시성 프로그래밍 - 메모리 모델과 동기화부터 고급 기법까지
1. 서론 1.1 동시성 프로그래밍의 중요성과 자바 메모리 모델의 역할 동시성 프로그래밍은 현대 소프트웨어 개발에서 매우 중요한 개념입니다. 동시성은 여러 개의 작업이 동시에 실행되는 것을 의미하며, 이는 프로그램의 성능과 반응성을 향상시킬 수 있습니다. 하지만 동시에 실행되는 작업들 간의 상호작용은 잘못된 결과나 예상치 못한 동작을 초래할 수도 있...
JOOQ 알아보기
JOOQ JOOQ란? JOOQ(Java Oriented Querying)는 Java를 사용하여 안전한 SQL 쿼리를 작성할 수 있도록 하는 데이터베이스 쿼리 프레임워크 입니다. 개발자가 SQL 쿼리를 보다 직관적이고 자연스럽게 작성할 수 있도록 하며 type-safe한 API를 제공합니다. 이를 통해 컴파일시 오류를 발견 / 수정할 수 있습니다. ...
Web Worker
Web Worker 개요 Javascript는 싱글 스레드로 동작합니다. 브라우저 자체는 싱글 스레드로 동작하지 않으며 브라우저는 다음과 같은 스레드들로 구성되어 있습니다. 메인 스레드(Main Thread): 브라우저의 주요 스레드로, HTML, CSS, JavaScript의 처리, 렌더링, 이벤트 처리, 네트워크 요청 처리 등을 담당합니다...
JPA 에서 Java Record 사용하기
JPA 에서 Java Record 사용하기 Java Record 자바 레코드는 JDK14에서 preview로써 처음 등장했으며 JDK16에서 정식 스펙으로 포함된 기능입니다. 이는 클래스의 기능과 데이터 구조를 결합한 새로운 클래스 유형입니다. 레코드는 record 예약어를 사용합니다. 레코드의 구성요소들은 메서드의 매개변수 정의와 동일한 형태의 ...
Hibernate 에서 PostgreSQL JSONB 다루기
Hibernate 에서 PostgreSQL JSONB 다루기 Hibnerate6 이전 버전에서 PostgreSQL의 JSONB 타입을 다루기 위해선 직접 UserType 인터페이스를 구현하거나 이런 라이브러리 를 사용하여 JSONB 타입을 다뤘었습니다. Hibernate6 부터는 이러한 기능을 표준으로 제공하기 시작하여 JSON 컬럼을 entity의...
동일한 클래스 안에서 새로운 트랜잭션 생성하기
동일한 클래스 안에서 새로운 트랜잭션 생성하기 동일한 클래스 내에서 새로운 트랜잭션을 만들어 예외를 회피하려고 하는 경우, 의도했던 것과는 다른 결과가 나올 수 있습니다. @Transactional public void answer(Inquiry inquiry) { System.out.println(TransactionSynchronizati...
Spring Data JPA - Custom QueryDSL Repository 만들기
Spring Data JPA - Custom QueryDSL Repository 만들기 Spring Data JPA를 사용한다면 JpaRepository를 상속한 repository를 만들고 미리 정해진 키워드 들을 사용하여 메소드(쿼리)를 사용하곤 합니다. 그러나 메소드의 길이가 길어진다면 (findByNameAndAgeAndGenderAndPho...