본문 바로가기

웹 개발/웹 개발 개념

데이터베이스, 스프링 웹 MVC구조

데이터베이스는 테이블이라는 구조로 데이터를 저장함
  • 테이블별로 같은 성격의 데이터 저장
  • 테이블에 프로젝트에 필요한 모든 데이터 저장
  • 데이터의 중복, 수정 및 저장의 용이성을 위해 데이터를 분리해서 저장
  • 관련이 있는 데이터가 저장된 테이블 간에는 관계를 맺어 관리

 

테이블 관계

  • 각각의 테이블마다 필드명들로 구성
  • 각각의 테이블은 서로 연관되어 데이터를 상호 가져옴
  • 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