TiL
-
['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 -
[3 Layer Architecture] 메모장 프로젝트의 문제점현재 메모장 프로젝트는 Controller 클래스 하나로 모든 API를 처리하고 있음현재는 API 수가 적고 기능이 단순하여 코드가 복잡해 보이지 않을 수 있지만 앞으로 기능이 추가되고 복잡해진다면 문제 발생 가능한 개의 클래스에 너무 많은 양의 코드가 존재하기 때문에 코드를 이해 어려움현업에서는 코드의 추가 혹은 변경 요청이 계속 생길 수 있음이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리하였음! Spring의 3 Layer Architecture 1. Controller클라이언트의 요청을 받음요..
[TIL] 230517 <Spring> 3 Layer Architecture, IoC와 DI, JPA CORE[3 Layer Architecture] 메모장 프로젝트의 문제점현재 메모장 프로젝트는 Controller 클래스 하나로 모든 API를 처리하고 있음현재는 API 수가 적고 기능이 단순하여 코드가 복잡해 보이지 않을 수 있지만 앞으로 기능이 추가되고 복잡해진다면 문제 발생 가능한 개의 클래스에 너무 많은 양의 코드가 존재하기 때문에 코드를 이해 어려움현업에서는 코드의 추가 혹은 변경 요청이 계속 생길 수 있음이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리하였음! Spring의 3 Layer Architecture 1. Controller클라이언트의 요청을 받음요..
2024.05.17 -
[메모장 프로젝트 설계] 프로젝트 생성 및 준비images 폴더 생성 후 그 안에 delete,done,edit,send.png 넣기 (src > main > resources > static)index.html (src > main > resources > static)더보기 Memo 공유하고 싶은 소식을 입력해주세요. rows="10"> 작성하기--> October 10, 2020 anonymous ..
[TIL] 230516 <Spring> 메모장, Database와 SQL[메모장 프로젝트 설계] 프로젝트 생성 및 준비images 폴더 생성 후 그 안에 delete,done,edit,send.png 넣기 (src > main > resources > static)index.html (src > main > resources > static)더보기 Memo 공유하고 싶은 소식을 입력해주세요. rows="10"> 작성하기--> October 10, 2020 anonymous ..
2024.05.16