1-2 SpringBoot 및 서버 이해

 

소프트웨어 디자인 패턴 이란? ) 

소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 

다른 상황에 맞게 사용될 수 있는 문제들을 해결하는 데에 쓰이는 서술이나 템플릿이며 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화 된 좋은 관행이다.

 

 

Software Architecture Patterns

Chapter 1. Layered Architecture The most common architecture pattern is the layered architecture pattern, otherwise known as the n-tier architecture pattern. This pattern is the de facto standard for most … - Selection from Software Architecture Pattern

www.oreilly.com

 


레이어드 아키텍처 패턴 ) 

서버를 총 세가지 부분으로 나누는 패턴으로 Presentation 계층, Domain (Business or Service) 계층, Data Access (Persistence) 계층으로 나눈다. 

 

  • Presentation 계층 : 사용자와 상호 작용 처리 계층

CLI ( Command-Line Interface / 명령 줄 인터페이스 ) , HTTP요청 및 HTML 렌더링에 대해 알고 있는 웹계층으로 MVC (Model / View / Controller) 도 이 계층에 속함.

스프링에서는 @Controller 어노테이션을 사용해서 표현

 

+ Annotation 용도 : 컴파일러에게 문법 에러 체크하도록 정보 제공, 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보제공, 런타임시 특정 기능을 실행하도록 정보를 제공하는 기능을 하며 자바에서는 @ (at sign)을 앞에 붙여서 사용

 

  • Domain (Business or Service) 계층 : 서비스/시스템의 핵심로직으로 유효성 검사, 계산을 포함하는 Business 논리계층

애플리케이션이 수행해야하는 도메인과 관련된 작업을 담당. 입력/저장된 데이터를 기반으로 계산, Presentation 계층이 받은 데이터 유효성 검사, 어떤 Data Access를 선택할 지 결정

스프링에서는 @Service 어노테이션을 사용해서 표현

 

  • Data Access (Persistence) 계층 : DAO 계층

Database / Message Queue / 외부 API와의 통신 등 처리

데이터베이스 또는 원격 서비스에서 영구 데이터를 관리하는 방법을 분류하는 데이터 접근 계층이다. 

스프링에서는 @Repository 어노테이션을 사용해서 표현

 

+ DAO (Data Access Object) 는 데이터 계층에서 데이터베이스로 접근하는 로직을 담당한다

 

아주 쉽게 비유해주신 그림

 

 

 


공부하다 보면 기본 자바와 스프링에서 문법이 다른부분이 있을것이다

이부분에 대해 메모하고 의아해 하는 습관을 가지면 IOC/DI 등 설계 철학 등을 배우는 데 큰 도움이 된다. 

 

+ IOC / DI :스프링의 핵심 프로그래밍 모델로, 오브젝트의 생명주기와 의존 관계에 대한 프로그래밍 모델이다. 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있다. 

스프링이 제공하는 모든 기술과 API, 컨테이너 모두 IoC/DI 방식으로 작성되어 있다. 

 


스프링 / 스프링부트 를 사용하는 이유 )

단순 반복작업 부분이 많았던 Controller와 Repository쪽을 개발 관점에서 쉽고 편하게 처리해줘 가장 중요한 비즈니스 로직인 Service 레이어에 집중 할 수 있도록 해줬기 때문에 스프링을 사용한다. 

+ Recent posts