이노베이션 캠프

[WIL] 4주차

hjkim0502 2022. 8. 28. 22:09

가장 에러를 많이 만났던 주차였다. 스스로의 힘으로 리팩토링에 성공해서 원하는 결과물을 만들어냈고, 금요일부터는 새로운 팀원들과 팀플 및 개인공부를 진행중이다. 다음 주차부터는 지금까지 배운 것들을 토대로 실제 서비스와 같은 것들을 만들어 나갈텐데, 지금 내 수준 정도로 괜찮은건가? 싶기는 하지만 앞으로 계속 배워나가면 된다라며 스스로를 다독이고 있는 것 같다.

 

1. ORM(Object Relational Mapping)

애플리케이션의 객체와 RDB(relational database)를 연결(mapping)하는 것이다

  • 자바는 객체로 구성하여 프로그래밍하고, RDB는 테이블로 이루어져 있으며, 애초에 이 둘은 호환을 염두에 두고 만들어진 것이 아니기 때문에 객체와 테이블을 매핑하는 것에 문제가 생길 수 밖에 없다
  • 이를 해결하고자 ORM 기술을 이용하여 SQL에 의존하지 않고 객체 중심적으로 프로그래밍할 수 있다
  • 자바에서는 JPA가 ORM의 표준으로 사용된다

  • JPA를 사용하게 되면 직접 SQL를 쓸 필요없이 JPA 내부적으로 적절한 SQL을 작성하고 JDBC API를 호출하여 원하는 결과를 반환받을 수 있다

장점:

  • 객체 지향적인 코드로 비즈니스 로직에 더욱 집중할 수 있게 된다
  • 재사용 및 유지보수에 좋다
  • DBMS에 종속적이지 않다

단점:

https://sanseongko.github.io/java-orm

 

 

2. SQL(Structured Query Language)

 

3. MVC

1. DispatcherServlet ↔ Handlermapping: 요청을 받은 프론트 컨트롤러가 Handlermapping를 통해 어떤 컨트롤러의 어떤 함수를 써야하는지 알게된다 (Handlermapping에 api path와 컨트롤러 함수가 매핑되어있음)

2. DispatcherServlet  Controller: 해당하는 컨트롤러에 클라이언트의 요청(+Model)을 넘겨주어 컨트롤러는 그 요청을 처리하여 Model과 View 데이터를 넘겨준다

3. DispatcherServlet  ViewResolver: 전달받은 Model과 View를 ViewResolver가 받아 합쳐준 뒤 다시 넘겨준다

4. DispatcherServlet ↔ View: Model이 적용된 View를 넘겨주면 View가 이를 클라이언트에 넘겨준다

 

  • Spring에서의 사용

1. Request

2. Response