스프링이란

스프링이란

DSA Backend 과정 내용 정리

  • 자바 기반의 애플리케이션을 개발하기 위한 오픈소스 프레임워크

스프링의 주요 특징

  • DI (의존성 주입) : 객체간의 관계를 개발자가 직접 생성하지 않고 스프링 컨테이너에게 위임한다.
  • IoC (제어의 역전) :
  • AOP(관점 지향 프로그래밍) : 공통관심사 (트랜잭션, 로깅, 보안)를 분리하여 관리한다.

스프링부트란?

  1. 스프링 프레임워크를 좀 더 쉽게 사용할 수 있도록 만든 프레임워크
  2. 특징
    • 자동 설정
    • 내장 웹서버 (Tomcat)
    • 독립 실행 환경 (war -> jar)

스프링 빈

  • 스프링에서 관리하는 객체를 빈(Bean)이라고 한다.
  • 스프링 빈 등록 방법
    1. @Component
    2. @Controller, @Service, @Repository
    3. @Configuration 을 사용하여 @Bean을 메소드 레벨에 지정

의존성 주입(DI)

  • 객체간의 의존 관계를 스프링 컨테이너가 자동으로 주입해주는 개념
  • DI의 방법 : 필드 주입, 세터 주입, 생성자 주입(권장)

HTTP 요청

  • 클라이언트(웹 브라우저)가 서버에 데이터를 요청하는 방식
  • GET, POST, PUT, DELETE, PATCH, …

HTTP 응답

  • 서버가 클라이언트의 요청을 처리하고 결과를 반환하는 방식
  • 응답코드: 200, 404, 500, 401, 403, 302, …

포워드와 리다이렉트

  • 포워드 : 서버 내부에서 페이지를 이동, URL 변경이 안됨
  • 리다이렉트 : 새로운 요청을 생성하여 다른 URL로 이동, URL이 변경됨

쿠키와 세션

  • 쿠키 : 클라이언트에 저장, 보안이 취약
  • 세션 : 서버에 저장, 주로 로그인 정보 보관

유효성 검증

errors.properties

필터와 인터셉터

  • 필터 : HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 필터3 서블릿 -> 컨트롤러
  • 인터셉터 : HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 인터셉터1 -> 인터셉터2 -> 인터셉터 3 -> 컨트롤러

응답코드 302 : 리다이렉트 되었다는 의미

게시판 -> 글 조회 -> /posts/2 -> 2번 아이디를 가진 글을 내 보낸다. /posts/3 -> 3번 게시글은 존재하지 않ㅡ다. -> NoSuchElementException 발생 -> 서버 내부 오류라고 상태코드 500 발생 -> 하지만 이는 클라이언트가 없는것을 요청하여서 발생한 것 -> 404 오류로 명시적으로 나타내 줘야함

스프링 시큐리티 (보안)

  • 로그인, 로그아웃, 권한관리, 패스워드 암호화, 로그인 실패, 로그인 성공