Spring
-
[일정과 댓글의 연관 관계 설정]각 일정에 댓글을 작성할 수 있도록 관련 클래스를 추가하고 연관 관계를 설정합니다.매핑 관계를 설정합니다. (1:1 or N:1 or N:M) entity>Schedule@Entity // JPA가 관리할 수 있는 Entity 클래스 지정@Getter@Setter@Table(name = "schedule") // 매핑할 테이블의 이름을 지정@NoArgsConstructorpublic class Schedule extends Timestamped{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "title", nullable = false) private Stri..
[TIL] 230529 <Spring> 회원가입, 로그인 기능이 있는 투두앱 백엔드 서버 만들기 (1)[일정과 댓글의 연관 관계 설정]각 일정에 댓글을 작성할 수 있도록 관련 클래스를 추가하고 연관 관계를 설정합니다.매핑 관계를 설정합니다. (1:1 or N:1 or N:M) entity>Schedule@Entity // JPA가 관리할 수 있는 Entity 클래스 지정@Getter@Setter@Table(name = "schedule") // 매핑할 테이블의 이름을 지정@NoArgsConstructorpublic class Schedule extends Timestamped{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "title", nullable = false) private Stri..
2024.05.29 -
[회원기능 구현]myselectshopAPI 구현▼ 회원 DB에 매핑되는 @Entity 클래스 구현entity>User@Entity@Getter@Setter@NoArgsConstructor@Table(name = "users")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; @Column(nullable = false, unique = true) private String ema..
[TIL] 230528 <Spring> My Select Shop[회원기능 구현]myselectshopAPI 구현▼ 회원 DB에 매핑되는 @Entity 클래스 구현entity>User@Entity@Getter@Setter@NoArgsConstructor@Table(name = "users")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; @Column(nullable = false, unique = true) private String ema..
2024.05.28 -
['Spring Security' 프레임워크]Spring Security 적용'Spring Security' 프레임워크는 Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 줍니다. 마치 'Spring' 프레임워크가 웹 서버 구현에 편의를 제공해 주는 것과 같습니다. 'Spring Security' 프레임워크 추가// Securityimplementation 'org.springframework.boot:spring-boot-starter-security' LoggingFilter, AuthFilter 등록 해제 (@Component 주석처리) config> WebSecurityConfig@Configuration@EnableWebSecurity // Sp..
[TIL] 230527 <Spring> 사용자 관리하기, 데이터 검증하기['Spring Security' 프레임워크]Spring Security 적용'Spring Security' 프레임워크는 Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 줍니다. 마치 'Spring' 프레임워크가 웹 서버 구현에 편의를 제공해 주는 것과 같습니다. 'Spring Security' 프레임워크 추가// Securityimplementation 'org.springframework.boot:spring-boot-starter-security' LoggingFilter, AuthFilter 등록 해제 (@Component 주석처리) config> WebSecurityConfig@Configuration@EnableWebSecurity // Sp..
2024.05.27 -
[JWT]- JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token- 일반적으로 쿠키 저장소를 사용하여 JWT를 저장모든 서버에서 동일한 Secret Key 소유함Secret Key 통한 암호화 / 위조 검증 (복호화 시)JWT 는 누구나 평문으로 복호화 가능하지만 Secret Key 가 없으면 JWT 수정 불가능→ 결국 JWT 는 Read only 데이터1. Header 2. Payload 3. Signatureㄴ Payload에 실제 유저의 정보가 들어있고, HEADER와 VERIFY SIGNATURE부분은 암호화 관련된 정보 양식장점동시 접속자가 많을 때 서버 측 부하 낮춤Client, Sever 가 다른 도메인을 사용할 때예) 카카오 OAuth2 로그인 ..
[TIL] 230524 <Spring> 인증과 인가, 사용자 관리하기[JWT]- JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token- 일반적으로 쿠키 저장소를 사용하여 JWT를 저장모든 서버에서 동일한 Secret Key 소유함Secret Key 통한 암호화 / 위조 검증 (복호화 시)JWT 는 누구나 평문으로 복호화 가능하지만 Secret Key 가 없으면 JWT 수정 불가능→ 결국 JWT 는 Read only 데이터1. Header 2. Payload 3. Signatureㄴ Payload에 실제 유저의 정보가 들어있고, HEADER와 VERIFY SIGNATURE부분은 암호화 관련된 정보 양식장점동시 접속자가 많을 때 서버 측 부하 낮춤Client, Sever 가 다른 도메인을 사용할 때예) 카카오 OAuth2 로그인 ..
2024.05.24 -
[My Select Shop 설계] 프로젝트 생성 build.gradle dependencies에 아래 추가(Spring-Security는 잠시 주석 처리)// JWTcompileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'// jsonimplementation 'org.json:json:20230227'application.propertiesspring.data..
[TIL] 230523 <Spring> My Select Shop[My Select Shop 설계] 프로젝트 생성 build.gradle dependencies에 아래 추가(Spring-Security는 잠시 주석 처리)// JWTcompileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'// jsonimplementation 'org.json:json:20230227'application.propertiesspring.data..
2024.05.24 -
[Entity 연관 관계] 주문 APP DB table 설계 및 연관 관계고객 (users) 테이블create table users( id bigint not null auto_increment, name varchar(255), primary key (id));음식 (food) 테이블create table food( id bigint not null auto_increment, name varchar(255), price float(53) not null, primary key (id));주문 (orders) 테이블create table orders( id bigint not null auto_increment, user_id..
[TIL] 230522 <Spring> JPA 한 걸음 더 나아가기[Entity 연관 관계] 주문 APP DB table 설계 및 연관 관계고객 (users) 테이블create table users( id bigint not null auto_increment, name varchar(255), primary key (id));음식 (food) 테이블create table food( id bigint not null auto_increment, name varchar(255), price float(53) not null, primary key (id));주문 (orders) 테이블create table orders( id bigint not null auto_increment, user_id..
2024.05.22 -
[Bean을 수동으로 등록하는 방법]@Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록해줌프로젝트의 규모가 커질 수록 등록할 Bean들이 많아지기 때문에 자동등록을 사용하면 편리비즈니스 로직과 관련된 클래스들은 그 수가 많기 때문에 @Controller, @Service와 같은 애너테이션들을 사용해서 Bean으로 등록하고 관리하면 개발 생산성에 유리Bean 수동 등록은 언제 사용? >> 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋음!!!공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가 적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동등록비즈니스 로직 Bean 보다는 그 수가 적기 ..
[TIL] 230521 <Spring> Bean, 인증과 인가, RestTemplate & Open API[Bean을 수동으로 등록하는 방법]@Component를 사용하면 @ComponentScan에 의해 자동으로 스캔되어 해당 클래스를 Bean으로 등록해줌프로젝트의 규모가 커질 수록 등록할 Bean들이 많아지기 때문에 자동등록을 사용하면 편리비즈니스 로직과 관련된 클래스들은 그 수가 많기 때문에 @Controller, @Service와 같은 애너테이션들을 사용해서 Bean으로 등록하고 관리하면 개발 생산성에 유리Bean 수동 등록은 언제 사용? >> 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들을 수동으로 등록하는 것이 좋음!!!공통 로그처리와 같은 비즈니스 로직을 지원하기 위한 부가 적이고 공통적인 기능들을 기술 지원 Bean이라 부르고 수동등록비즈니스 로직 Bean 보다는 그 수가 적기 ..
2024.05.21 -
[SpringBoot 환경에서의 JPA]SpringBoot 환경에서는 EntityManagerFactory와 EntityManager를 자동으로 생성해줌ㄴ application.properties에 DB 정보를 전달해 주면 이를 토대로 EntityManagerFactory가 생성됨@PersistenceConext 애너테이션을 사용하면 자동으로 생성된 EntityManager를 주입받아 사용가능@PersistenceContextEntityManager em; ▶ build.gradle : spring-boot-starter-data-jpa 추가// JPA 설정implementation 'org.springframework.boot:spring-boot-starter-data-jpa'▶ applicat..
[TIL] 230520 <Spring> Spring Data JPA[SpringBoot 환경에서의 JPA]SpringBoot 환경에서는 EntityManagerFactory와 EntityManager를 자동으로 생성해줌ㄴ application.properties에 DB 정보를 전달해 주면 이를 토대로 EntityManagerFactory가 생성됨@PersistenceConext 애너테이션을 사용하면 자동으로 생성된 EntityManager를 주입받아 사용가능@PersistenceContextEntityManager em; ▶ build.gradle : spring-boot-starter-data-jpa 추가// JPA 설정implementation 'org.springframework.boot:spring-boot-starter-data-jpa'▶ applicat..
2024.05.20