본문 바로가기
카테고리 없음

230213~230218 WIL

by hbIncoding 2023. 2. 19.

1. 이번주 배운 내용 정리

  1) 인프런 강의 배운 내용

  • 정적 컨텐츠
  • MVC model
  • API : @ResponseBody 사용 원리
  • 테스트 케이스 작성 방법
  • 스프링 빈과 의존 관계
  • 스프링 프레임워크와 스프링 부트
  • 객체지향 프로그래밍의 특징과 SOILD 원칙
  • IoC, DI, Container
  • 스프링 컨테이너와 스프링 빈
  • 스프링 컨테이너의 종류
  • 싱글톤 컨테이너란?
  • 컴포넌트 스캔과 의존관계 자동 주입

  2) 세션 및 항해 강의를 통해 배운 내용

  • 다대일, 일대다, 다대다, 일대일 관계 매핑 방법과 MappedBy, cascade 옵션
  • AccessToken과 RefreshToken
  • @Builder 사용 방법과 장점

2. 이번 주차 주요 키워드(ORM, SQL, MVC)

  • 데이터를 DB에 저장하는 방법은 여러가지가 있다.
    • JDBC : JAVA에서 DB에 접근할 수 있도록 하는 자바 API이다
    • Spring JDBC : 
    • Persistence FrameWork : SQL Mapper와 ORM으로 나뉜다.
      • SQL Mapper : 객체와 SQL을 단순 필드 매핑한다. 개발자가 SQL 문을 작성해서 직접 DB 조작
      • ORM : 아래와 같이 설명한다.

  1) ORM

  • 객체와 RDBMS의 데이터를 매핑한다.
  • 객체를 통해 간접적으로 DB데이터를 다룬다.
  • 객체와 DB 데이터를 자동으로 매핑해준다.

  2) SQL

  • 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어
  • SQL문법의 종류
    • DDL(data Definition Language) : 각 릴레이션을 정의를 위한 언어 ex) CREATE, ALTER, DROP...
    • DML(data Manipulation Language) : 데이터 관리를 위한 언어 ex) SECLECT, INSERT, UPDATE ...
    • DCL(data Control Language) : 관리, 접근 권한을 다루는 언어 ex) GRANT, REVOKE ....
  • SQL 언어의 특징
    • 대소문자를 가리지 않는다.
    • 반드시 세미콜론(;)으로 끝난다
    • 고유값은 따옴표(' ' )를 사용
    • 객체를 나타낼때는 백틱(``)을 사용

  3) ORM

  • 소프트웨어 디자인 패턴 중 하나로 Model, View, Controller로 나뉜다
    • model : 어플리케이션의 정보나 데이터, DB등을 말한다.
    • View : 사용자에게 보여지는 UI, 모델로 부터 정보를 얻고 표시
    • Controller : 데이터와 비즈니스로직 사이의 상호 동작을 관리, 모델과 뷰를 통제하고, 뷰와 모델이 직접적인 상호 소통을 하지 않도록 관리한다.
  • MVC1 패턴
    • JSP가 View와 Controller를 모두 담당, 구현 난이도가 쉽다.
    • 내용이 복잡하고 거대해질수록 사용이 어렵다. > 재사용성도 떨어지고, 읽기가 어려워져 유지보수 문제 발생

  • MVC2 패턴 (Spring에서 사용)
    • MVC1과 다르게 Controller와 View가 분리되어 MVC1의 단점을 보완 가능, 필요한 부분만 수정하면 된다.
    • 구조가 복잡해 질 수 있지만, 개발자가 세부적인 구성까지 신경쓰지 않아도 되는 것이 장점
    • 각종 프레임 워크들이 잘 발전되어 왔으며 대표적인 것으로 스프링 프레임워크가 있다.

 

3. 참조자료

1) ORM과 JPA : https://me-analyzingdata.tistory.com/entry/Spring-JPA-ORM%EA%B3%BC-JPA

 

[Spring JPA] ORM과 JPA

[Spring JPA] ORM과 JPA Status: Done ✨ ORM이란? ORM은 객체와 DB 테이블이 매핑을 이루는 것을 의미한다. 즉, 내가 코드 상에서 생성한 객체가 DB상에 어떤 테이블과 연결이 된다는 것을 의미한다. 이렇게

me-analyzingdata.tistory.com

2)MVC1, MVC2 : https://chanhuiseok.github.io/posts/spring-3/