제로베이스 백엔드 스쿨

[제로베이스 백엔드 스쿨 주 3일반]16 주차 후기(2024.7.15~2024.7.21)

HA.VA 2024. 7. 20. 08:56

"스프링 프레임워크 첫 걸음 북스터디 2주차!"

▣ 한 주 간 느낀 점

 

날도 덥고 장마가 계속되면서 지쳐가는 한 주 였다.

그래도 복습을 하는 중이라, 학습에 큰 부담은 없었다.

 

개발자님들의 온라인 수업을 듣고 난 후 이 책을 공부하면서 느낀 것은

커리큘럼 순서가 잘 맞는다는 생각이 들었다.

 

실습이 없이 이 책을 읽었다면 이해도가 더 떨어지지 않았을까 싶다.

복습 1번으로 완벽하게 이해되지는 않았지만, 수업 때 궁금했던 점들을 해소할 수 있어서

나름(?) 즐겁게 북스터디를 하고 있다.


 

▣ 스프링 프레임워크 첫 걸음 요약(4장~5장)

 

4. 데이터베이스

 

데이터 베이스 개요

 

데이터베이스(Database)

특정한 규칙을 이용하여 데이터를 보관/관리하는 장소. 일명 DB

 

관계형 데이터베이스(Relational Database)

- 2개 이상의 테이블 속 값들이 관계를 맺고 있는 데이터베이스

- 가장 일반적으로 사용

- RDB라고도 부름

 

테이블(Table)

데이터베이스 안에서 실제로 데이터가 저장되는 공간. 보통 '표'의 형태를 가지고 있음

 

레코드/칼럼(record/column)

- 레코드: 테이블의 가로 행(row)

- 칼럼: 테이블의 세로 열(column)

 

제약조건

- 데이터의 '무결성'을 유지하기 위해 입력되는 데이터에 적용되는 제한조

- not null: null 입력을 허용하지 않음

- unique: 중복값 입력을 허용하지 않음

- check: 지정한 조건을 만족하지 않는 값의 입력을 허용하지 않음

- primary key: 레코드를 식별하는 기본키를 설정.(*not null + unique 함께 적용)

- foreign key: 관련된 테이블을 연결

- default: 칼럼의 초깃값 설정

 

CRUD

SQL을 이용하여 데이터를 취급하는 4가지 기능(생성, 읽기, 갱신, 삭제)

 

SQL(Structured Query Language)

데이터베이스를 조작하는 언어

 

생성(Create)

- 데이터를 등록

- SQL문: INSERT INTO 테이블명(칼럼명1, 칼럼명2, ...) VALUES(값1, 값2, ...)

 

읽기(Read)

- 데이터를 참조

- SQL문: SELECT 칼럼명 FROM 테이블명

 

갱신(Update)

- 데이터를 갱신

- SQL문: UPDATE 테이블명 SET 칼럼명 = 값 WHERE 조건

 

삭제(Delete)

- 데이터를 삭제

- SQL문: DELETE FROM 테이블명 WHERE 조건

 

엔티티(Entity) / 리포지토리(Repository)

 

엔티티

- 데이터를 담아두는 객체

- 데이트베이스 테이블의 한 행(Record)를 의미함

 

리포지토리

- 데이터베이스 조작 클래스

- 인터페이스로 정의를 해야 함

 

스프링 데이터 JDBC

 

O/R 매퍼(Object-relational Mapper)

- 객체(Object)와 관계형 데이터베이스(Relational Database)의 데이터를 매핑하는 것

- 데이터베이스 엑세스 처리를 담당하는 자바 프레임워크

 

5. MVC 모델

 

MVC모델

처리 역할을 나누고 이에 따라 프로그램을 작성하는 방법론. 웹 시스템 개발에서 사용되는 방법 중 하나

 

모델(Model)

- 비즈니스 로직을 작성하는 곳

- 비즈니스 로직:  시스템의 목적을 처리하는 부분

 

뷰(View)

시스템의 표현 부분(화면)을 작성하는 곳

 

컨트롤러(Controller)

모델과 뷰를 제어하는 곳

 

MVC모델의 이점

- 역할에 따라 작성하여 효율적인 개발이 가능

- 엔지니어의 분업화가 가능

- 설계 변경에 유연한 대응이 가능

 

스프링 MVC

웹 에플리케이션 제작을 용이하게 할 수 있도록 만들어진 프레임워크

 

프런트 컨트롤러 패턴(Front Controller Pattern)

디자인 패턴 중 하나. 모든 요청을 프런트 컨트롤러가 받아, 이후 담당하는 컨트롤러에게 할당하는 설계 패턴

 

구성요소

- DispatcherServlet: 모든 요청을 수신하는 프런트 컨트롤러

- Model: 컨트롤러에서 뷰에 넘겨주는 표시용 데이터를 저장하는 객체(*HttpServeltRequest와 동일한 역할)

- 컨트롤러: 요청에 맞추어 처리할 내용이 있는 곳

- 뷰: 화면 표시 처리를 담당하는 곳