⏰ 2024. 05. 17 금
✔ 스프링 이론 강의를 듣고 정리하면서 작성했습니다.
💡 목차
- MVC 디자인 패턴
- Jackson 라이브러리
- DTO
- Database와 SQL
MVC 디자인 패턴
MVC 디자인 패턴
MVC 디자인 패턴이란 Model-View-Controller의 약자로 소프트웨어 디자인 패턴 중 하나이고, 소프트웨어를 구성하는 요소들을 Model, View, Controller로 각각의 역할을 분리한다.
- Model : 데이터와 비지니스 로직을 담당하고 DB와 연동 및 저장하는 작업을 수행
- View : 사용자 인터페이스 담당하고, 사용자가 보는 화면을 디자인하고 구현
- Controller : Model과 View 사이의 상호작용 수행, 사용자 입력을 Model에 전달하고, 입력을 처리한 결과를 View에 전달
⚡ MVC 디자인 패턴을 사용하는 이유
소프트웨어 구성하는 요소를 분리함으로써, 코드의 재사용성과 유지보수성을 높이고, 개발자들의 협업을 쉽게 만들어주기 때문이다.
Spring의 MVC
DispatcherServlet이 중앙에서 HTTP 요청을 처리해주는 FrontController 패턴으로 설계
- Dispatcher"Servlet" => Servlet : 웹페이지를 동적으로 생성하는 프로그램
=> Spring은 DispatcherServlet을 사용하여 FrontController 패턴 방식으로 MVC 패턴을 설계해 API 요청을 효율적으로 처리한다.
Jackson 라이브러리
Jackson 라이브러리
Json 타입의 데이터 구조를 처리해주는 라이브러리
- 자바에서 Json 타입을 다루기위해 객체(Object)를 Json 타입의 String으로 변환하거나 Json타입의 String을 객체(Object)로 변환시켜 준다.
⚡ Spring의 Jackson 라이브러리
Spring 3.0 버전 이후로 SpringBoot의 "starter-web"에서 Jackson 라이브러리를 default로 제공해 Json 타입의 데이터를 처리하지 않아도 자동으로 처리해준다.
DTO
DTO(Data Transfer Object, 데이터 전송 객체)
DTO는 Data Transfer Object의 약자로, 데이터 전송 및 이동에 사용되는 객체를 의미한다.
- Client에서 보내오는 데이터와 서버 계층간의 이동하는 데이터를 DTO에 담아 전달
- 데이터를 전송하기 위해 사용하는 객체기 때문에 그 안에 비즈니스 로직 같은 복잡한 코드는 없고 순수하게 전달하고 싶은 데이터만 담겨있다.
⚡ Spring의 DTO
요청(Request)으로 들어오는 DTO : RequsetDto
응답(Response)으로 전달되는 DTO : ResponseDto
Database와 SQL
DB(Database)
데이터베이스(DB)는 데이터의 집합이고, 평소에 사용하는 데이터들의 모든 정보를 저장하고 관리한다.
DBMS
DBMS는 Database Management System의 약자로 DB를 관리하고 운영하는 소프트웨어를 의미한다.
RDBMS
RDBMS는 Relational DBMS의 약자로 관계형 데이터베이스라고 불린다.
- 테이블(table)이라는 최소단위로 구성되고, 또 테이블 안에는 열(column)과 행(row)으로 구성된다.
- 테이블 간 FK(Foreign Key: 외래키)를 통해 다른 데이터를 조합해서 볼 수 있다.
- 종류로는 유료인 Oracle과 무료인 MySQL, postgreSQL 등이 있다.
SQL
SQL은 Stuctured Query Language의 약자로 RDBMS에서 DB를 조작하고 관리하기 위해 사용되는 언어이다.
SQL의 종류
-
DDL : 테이블이나 관계의 구조를 생성하는데 사용
- CREATE - 새로운 DB 및 테이블 생성
- ALTER - DB와 테이블의 내용을 수정
- DROP - DB와 테이블 삭제
- TRUNCATE - DB와 테이블을 최초의 상태로 컬럼값만 남기고 삭제
-
DCL : 데이터의 사용 권한을 관리하는데 사용
- GRANT : 사용자 또는 ROLE에 대한 권한을 부여
- REVOKE : 사용자 또는 ROLE에 부여한 권한을 회수
-
DML : 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용 ⚡ 가장 많이 사용하는 SQL
- INSERT : 테이블에 새로운 행(row)를 추가
- SELECT : 테이블의 행(row)를 조회(선택)
- UPDATE : 테이블의 행(row)를 수정
- DELETE : 테이블의 행(row)를 삭제