데이터베이스는 테이블이라는 구조로 데이터를 저장함
- 테이블별로 같은 성격의 데이터 저장
- 테이블에 프로젝트에 필요한 모든 데이터 저장
- 데이터의 중복, 수정 및 저장의 용이성을 위해 데이터를 분리해서 저장
- 관련이 있는 데이터가 저장된 테이블 간에는 관계를 맺어 관리
테이블 관계
- 각각의 테이블마다 필드명들로 구성
- 각각의 테이블은 서로 연관되어 데이터를 상호 가져옴
- ex) 테이블명이 T_CARD인 테이블의 CARD_IMAGE_VARCHAR(50)이라는 필드명을 가진 필드는 테이블명이 T_CARD_TYPE인 테이블의 CARD_TYPE_NAME VARCHAR(50)이라는 필드와 연관되어 있음!!
- 테이블명: t_board
- 필드(칼럼): 각각의 데이터를 구분하게 하는 하나의 명칭 (ex. MEMBER_SEQ, BOARD_TITLE ...)
- 레코드: 하나의 데이터 단위
- 테이블에는 같은 정보의 데이터가 저장된다
스프링 부트 웹 프로그램
- MVC 패턴의 구조를 가장 많이 사용
- Model -> 데이터베이스 관련
- View -> 우리가 보는 사용자 화면
- Controller -> 데이터 조작 부분
* View에서 데이터 요청 -> Controller가 데이터 처리
- 전체구조: Controller, Service, Mapper
1. Controller
- Admin: 관리자 영역 (게시물 관리, 회원가입한 회원 관리, 에디터 관리)
- User: 사용자 영역 (일반 사용자들이 접속할 수 있는 화면, 게시물 등록)
* Controller는 관습적인 이름으로 쓰지 않아도 되지만,
여러 사람이 공동 개발하거나 관리할 때는 Controller를 명칭 끝에 붙여주게 되면 훨씬 관리 용이
2. Service, ServiceImple
- 관리, 개발, 프로그램하기에 용이하기 때문에 서비스 부분의 명칭 -> Service, ServiceImple ... 명명규칙 이용
3. Mapper
- 데이터베이스와 연결해서 데이터를 가져오고 조작하는 부분
- 이 부분은 Mapper로 관리
- 명칭은 Mapper라는 이름으로
4. View
- 사용자 화면
- 사용자 -> 일반 사용자 or 관리자
- 즉, 웹 상에서 보여지는 사용화면은 모두 다 사용자 화면 -> View에서 구현
스프링 웹 MVC 구조 정리
처리하는 영역을 분리하여 프로그램의 관리가 용이해지고 디자이너와의 분업 가능
영역 | 역할 |
View | - 사용자가 보는 화면 or 결과를 보여주는 영역 - src/main/resources 밑에 static 디렉토리에 구현 |
Controller | - 사용자가 웹브라우저를 통해 들어온 요청을 처리하는 영역 - 요청에 대한 처리를 위해 logic 호출 -> 그에 대한 결과값을 사용자에게 View 통해 전달 |
Service | - Controller에서 호출되어지며 사용자의 요청을 처리하기 위한 logic 수행 - Controller에서 서비스를 호출 -> 데이터베이스(DAO, DB)와 서로 연결 -> 실제로 처리하게 될 내용들을 처리 -> 결과값을 Controller에 보내는 프로세스 - 서비스 영역 -> 서비스 인터페이스 + 인터페이스의 구현체 (ServiceImple) |
DAO | - 데이터베이스에 접속하며 서비스에서 실행하는 logic을 처리하기 위해 쿼리를 이용하여 호출 (Mapper) - xml파일의 데이터베이스의 데이터를 처리하기 위한 쿼리 작성 - 쿼리 받아와서 -> Service에 넘겨주면 -> Controller, View를 통해 결과 값을 보여주는 프로세스 |
DB | 데이터베이스, 애플리케이션에서 발생한 모든 정보가 저장되어 있음 Mapper를 통해서 데이터를 쓸 때 데이터가 저장되어 있음 (이 데이터는 MyBatis라는 프레임워크를 통해 가져오게 됨) |
'웹 개발 > 웹 개발 개념' 카테고리의 다른 글
서블릿 생명주기 메서드 (0) | 2023.09.07 |
---|---|
서블릿 API 계층 구조와 기능 (0) | 2023.09.07 |
서블릿의 정의와 특징 (0) | 2023.09.07 |
스프링부트 (0) | 2023.07.20 |