항해99 7기/TIL(Today I Learned)

항해99 7기 19일차 TIL[MVC와 Controller,Repository,Service]

고을마을 2022. 5. 28. 01:32

2022년 5월 27일. 항해 19일차.

오늘부터 주특기숙련주차가 시작됐다.

주특기입문주차보다 방대한 수업자료량에 놀랐고 강의와 자료를 보는데 온 하루를 다썼던 날.

 

오늘 배운 내용의 핵심 내용을 기록해본다.(작성해보면서 복습도 하고, 또 읽어보면서 이해도 하고 하는거겠지ㅋㅋ)


정적 페이지와 동적 페이지

  1. 정적 (static) 웹 페이지
    • Controller
      1. Client 의 요청을 Model 로 받아 처리 (ex: 회원가입을 위한 개인 정보들 (id, password, name))
      2. Client 에게 View (정적 웹 페이지, HTML) 를 내려줌
  2. 동적 (dynamic) 웹 페이지
    • Controller
      1. Client 의 요청을 Model 로 받아 처리
      2. Template engine 에게 View, Model 전달
        1. View: 동적 HTML 파일
        2. Model: View 에 적용할 정보들
      3. Template engine
        1. ViewModel 을 적용 → 동적 웹페이지 생성
          1. 예) 로그인 성공 시, "로그인된 사용자의 id" 를 페이지에 추가
          2. Template engine 종류: 타임리프 (Thymeleaf), Groovy, FreeMarker, Jade 등 (스프링에서 JSP 이용은 추천하지 않고 있음)
      4. Client 에게 View (동적 웹 페이지, HTML) 를 내려줌
      5. 정적 (static) 웹 페이지
        • Controller
          1. Client 의 요청을 Model 로 받아 처리 (ex: 회원가입을 위한 개인 정보들 (id, password, name))
          2. Client 에게 View (정적 웹 페이지, HTML) 를 내려줌
      6. 동적 (dynamic) 웹 페이지
        • Controller
          1. Client 의 요청을 Model 로 받아 처리
          2. Template engine 에게 View, Model 전달
            1. View: 동적 HTML 파일
            2. Model: View 에 적용할 정보들
          3. Template engine
            1. ViewModel 을 적용 → 동적 웹페이지 생성
              1. ex) 로그인 성공 시, "로그인된 사용자의 id" 를 페이지에 추가
              2. Template engine 종류: 타임리프 (Thymeleaf), Groovy, FreeMarker, Jade 등 (스프링에서 JSP 이용은 추천하지 않고 있음)
          4. Client 에게 View (동적 웹 페이지, HTML) 를 내려줌 

Controller,Repository,Service

 

  1. Controller
    • 클라이언트의 요청을 받음
    • 요청에 대한 처리는 서비스에게 전담
    • 클라이언트에게 응답
  2. Service
    • 사용자의 요구사항을 처리 ('비즈니스 로직') 하는 실세 중에 실세!!!
      • 현업에서는 서비스 코드가 계속 비대해짐
    • DB 정보가 필요할 때는 Repository 에게 요청
  3. Repository
    • DB 관리 (연결, 해제, 자원 관리)
    • DB CRUD 작업 처리

 


솔직히 오늘 너무 어려웠다!

이해하는데 한참 걸렸고 완벽하게 이해하지 못한 내용도 있었다.

주특기 숙련주차 각오는 하고 있었지만...ㅠㅠ

 

객체중복생성문제, 의존성주입... 아직도 알아야할게 너무 많다. 내일도 힘내자.