목록Sprung boot (60)
병호의 IT새싹키우기
LoginInterceptorpackage com.tenco.blog_v3.common.config;import com.auth0.jwt.exceptions.JWTDecodeException;import com.auth0.jwt.exceptions.TokenExpiredException;import com.tenco.blog_v3.common.errors.Exception401;import com.tenco.blog_v3.common.errors.Exception500;import com.tenco.blog_v3.common.utils.Define;import com.tenco.blog_v3.common.utils.JwtUtil;import com.tenco.blog_v3.user.User;import ..
의존성 추가 implementation 'com.auth0:java-jwt:4.4.0'dependencies { // Java jwt lib 가져오 implementation 'com.auth0:java-jwt:4.4.0' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.sprin..
JWT란 무엇인가?JWT는 JSON Web Token의 약자로, 두 시스템 간에 정보를 안전하게 전송하기 위해 사용되는 토큰 기반 인증 방식입니다. 예를 들어, 클라이언트와 서버 간에 인증 정보나 사용자 상태를 유지하고 싶을 때 JWT를 활용합니다. JWT는 JSON 형태로 데이터를 저장하며, 그 데이터는 서명(약간에 암호화)되어 안전하게 교환됩니다.JWT의 구조JWT는 세 부분으로 구성됩니다:Header (헤더): 토큰의 타입과 해싱 알고리즘 정보를 담고 있습니다. 보통 'alg' (알고리즘)와 'typ' (타입)이라는 두 가지 속성이 포함되며, 예를 들어, {"alg": "HS256", "typ": "JWT"} 형태입니다.Payload (페이로드): 주로 사용자 정보나 데이터(claims)를 포함하는..
@SessionAttribute 사용 권장 안함@SessionAttribute는 주로 세션에 저장된 모델 속성을 뷰에서 다시 사용할 때 활용됩니다.인증 정보를 관리하는 용도로는 적합하지 않으며, 세션에 해당 속성이 없을 경우 예외가 발생할 수 있습니다.HttpSession을 멤버 필드로 주입받는 것의 문제점이 발생 될 수 있음Spring MVC 컨트롤러는 기본적으로 싱글톤(하나의 인스턴스)으로 관리됩니다.HttpSession을 멤버 필드로 주입받으면 여러 요청 사이에 공유될 수 있어 쓰레드 안전성 문제가 발생할 수 있습니다.메서드 파라미터로 HttpSession을 받아 사용하는 것의 장점HttpSession을 메서드 파라미터로 받아 사용하면, 각 요청마다 개별적인 세션 객체에 접근할 수 있어 쓰레드 안전..
💡학습 목표💡Spring Data JPA에서 제공하는 JPARepository의 개념과 그 활용을 알아 보자. JPARepository란?Spring Data JPA는 Repository 인터페이스를 통해 데이터 접근 계층을 간편하게 구현할 수 있도록 도와주는 프레임워크입니다. 개발자가 직접 DAO(Data Access Object) 클래스를 작성하지 않고도, JpaRepository를 상속받는 인터페이스에 메서드를 정의함으로써 데이터베이스와의 상호작용을 처리할 수 있습니다.주요 메서드 확인save(S entity): 엔티티를 저장하거나 업데이트합니다.findById(ID id): ID로 엔티티를 조회합니다.findAll(): 모든 엔티티를 조회합니다.deleteById(ID id): ID로 엔티티를..
💡학습 목표💡 프로젝트 진행을 위한 기본 코드를 작성할 수 있다.HttpServletRequest 와 Model 를 구분해서 사용할 수 있다. Spring에서 템플릿 엔진을 사용할 때 데이터를 뷰로 전달하는 방식HttpServletRequest 객체 사용HttpServletRequest는 기본 서블릿 개념에서 사용됩니다.모든 HTTP 요청에 대한 데이터를 관리할 수 있으며, 세션이나 쿠키 같은 정보도 함께 처리할 수 있습니다.서블릿 API와 연관되어 있어 구조가 약간 복잡할 수 있습니다.Model 객체 사용Model은 Spring MVC에서 데이터 전달 전용으로 만들어졌습니다.컨트롤러에서 뷰로 데이터를 간편하게 전달할 수 있습니다.코드가 간결하며, Spring 프레임워크와 깊이 연관되어 있어 유지보수..