1 minute read

프로그래밍 아키텍쳐 특강

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

Updated:

Leave a comment