개발/부트캠프

본캠프 : Spring 기초 강의 완강 요약

EJ EJ 2025. 1. 27. 21:05

1.Spring MVC 구조

  • 프론트 컨트롤러 : DispatcherServlet
  • 어댑터 패턴 : HandlerAdapter
  • View 응답 : View Resolver

2.중요! Client to Server 데이터 전송하는 방법 3가지

  • GET + Query Parameter(=Query String)
  • POST + HTML Form(x-www-form-urlencoded)
  • HTTP Request Body

3.중요! Server to Client 데이터 응답하는 방법 3가지

  • 정적 리소스
  • View Template
  • HTTP Response Body

4.Spring Annotation

  • Controller

        -  @Controller(View 응답), @RestController(데이터 응답)

        -  @RequestMapping(Post, Get, Put, Patch, Delete)

        -  @PathVariable, @RequestParam, @MoelAttribute, @RequestBody 요청

        -  @ResponseBody, HttpResponseEntity<> 응답

  • 각 어노테이션의 사용법 및 주의사항
  • HttpMessageConverter

5.Layered Architecture

Controller의 역할을 분담한다.

  • Controller

        -  요청, 응답

  • Service

        -  비지니스 로직

        -  @Service

  • Repository

        -  데이터베이스 상호 작용

        -  @Repository

  • DTO

        -  Layer간 데이터 전달

 

6.Prepared Statement

  • query를 미리 준비한다.
  • Statement에 비해 성능면에서 뛰어나다.
  • 웹 보안을 유지할 수 있다.

7.Persistence Framework

  • JDBC API를 사용한다.
  • Prepared Statement를 사용한다.
  • JDBC 처럼 복잡함이나 번거로움 없이 간단한 작업만으로 Database와 연동된다.

        -  자원 관리(Connection)를 자동으로 해준다.

  • SQL Mapper

        -  JDBC Template

 

8.실습 요약

  • 실습을 기반으로 모든 CRUD API를 만들 수 있다.
  • 우리가 실습으로 만들어낸건 메모 CRUD API로 대부분의 구조가 정형화 되어있다.
  • 그렇다면 우리가 할일은? 메모 → 다른 무엇인가로 바꾸면된다.
  • 아직은 문제점들을 가지고 있다.

        -  예외 발생시 공통적으로 처리가 불가능하다.

            각각의 모든 예외를 try-catch 하여 처리해야 한다.

        -  RequestDto, ResponseDto를 공유하여 null값이 들어오기도 한다.

            필요없는 필드에 추가적인 null 검사를 해야한다.

        -  Spring Bean, 생성자 주입 등 Spring의 동작 원리에 대해 이해하지 못했다.

        -  왜 Interface로 만들어서 구현하여 사용하는지 모른다.