티스토리 뷰

728x90

[ 밑줄/연결 ]
 
DI컨테이너란 의존성 주입(Dependency Injection), 줄여서 DI의 실현을 돕는 프레임워크입니다. 
 
의존에는 두 가지 유형이 있습니다.
ㅇ 클래스 의존(구현 의존)

ㅇ 인터페이스 의존 : A클래스에서 인터페이스로 추상화된 I를 이용한다. 

 

 

 
(MVC모델)
 
스프링이 제공하는 웹 애플리케이션을 간단하게 작성할 수 있는 기능
프로그램의 처리 역할을 나누어서 프로그램을 작성하는 방법
 
모델(Model) 
시스템에서 비즈니스 로직을 담당 (비즈니스 로직의 내용을 작성하는 역할)
ㅇ 시스템의 코어 부분 혹은 시스템의 목적을 처리하는 부분
ㅇ ex)회원 가입:  아이디의 중복 확인, 본인 인증, 비밀번호 규칙 확인 등
 
뷰(View)
ㅇ 사용자 입력과 결과 출력 등을 표시하는 역할. 외형
ㅇ 시스템에서 표현 부분을 담당하며 웹 애플리케이션에서는 주로 화면을 담당함
 
컨트롤러(Controller)
ㅇ 서비스 처리를 담당하는 모델과 화면 표시를 담당하는 뷰를 제어하는 역할을 함
ㅇ 사용자가 입력한 내용을 뷰에서 받고, 받은 데이터를 기준으로 모델에 내용을 전달함. 또 모델에서 받은 데이터를 뷰에 전달해서 화면에 표시하는 역할을 함
 

 
타임리프(Timeleaf)는 데이터와 미리 정의한 탬플릿을 바인딩 해서 뒤에 표시할 때 도움을 주는 '탬플릿 엔진'의 한 종류
 
탬플릿 엔진 : 뷰는 사용자에게 보여줄 내용을 처리 결과 데이터를 가지고 HTML을 생성해서 클라이언트에 응답을 돌려주는 역할을 합니다. 탬플릿 엔진은 프로그래밍 언어별로 많지만 간단하게 설명하면 '데이터를 미리 정의된 탬플릿에 바인딩해서 뷰의 표시를 도와주는 것' 입니다.
 
 
MVC모델은 설계 개념상 모델이 담당하는 부분 자체를 줄이는 것은 안 되기 때문에 모델 안에서 역할 분담을 명확하게 하고 애플리케이션 레이어 구성을 적용하고 비대해지는 모델을 분할하는 것이 레이어를 나누는 목적입니다. 각 레이어에는 구성요소(콤포넌트)가 포함됩니다.

(애플리케이션 레이어)
 
(controller)
요청을 처리에 매핑하고 결과를 뷰에 넘겨주는 제어를 함
주요 처리는 Controller 안에서 실행하지 않고 '도메인 레이어'의 Service를 호출함
 
(Form)
화면의 폼을 표현함
화면에서 입력된 값을 Controller에 넘겨줌. 또한 Controller에서 화면에 결과를 출력할 때 사용함
도메인 레이어가 애플리케이션 레이어에 의존하지 않도록 Form에서 도메인 객체를 변환하거나 도메인 객체어서 Form으로 변환하는 것을 애플리케이션 레이어에서 수행해야 함
 
(View)
화면 표시를 담당함
 
(도메인 레이어)
 
(도메인 객체, Domain Object)
서비스 처리를 실행할 때 필요한 자원임(Entiry 등)
 
(Service)
애플리케이션 서비스 처리를 담당함
 
(Repository)
인터페이스임. 데이터베이스의 데이터 조작 내용만 정의함
 
 
(인프라스트럭처 레이어)
 
(Repositorylmpl)
도메인 레이어에서 정의한 Repository의 구현 클래스임
O/R Mapper가 Repository의 구현 클래스를 생성하는 경우도 있음
 
(O/R Mapper)
Object와 Relation DB간의 데이터를 매핑함
 
 
 
[ 자평 ]  같은 깊이로 일관되게 쓴 IT 책, 특히 프로그래밍 책을 이렇게 쓰기 어려울 것 같다. 잘 썼다. 목적한 바 이상을 얻었다. 
 
2023년 내가 다니는 회사도 만나면 좋은 친구들이 다들 AI를 예기한다.
내 좁고, 짧은 경험으로 기업용 IT 서비스를 달랑 AI 모델을 몇 개 주워 들어 안다고 완성될 수 있는 것이 아니다.
 
문송인 내가 봐도 참으로 세상만만히 보고 어설프게 접근하는 사람들이 많다. 
남의 돈 받기를, 그런 어슬픈 'AI썰'로는 죽어다가  깨어나도 이뤄내지 못하리라. 

대충 3가지 정도는 알고 있어야 한다고 생각한다.
 
첫째. 실제 기업용 SW기반의 IT 서비를 어떻게 개발하고, 어떻게 운영관리하는지 기본적인 틀을 알아야 한다.
둘째. 그 안에서 모델을 사용하는 부분이 어디고, 왜, 어떻게 저런 체계에 녹아 들어 가는지를 알아야 한다.
셋째. 그 모델안에 언어모델인듯, 비전 모델이든, AI모델이 그 역할을 하고 있을 것이다. 
 
첫 번째에 대한 요즘 트렌드를 훑어 보기 위해 이 책을 읽었다. 내가 개발자와 같이 일한 벤처시절에는 스프링이라는 프레임워크가 없었다. 이책은 그래서 그게 어떤 것인지 맛을 보기 위해 훑어 읽었다. 두 번 정도 읽어 보니, 좀 더 이해가 되는 것 같다. 
 
꽤 잘 쓴 책 두 권을 몇 번 훑어 읽었더니 체계가 좀 이해가 된다. 다만 내가 개발자가 아니라 직접 코딩을 해 보면 더 알 수 있겠으나, 나이도/내 지금 밥벌이도 그럴 것 까지는 없는 듯 하여 그만 두었다. 
 
스프링 프레임워크를 넘어, 요즘 기업용 시스템 전체의 E2E 프로세스를 알기 위해 훌어 있는 책도 있다.

댓글