🌿With Spring

🌿With Spring/Jasypt

Springboot 3에서 Jasypt 3.0.5 사용하기

의존성 추가 implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5' Config 추가 @Configuration public class JasyptConfig { @Bean public StringEncryptor stringEncryptor() { PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); SimpleStringPBEConfig config = new SimpleStringPBEConfig(); config.setPassword(System.getenv("JASYPT_ENCRYPTOR_KEY")); config.setPoolSize("1"); c..

🌿With Spring/JPA

한 엔티티의 PK를 2개의 FK로 가지는 클래스

신고 테이블은 필드로 두 개의 User 클래스를 가진다. - JoinColumn의 옵션 중 referencedColumnName을 생략하면 부모테이블의 PK와 자동으로 매핑됨 - name 옵션을 사용하면 매핑할 외래키 이름을 정해줄 수 있음

🌿With Spring/JPA

JPA에서의 엔티티 매핑(Entity Mapping)

JPA로 DB의 테이블과 상호작용(데이터 CRUD)하기 위해서는, 엔티티 클래스와 DB의 테이블이 매핑되어 있어야 한다. 엔티티 매핑은 크게 아래와 같이 분류할 수 있다. 엔티티 객체 & DB 테이블 간의 매핑 기본키 매핑 필드(멤버변수) &컬럼 간의 매핑 엔티티 간의 연관관계 매핑 1️⃣ 엔티티 & 테이블 매핑 - @Entity: JPA가 관리하는 클래스 = 엔티티 클래스 - @Table: 엔티티와 매핑할 테이블을 지정하는 애너테이션 import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table public class Member { @Id private Long memb..

🌿With Spring/JPA

JPA 基本

JPA(Java Persistence API) 자바 진영에서 ORM(Object Relational Mapping)기술의 표준사양(명세-Specification)(= 인터페이스) => 실제 구현된 것들이 아닌, 구현된 클래스들과 매핑해주기 위해 사용되는 기술 모음 현재는 Jakarta Persistence라고 불린다. Hibernate ORM(Object Relational Mapping) - JPA 인터페이스를 구현한 구현체 중 하나 - 애플리케이션의 Class와 관계형 데이터베이스의 Table을 자동으로 매핑해 주는 기술 JPA in Data Access Layer JPA는 데이터 엑세스 계층에서 상단에 위치한다. => 데이터 CRUD 작업은 JPA를 거쳐 JPA의 구현체인 Hibernate ORM을..

🌿With Spring/Spring Security

Servlet Filter와 Filter Chain

Servlet Filter 서블릿 기반 애플리케이션에서 애플리케이션의 endpoint에 request가 도달하기 전에, 중간에서 request를 가로챈 후 어떠한 처리를 할 수 있는 포인트 자바에서 제공하는 API. javax.servlet 패키지에 인터페이스로 정의되어 있음 ex) 사용자의 웹 요청이 Controller 같은 endpoint에 도달하기 전에 인증 관리자나 인가 관리자 등의 컴포넌트가 중간에서 요청을 가로채 사용자의 credential과 authorization 등을 검사 Servlet Filter(서블릿 필터)는 하나 이상의 필터들을 연결해 Filter Chain을 구성할 수 있다. 각각의 필터는 doFilter() 메소드를 반드시 가지고 있어야 하고, doFilter() 메소드를 통해..

🌿With Spring/Spring Security

OAuth2 알아보기

OAuth2란? Open Standard for Authorization 인터넷 사용자들이 로그인 자격증명(ID/Password 등)을 전송하지 않고도 다른 웹사이트에 있는 자신의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있도록 하는 것 특정 애플리케이션(Client)에서 사용자의 인증을 직접 처리하는 것이 아닌, 사용자 정보를 보유하고 있는 신뢰할 만한 third-party application(Google, Github 등)에서 사용자의 인증을 대신 처리해주고 resource에 대한 자격 증명용 토큰을 발급한 후, Client가 해당 토큰을 이용해 third-part application의 서비스를 사용하게 해주는 방식 예를 들자면, 일정 관리 애플리케이션을 만들기 위해 Googl..

🌿With Spring

Spring MVC

Spring MVC Spring의 모듈 중에서 Servlet API를 기반으로 클라이언트의 요청을 처리해주는 모듈이 있다. 이 모듈의 이름이 spring-webmvc인데, 얘가 바로 spring MVC라고 불리는 프레임워크이다. 우리는 Spring MVC 웹 프레임워크가 제공해주는 기능들을 이용해서 클라이언트의 요청을 편리하게 처리해줄 수 있다. MVC의 의미 M(Model) 우리가 패션 모델이라고 부르는 사람들은 패션 디자이너가 만든 옷을 관객들에게 선보인다. 이것과 비슷하게 Spring MVC에서의 Model도 같은 역할을 한다. Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 받으면 요청 사항을 처리하기 위한 작업을 하고, 처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려줘야..

🌿With Spring/Spring Security

JWT 알아보기

JWT(JSON Web Token) - 데이터를 안전/간결하게 전송하기 위해 고안된 인터넷 표준 인증 방식 - 유저를 인증하고 식별하기 위한 토큰 기반 인증 방식 - JSON 형태의 토큰 정보를 인코딩 후, 인코딩된 토큰 정보를 Secret Key로 Sign한 메시지를 Web Token으로 만들어 인증과정에 사용 JWT의 종류 1. Access Token - 보호된 정보들에 접근할 수 있는 권한을 부여할 때 사용 ➡️로그인 시 Access/Refresh Token 두 가지 다 받지만, 실제로 권한을 얻을 때 사용되는 토큰은 Access Token 2. Refresh Token - 새로운 Access Token을 발급할 때 사용 ➡️일반적으로 DB에 유저 정보와 함께 기록 JWT 구조 Header - 토큰..

코딩베이비
'🌿With Spring' 카테고리의 글 목록