Spring Boot JDBC/이론정리

Spring Boot 기본 작동 원리 비유적 설명

qoeka 2024. 12. 19. 23:27

비유 

데이터베이스(DB)

 데이터가 실제로 저장되는 장소창고에 비유됨.

  • DB는 단순한 창고가 아니라, 정리와 관리가 잘 된 스마트 창고입니다.
  • 스마트 창고(DB):
    1. 원하는 물건을 빠르게 찾아줌(검색).
    2. 물건 추가, 제거, 수정 가능(관리).
    3. 물건 간의 연결 정보도 제공(관계).
    4. 창고를 안전하게 지키고, 문제 시 복구도 가능(보안 & 백업).

Dao

창고와 소통하며 데이터를 가져오거나 저장하는 역할로 심부름꾼에 비유됨. 바리스타는 창고의 사정도 알고 심부름꾼의 사정도 아는 이해자인것이다.

  • SQL과의 연결:
    • DAO는 DB와 직접 대화하며, 데이터 작업을 위해 SQL 쿼리를 실행합니다.
    • 예: SELECT, INSERT, UPDATE, DELETE 같은 명령어를 실행.
    • "SELECT * FROM users WHERE id = ?" 같은 SQL 쿼리 작성.
    • 이 쿼리를 DB에 전달해 실행.
  • 자바와의 연결:
    • SQL로 가져온 데이터를 자바 객체(예: User, Order 등)로 변환해줍니다.
    • 또는 자바 객체를 DB가 이해할 수 있는 데이터로 변환해서 저장합니다.
    • DB에서 가져온 데이터를 자바의 User 객체로 변환.
    • 자바의 User 객체 데이터를 DB가 이해할 수 있는 값으로 변환.

 

Controller

 손님의 요청을 받아 처리하고 결과를 전달하는 역할로 바리스타에 비유됨.

 

  1. 요청 수신: 클라이언트의 HTTP 요청(GET, POST 등)을 처리.
  2. 서비스 호출: 비즈니스 로직 처리를 위해 서비스 계층에 요청 전달.
  3. 응답 생성: 결과 데이터를 클라이언트가 이해할 수 있는 형태(JSON 등)로 가공하여 반환.
  4. 로직은 Controller가 아닌 Service(코드 영역을 지칭하는 용어)에서 처리되며, Controller는 단순히 연결만 합니다.

Class 

 클래스 (레시피)

 

  • 데이터를 어떻게 정리하고 쓸지 정의.
  • 예: "이름", "나이"처럼 어떤 속성을 가질지 결정.
  • 데이터를 깔끔히 가공하고 다루기 위한 기준표.

흐름 예시

  1. 손님(클라이언트)이 바리스타(Controller)에게 "커피"를 요청.
  2. 바리스타는 심부름꾼(DAO)에게 커피 재료(DB) 준비를 지시.
  3. 심부름꾼은 창고(DB)에서 커피 재료를 가져옴.
  4. 바리스타는 레시피(User 클래스)를 참고해서 커피를 만들어 손님에게 제공.

포스트맨

  • 서버와 직접 소통하며 요청응답을 테스트하는 도구.
  • 개발자를 돕는 가상의 손님 역할 수행.

이와 같은 방식으로 요청과 응답의 흐름 및 각 구성 요소의 역할을 비유를 통해 설명한것이다.

 

 

결론적으로

DAO는 DB와 직접 소통하며 데이터를 가져오거나 저장하는 역할을 합니다.
데이터 처리와 비즈니스 로직을 분리해 코드 유지보수를 쉽게 하고, DB 변경에도 영향을 줄여줍니다.