본문 바로가기

사이드 프로젝트 기록2

[EasyMarket] 트랜잭션, 꼭 서비스에서 시작해야 할까? 애플리케이션에서 데이터베이스 작업은 대부분 트랜잭션 내에서 처리된다.트랜잭션은 데이터의 일관성과 안정성을 보장하는 중요한 메커니즘으로, 이를 적절히 관리하지 않으면 성능 저하나 불필요한 리소스 소모를 초래할 수 있다.특히, 트랜잭션의 시작 지점(entry point)을 잘못 설정하면 커넥션 풀 고갈 문제를 일으킬 수 있으며, 이로 인해 애플리케이션 전체 성능에 부정적인 영향을 미칠 수 있다.따라서 트랜잭션을 적절하게 관리하는 것은 애플리케이션 성능에 매우 중요하다.보통 트랜잭션의 선언은 서비스 계층에서 이루어지며, Spring에서는 @Transactional 애노테이션을 사용하여 트랜잭션을 관리한다.나는 트랜잭션 최적화를 위해 서비스 계층에서 클래스 레벨에 @Transactional(readOnly = .. 2025. 2. 26.
[EasyMarket] 세션 VS JWT 토큰 방식 세션 방식 (Session-Based Authentication)간단한 동작 방식 정리클라이언트가 로그인 요청을 하면 서버가 인증 후 세션 ID를 생성세션 ID는 서버의 메모리에 저장클라이언트는 이 세션 ID를 쿠키에 저장하여 매 요청 시 서버로 전송서버는 요청마다 세션 ID를 확인하고 해당 세션의 정보를 조회하여 인증 처리장점구현이 간단하다스프링 시큐리티를 사용하면 간단한 설정으로 세션 기반 인증, 인가 아키텍처를 사용 가능서버와 클라이언트 간 구조가 직관적서버에서 세션을 보관하기 때문에 쉽게 무효화하거나 관리할 수 있다단점서버 확장성세션 정보를 서버에 저장하기 때문에 서버가 수평 확장되면 세션 동기화 문제가 있다.스프링 시큐리티는 세션 정보를 공유할 수 있는 메커니즘을 제공한다또는 레디스 같은 분산 .. 2025. 2. 7.