Spring 입문 주차 8.19(금) ~ 8.25(목)
1. 개인 과제: 회원가입, 로그인, 댓글 작성/수정/삭제 기능이 추가된 백엔드 서버 만들기 - 로그인 JWT 활용 2. 팀 과제: Spring 핵심 키워드 정리 |
진행 계획
- 19일(금) Spring 핵심 키워드 정리
- 20일(토) Spring 핵심 키워드 정리
- 21일(일) 개인과제에 필요한 강의 수강 및 공부
- 22일(월) API 명세서 작성, ERD 만들기
- 23일(화) 회원가입 기능 코드 작성
- 24일(수) 로그인 기능 코드 작성
- 25일(목) 댓글 작성/수정/삭제 기능 코드 작성 및 AWS 배포
1. 복습
1) 강의 들은거 혼자 정리해 보기
public class ProductService {
// 멤버 변수 선언
private final ProductRepository productRepository;
// 생성자: ProductService() 가 생성될 때 호출됨
public ProductService() {
// ProductService클래스에 productRepository 멤버 변수 생성
this.productRepository = new ProductRepository();
}
public Product createProduct(ProductRequestDto requestDto) throws SQLException {
// 요청받은 DTO(requestDto)로 DB에 저장할 객체 product 만들기
Product product = new Product(requestDto);
// ProductService클래스에 productRepository 멤버 변수 사용
this.productRepository.createProduct(product);
return product;
}
2. 새로 배운 것
1) 웹의 인증 및 인가
인증(Authentication): 사용자 신원을 확인하는 행위 / 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용)
인가(Autorization): 사용자 권한을 확인하는 행위 / 주로 역할에 따른 사용 권한 관리
2) 쿠키와 세션
HTTP는 상태를 저장하지 못 함 => 사용자 구분 불가
쿠키와 세션 모두 HTTP 에 상태 정보를 유지(Stateful)하기 위해 사용됩니다. 즉, 쿠키와 세션을 통해 서버에서는 클라이언트 별로 인증 및 인가를 할 수 있게 됩니다.
쿠키
- 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일 입니다.
- 구성요소
- Name (이름): 쿠키를 구별하는 데 사용되는 키 (중복될 수 없음)
- Value (값): 쿠키의 값
- Domain (도메인): 쿠키가 저장된 도메인
- Path (경로): 쿠키가 사용되는 경로
- Expires (만료기한): 쿠키의 만료기한 (만료기한 지나면 삭제됩니다.)
세션
- 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용
- 서버에서 클라이언트 별로 유일무이한 '세션 ID' 를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장
- 서버에서 생성한 '세션 ID' 는 클라이언트의 쿠키값('세션 쿠키' 라고 부름)으로 저장되어 클라이언트 식별에 사용됨
3) Spring Security 적용
스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 줍니다.
스프링 시큐리티 프레임워크 추가
// 스프링 시큐리티 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-security'
3. 오늘 한 일 / 회고
- 스프링 강의 수강 및 복습
- AWS 관련 강의 수강
4. TO-DO LIST
- 개인 과제: 게시판 CRUD 구현 시작
5. 참고 레퍼런스
'개발 일지' 카테고리의 다른 글
[TIL]이노베이션 캠프 22일차 (0) | 2022.08.22 |
---|---|
[WIL]이노베이션 캠프 3주차 (0) | 2022.08.21 |
[TIL]이노베이션 캠프 20일차 (0) | 2022.08.20 |
[TIL]이노베이션 캠프 19일차 (0) | 2022.08.19 |
[TIL]이노베이션 캠프 18일차 (0) | 2022.08.18 |