프로그래밍 기본 아키텍쳐 특강
프로그래밍 아키텍쳐 특강
2022-05-19 특강
기본 아키텍쳐 구성
5층 UI |
---|
4층 Controller |
3층 Service |
2층 DAO (1~2층까지가 기계적으로 구현이 가능한 내용) |
1층 Domain |
0순위 DB (가장 중요함) |
각 층(계층,레이어드,아키텍쳐)의 이해관계를 파악하는 것이 중요! (스파게티 코드가 되지 않기 위해)
메소드를 만들면서 재활용하면서 리턴값을 받고 사용 받고 사용..유기적으로 이해관계를 알아야 가능.
중복코드는 예외없이 사소하더라도 없어야한다.
ex)dao는 domain이 있어도 되지만 service는 없어도 된다.
ex) ““자바 스프링 아키텍쳐” 검색 -> 큰 그림에서 내 스킬의 위치를 파악할 수 있다.
물론 다른 언어들도 이름만 다를 뿐, 구조는 똑같다.
Domain
도메인은 그냥 DB에 관해 각 필드에 매칭하는 변수(명)를 정해주고, 그 데이터의
getter setter를 만들어준 것 뿐.
클래스(테이블)
id
addr
lat
lng
d
객체
id addr lat lng d <–스키마(테이블)
1 서울 강남구… 1.21 5.43 14
2 경기 분당구… 7.23 3.67 7
테이블과 아이템
(자바로 치면)class와 method
이런 [id addr lat lng d] 를 가진 클래스를 도메인이라고 한다. (db의 내용을 투영하는 것, getter & setter)
도메인 클래스로 (묶음 단위로) DB를 관리하는 것을 지향하자!
Dao
domain에 access 하기위한 object. (CRUD)
C
R /read의 구성
- selectOne(한개를 가져오는 것) wifiItem : 와이파이 목록에서 하나 찍어서 보는 것
- selectAll(여러개를 가져오는 것) List
: 와이파이 전체 목록을 가져오기
+
- 검색
- 페이지처리
위 내용들이 Dao에서 처리하는 내용. 이 콘텐츠 그대로 구현하면 됨.
! DAO 클래스를 만들고 안에 CRUD메소드, R메소드 안에 메소드(selectOne, selectAll, 검색, 페이지처리) 들을 구현해놓는다.
ex)selectAll을 할 때 +검색 조건을 넣어서 처리한다.
U
D
실무에서는 dao단 까지 기계적으로 구현이 되어있다. 우리는 그것을 활용하는 서비스, 그리고 그 이상 단으로 구현을 하는 것 뿐.
Service
(ex)wifi를 통해(피타고라스 이용) 거리구하는 서비스
이 단계부터는 기계적으로 구현 불가. 자기의 생각이 담긴 서비스를 구현한다.
만약 이 층에서 쿼리문(DAO에 있어야 할)같은 다른 층 내용들의 코드들이 있으면 안된다.
모든 데이터에 대한 정제(고민)은 service층에서 끝내고, ui로 뿌리는 것.
Controller
ui 를 통해서 받은 인풋값을 밑단들의 데이터와 매핑시켜주는 역할
여기까지가 backend의 범위
UI
frontend
Leave a comment