항해99 - Weekly I learned from 4th week

Dasole Kwon·2022년 6월 5일
0

항해99

목록 보기
30/47

이번주는 정말 정신 없는 한주였다.

물론 강의보랴, 과제하랴 바빴지만 무엇보다도 이사(중국 -> 한국)를 해야하기 때문에... 너무 정신이 없어서 이번주는 공부를 많이 못 한 느낌이다ㅠ.ㅠ
TIL도 제대로 못 썼던 것 같아 반성해야하는 한 주였던 것 같다. 돌아오는 주부터는(드디어 한국에서!) 시간 관리를 더 철저하게 해서 부족한 부분을 얼른얼른 채워야겠다.


반복해서 적는 개념이라 예전에 썼던 내용들과 조금 겹치지만, 그래도 복습 느낌으로 다시 한번 정리해보겠다.

  1. ORM이란?

    💡 ORM: Object-Relational Mapping

    Object: "객체"지향 언어 (자바, 파이썬)
    Relational: "관계형" 데이터베이스 (H2, MySQL)

  • 백엔드 개발자(Backend Developer): 웹 서버를 개발하는 개발자
  • DBA (Database Administration): 데이터베이스 관리자. 데이터베이스를 설치, 구성, 관리 등의 일을 맡은 사람
  1. JPA는?

    💡 JPA: Java Persistence API
    자바 ORM 기술에 대한 표준 명세

  2. 하이버네이트 (Hibernate)?

    • JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준
    • 스프링 부트에서 기본적으로 "하이버네이트" 사용 중

    사실상 표준 (de facto, 디팩토)
    보통 기업간 치열한 경쟁을 통해 시장에서 결정되는 비 공식적 표준이다

  3. 영속성 컨텍스트?

    • JPA
      • 객체 - ORM - DB
      • 객체 - 영속성 컨텍스트 매니져 (entity context manager) - DB
  4. 스프링 MVC?

    • MVC (Model - View - Controller) 디자인 패턴
    • Server 에서 HTML 을 내려 주는 경우

    정적 (static) 웹 페이지

  • Controller
    1. Client 의 요청을 Model 로 받아 처리

      1. 예) 회원가입을 위한 개인 정보들 (id, password, name)
    2. Client 에게 View (정적 웹 페이지, HTML) 를 내려줌

      동적 (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) 를 내려줌
  • 스프링 MVC 동작원리
    👉 @Controller 는 스프링 서버 개발자 입장에서는 시작점과 끝점으로 보이지만, 사실 스프링이 뒤에서 많은 부분을 보이지 않게 처리해 주고 있습니다.

0개의 댓글