Java SpringBoot 기초 지식(MVC패턴, DAO/DTO/VO)
BackEnd

Java SpringBoot 기초 지식(MVC패턴, DAO/DTO/VO)

728x90

스프링이란?

Django, Node.js처럼 JAVA기반의 웹 프레임 워크이다.

 

스프링의 구조

스프링의 특징

  • 자바 객체와 라이브러리들을 관리해주며, 톰캣과 같은 WAS가 내장되어 있어 자바 웹 어플리케이션을 구동할 수 있다.
  • 제어의 역전(IOC)라는 특징이 있는데 IOC는 “클래스 내부 객체생성” -> “의존성 객체 메소드 호출”이 아닌 스프링에게 객제제어를 위임하여 스프링이 만든 객체를 주입하는 구조이다. 스프링에서는 모든 의존성 객체를 스프링이 실행될 때 만들어주고 필요한 곳에 주입해준다.
  • 의존성주입(DI)의 특징은 어떤 객체(B)를 사용하는 주체(A)가 객체(B)를 직접 생성하는게 아니라 객체를 외부(spring)에서 생성해서 사용하려는 주체 객체(A)에 주입시켜주는 방식이다.

 

SpringBoot

스프링을 더 쉽게 이용하기 위한 도구이다. 스프링을 이용할 때 이것저것 세팅을 해야하는 부분이 많은데 처음 Spring을 접하는 사람들도 사용하기 쉽게 하도록 해주는 역할을 한다.

 

Spring을 통해 프로그래밍을 할 때 사용하는 많은 부분을 자동화하였고, 일반적인 설정이 되어있어서 많은 개발자들이 Spring Boot를 통해 개발을 진행하고 있다.

 

MVC패턴

MVCM(Model), V(View), C(Controller)가 합쳐진 말이다.

소프트공학에서 사용되는 디자인 패턴이다. MVC에서 Model은 애플리케이션의 데이터를 나타내며, Veiw는 텍스트, 채크박스항목 등과 같은 사용자 인터페이스 요소, Controller는 데이터와 비즈니스 로직사이의 상호동작을 관리한다. 객체지향 언어에서 대표적으로 사용되는 패턴이다.

장점

다른 패턴에 비래 구조가 간단하다.

규모가 작은 프로젝트 진행 시 효율적이다.

대중적으로 많이 알려진 구조이기 때문에 협업하기 편리하고 정보가 많다.

 

단점

model, view, controller가 연결되어있어서 서로 완벽한 분리가 어렵다.

 

View

뷰는 사용자의 입력값에 따라 화면을 출력하는 역할을 한다.

사용자의 터치나 드래그 등 인터랙션을 컨트롤러에 전달하고 컨트롤러로부터 데이터를 전달받아 화면을 업데이트 한다.

 

Model

모델은 뷰를 구성하는 데이터를 가지고 있는 역할을 한다.

이미지가 어떤 이미지인지, 크기 , 텍스트 자체, 폰트, 굵기 등 화면을 구성하고 있는 모든 요소를 포함하고 있다.

 

Controller

컨트롤러는 웹에서 뷰와 모델의 다리 역할과, 뷰에 기능을 넣어주는 역할을 하고 있다.

컨트롤러는 뷰(사용자)의 인터랙션을 받아 모델에 전달하고 바뀐 모델 데이터를 뷰에 다시 전달하여 업데이트 하는 중간 역할이다.

 

DAO, DTO, VO

  • DAO(Data Access Object) : 데이터베이스의 data에 접근하기 위한 객체이다. DataBase에 접근하기 위한 로직&비지니스 로직을 분리하기 위해 사용한다.
  • DTO(Data Transfer Object) : 계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter만 가진 클래스)이다.
  • VO(Value Object) : 값 오브젝트로써 값을 위해 쓰이고 read-Only(읽기만 가능)을 가진다.

 

reference

https://fomaios.tistory.com/entry/Architecture-MVC-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80

http://melonicedlatte.com/2021/07/24/231500.htm

728x90