반응형

springboot 2

[JAVA/SPRING] Git에 비밀번호 올리지 마세요: 스프링 부트 민감 정보 관리 전략 (Jasypt, Vault)

"잠깐, 방금 커밋한 application.yml에 DB 비밀번호 들어있지 않았어?"오픈소스 프로젝트나 실무 초기에 흔히 겪는 식은땀 나는 상황입니다. 실수로 깃허브(GitHub)에 AWS 키나 DB 패스워드를 올렸다가, 몇 분 만에 클라우드 비용이 수백만 원 청구되거나 보안 사고로 이어지는 사례는 꽤 흔합니다.이번 글에서는 환경 변수부터 Jasypt 암호화, 그리고 HashiCorp Vault까지, 민감 정보를 안전하게 관리하는 단계별 전략을 소개합니다.1. 최악의 패턴: 하드코딩 (Hardcoding)spring: datasource: url: jdbc:mysql://db-prod.company.com:3306/mydb username: admin password: "Password..

[Spring/JPA] Spring JPA N+1 문제 정리: 원인, 예시 코드, Fetch Join/EntityGraph 해결 전략

JPA(Java Persistence API)를 실무에 도입했을 때 가장 빈번하게 마주치는 성능 이슈는 단연 N+1 문제입니다. 이 문제는 단순한 쿼리 수 증가를 넘어 데이터베이스 부하를 기하급수적으로 늘리는 주원인이 됩니다.본 문서는 N+1 문제가 발생하는 기술적 메커니즘을 심층 분석하고, 실무 환경(페이징, 대량 데이터 등)에 따른 최적의 해결 전략을 가이드합니다.1. N+1 문제의 정의 및 발생 원인N+1 문제란 연관 관계가 설정된 엔티티를 조회할 때, 조회된 데이터 갯수(N)만큼 연관관계 조회를 위한 추가 쿼리가 발생하는 현상을 말합니다.N+1 문제 예시회원(Member) 10명을 조회한다고 가정해 봅시다. (회원은 각각 하나의 팀(Team)에 소속되어 있습니다.)최초 1번: "회원 10명을 다 ..

반응형