Model
VO,DAO,service,seviceimpl
https://ths3723123.tistory.com/9
MVC패턴이란?
MVC란 Model-View-Controller의 약자로 애플리케이션을 세 가지 역할로 구분한 개발 방법론. 아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕
ths3723123.tistory.com
VO(Value Ojbect)란 무엇일까? (techcourse.co.kr)
VO(Value Ojbect)란 무엇일까?
프로그래밍을 하다 보면 VO라는 이야기를 종종 듣게 된다. VO와 함께 언급되는 개념으로는 Entity, DTO등이 있다. 그리고 더 나아가서는 도메인 주도 설계까지도 함께 언급된다. 이 글에서는 우선 다
tecoble.techcourse.co.kr
DAO는 DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다.
DataBase 접근을 하기 위한 로직과 비지니스 로직을 분리하기 위해 사용한다.
DAO의 경우는 DB와 연결할 Connection 까지 설정되어 있는 경우가 많다.
현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공되고 있기 때문에 DAO를 별도로 만드는 경우는 드물다.
VO(Value Object)
DTO와 달리 VO는 Read-Only속성을 값 오브젝트이다.
자바에서 단순히 값 타입을 표현하기 위해 불변 클래스(Read-Only)를 만들어 사용한다.
예를 들면 빨강은 Color.RED, 초록은 Color.GREEN 이렇게 단순히 값만 표현하기 위해 getter기능만 존재한다.
VO의 핵심 역할은 equals()와 hashcode() 를 오버라이딩 하는 것이다.
VO 내부에 선언된 속성(필드)의 모든 값들이 VO 객체마다 값이 같아야, 똑같은 객체라고 판별한다.
VO는 Getter와 Setter를 가질 수 있으며, VO는 테이블 내에 있는 속성 외에 추가적인 속성을 가질 수 있으며, 여러 테이블(A, B, C)에 대한 공통 속성을 모아서 만든 BaseVO 클래스를 상속받아서 사용할 수 도있다.
대부분의 프로젝트는 Service를 만들 때 MemberService와 같이 서비스를 인터페이스로 설계하고, MemberServiceImpl 라는 구현체인 클래스를 생성해서 사용하는 방식으로 설계
* OCP (Open Closed Principle)
개방, 폐쇄 원칙이라고 하며 '소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다.'는 프로그래밍 원칙
https://junior-datalist.tistory.com/m/243
[Spring] Service, ServiceImpl 의 관계 (feat. OCP)
문제 인지 회사에서 개발중인 spring boot 프로젝트 구조를 보면서 Service layer 의 impl 폴더와 interface 가 눈에 계속 밟혔습니다. 본디 자바에서 인터페이스를 사용하는 이유는 객체지향 특징 중 하나
junior-datalist.tistory.com
model.addAttribute
https://galid1.tistory.com/504
Spring - Model을 이용하여 View에 데이터 넘겨주기 - 6
Spring MVC Model을 이용한 View생성과 응답 앞선 포스팅에서 알아보았듯이 @Controller클래스 안의 @RequestMapping어노테이션이 부여된 method들은 사용자에게 응답할 View를 생성하는 역할을 하는 즉, Controlle
galid1.tistory.com
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
Controller
RequestMapping(요청 매핑) 이란?
요청이 왔을 때 어떤 컨트롤러가 호출이 되어야 하는지 알려주는 지표 같은 것이다.
@RequestMapping 우리는 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의를 한다.
이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것이 @RequestMapping이다.
@RequestMapping에서 가장 많이사용하는 부분은 value와 method이다. (더 많지만 여기서는 여기까지만)
value는 요청받을 url을 설정하게 된다.
method는 어떤 요청으로 받을지 정의하게 된다.(GET, POST, PUT, DELETE 등)
공통적인 url은 class에 @RequestMapping으로 설정을 해주었다.
그리고 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping으로 간단하게 생략이 가능해졌다.
뒤에 추가적으로 url을 붙이고 싶다면 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 에 추가적인 url을 작성하면 된다.
컨트롤러에서 return시 forward와 redirect차이점
- URL의 변화여부가 필요하다면 Redirect를 사용하는 것이 좋다.
- 객체를 재사용하거나 공유해야한다면 Forward를 사용하는 것이 좋다.
'java' 카테고리의 다른 글
쉽게배우는 자바 9-1~10 (0) | 2023.01.21 |
---|---|
쉽게 배우는 자바 8-2~8-3 변수, 데이터 타입 변환 (0) | 2023.01.21 |
왜 자바인가? (0) | 2023.01.18 |
쉽게배우는 Java1 - 프로그래밍 구성/데이터 타입 (0) | 2023.01.01 |
쉽게배우는 자바1 -java 프로그래밍 소개 (0) | 2023.01.01 |