본문 바로가기

개발 일지

[TIL]이노베이션 캠프 21일차

 

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. 참고 레퍼런스

https://www.bottlehs.com/springboot/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-spring-security%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9D%B8%EC%A6%9D-%EB%B0%8F-%EA%B6%8C%ED%95%9C%EB%B6%80%EC%97%AC/

 

스프링 부트 Spring Security를 활용한 인증 및 권한부여

스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한,인가 등)을 담당하는 스프링 하위 프레임워크이다. 주로 서블릿 필터와 이들로 구성된 필터체인으로의 위임모델을 사용한

www.bottlehs.com

https://devuna.tistory.com/55

 

[Spring Security] 스프링시큐리티의 기본 개념과 구조

[Spring Security] 스프링시큐리티의 개념/시작하기 /기본세팅 💡 스프링시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프

devuna.tistory.com