본문 바로가기

Category/SpringBoot26

IntelliJ 콘솔 한글 깨짐 JDK 21 JDK 21버전으로 사용 중에 콘솔에서 한글이 깨져서 출력되었다. 설정에서 인코딩을 UTF-8로 했는지 확인하고 구글에 나오는 거 다 적용해봐도 안되길래 JDK 17버전으로 변경하고 그냥 넘어갈까 하던차에 해결법을 알게되었다. 파일 인코딩 및 기본 문자셋으로 UTF-8 사용JDK 18부터는 모든 운영 체제에서 UTF-8 기본 문자셋으로 사용됩니다. JEP 400 - 기본적으로 UTF-8 Java 플랫폼 개선 제안(JEP) 400에서는 콘솔 입력 및 출력 인코딩을 제외하고 Java 18부터 모든 운영 체제에www.ibm.com위의 링크를 들어가 보면 다음과 같은 내용이 적혀있다. 그래서 아래 단계를 따라 설정해주면 한글이 깨지지 않고 잘 출력된다. 오른쪽 하단 Apply, Save 버튼 클릭 후 다시 실.. 2025. 5. 6.
@JsonProperty란? @JsonProperty @JsonProperty는 Jackson 라이브러리에서 제공하는 어노테이션으로, JSON 데이터와 Java 객체 간 매핑할 필드명을 지정할 때 사용됩니다. Spring Boot에서는 Jackson이 기본적으로 포함되어 있으며, JSON 요청/응답을 처리할 때 사용됩니다. 1. @JsonProperty를 사용하는 이유JSON 필드명과 Java 필드명이 다를 때 매핑을 맞춰줌JSON 직렬화(객체 → JSON 변환)와 역직렬화(JSON → 객체 변환) 시 특정 필드명을 강제할 수 있음Snake_case(예: user_name)와 CamelCase(예: userName) 변환을 쉽게 처리할 수 있음 2. @JsonProperty 사용 예제예제 1: JSON 필드명이 다를 때 매핑impo.. 2025. 3. 1.
영속화(Persistence)란? - 객체(Entity)를 데이터베이스(DB)와 연결하여 저장(관리)하는 과정- JPA/Hibernate 같은 ORM이 자동으로 엔티티를 DB에 저장하고 관리하는 것- 영속성 컨텍스트(Persistence Context)에 의해 객체가 관리됨1. 영속화란? (Persistence)- JPA에서 Entity 객체를 "영속성 컨텍스트"에 저장하는 것- 데이터를 DB에 영구적으로 저장할 수 있도록 관리- 객체와 DB의 상태를 동기화 📌 쉽게 말하면?→ new로 생성한 객체는 일반적인 Java 객체지만,→ JPA의 EntityManager나 Spring Data JPA의 Repository를 통해 저장하면→ JPA가 해당 객체를 "영속성 컨텍스트"에 등록하고 DB와 연결2. 영속화 예제 (Spring Boot .. 2025. 2. 14.
스프링 시큐리티의 기본 동작과 Stateless 방식의 JWT 내용 정리 1. 스프링 시큐리티의 기본 동작 (Session 기반 인증)스프링 시큐리티(Spring Security)는 기본적으로 세션 기반 인증을 사용합니다.인증 흐름:사용자가 로그인 요청:/login 경로로 POST 요청을 보냅니다.요청 데이터: username과 password (form-data 형식)UsernamePasswordAuthenticationFilter 작동:사용자의 username과 password를 추출합니다.public class DefaultLoginFilter extends UsernamePasswordAuthenticationFilter { @Override public Authentication attemptAuthentication(HttpServletRequest re.. 2025. 1. 9.
스프링 부트 시작 옵션 spring.profiles.active 스프링 부트는 시작 옵션으로 아래와 같이 spring.profiles.active 항목을 전달할 수 있습니다.  java -Dspring.profiles.active=prod -jar sbb-0.0.1-SNAPSHOT.jar  -Dspring.profiles.active=prod 옵션을 주어 실행하면, 스프링 부트는 application.properties 파일 대신 application-prod.properties을 사용합니다. 만약 -Dspring.profiles.active=abc 옵션을 주어 실행하면, 서버 환경 파일로 application-abc.properties 파일을 사용하게 됩니다. 2024. 9. 9.
스프링 시큐리티 #authentication.getPrincipal() #authentication.getPrincipal()은 **스프링 시큐리티(Spring Security)**에서 현재 로그인한 사용자의 정보를 가져오는 메서드입니다.쉽게 설명하자면:Spring Security는 사용자가 로그인하면, 그 사용자의 정보를 저장하는 Authentication이라는 객체를 만듭니다.그 안에 있는 Principal은 "누가 로그인했는지"를 나타내는 정보입니다. 예를 들면, **로그인한 사용자의 이름(username)**이나 더 자세한 사용자 정보를 담고 있습니다.이 메서드를 왜 사용하나요?로그인한 사용자가 누구인지 알고 싶을 때, 이 메서드를 사용합니다. 예를 들어, 웹사이트에서 사용자에게 환영 메시지를 보여주거나, 사용자별로 다른 정보를 보여줄 때 유용합니다. 2024. 9. 6.