프로그래밍/Spring / / 2022. 10. 19. 09:29

[Spring] 스프링 개발환경 DB연동 버전제어시스템 MVC 관심사 분리

Maven
Maven

 

1. 자바 개발환경 구성주의 사항

 

1) 한글로 작성된 폴더는 피한다.

2) 설치판(. msi,. exe)보다는. zip 압축파일을 이용한다.

3) 관리가 용이하도록 특정 폴더를 지정한다.

4) 이클립스 프로젝트 콘텐츠 인코딩 유형은 UTF-8으로 설정한다.



2. 지원 도구

 

1) 빌드 도구(Build Tool)

 

- 개발자가 작성한 코드를 컴파일하고, 배포를 위한 추가적인 작업 수행을 하고, 패키징을 수행한다.

- 필요한 라이브러리 관리 (의존성 관리)를 한다.

- Gradle

- Maven

- 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈소스 빌드 툴이다.
- 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 dependency 지원까지 관리할 수 있다.
- 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된  표준디렉토리 구조를 처음부터 일관된 형태로 구성하여 관리 할 수 있다.

 

- 메이븐 프로젝트 구성 요소들

- pom.xml : 프로젝트 정보가 표시되며 스프링에서 사용되는 여러가지 라이브러리를 설정해서 다운로드 받을 수 있다.

- src\main\java : 자바 소스 파일 위치
- src\main\resources : 프로퍼티 파일이나 xml 파일 등 리소스 파일이 위치
- src\main\webapp : WEB-INF 등 웹 애플리케이션 리소스가 위치
- src\test\java : jUnit 등 테스트 파일이 위치
- src\test\resources : 테스트 시 필요한 resource 파일이 위치

 

2) 버전 제어시스템(DVCS)

 

- 코드의 변경이력(변경된 내용 기록) 관리를 한다.

- 동료와 원거리에서 협업하기 위해 필요한 공동작업공간을 제공한다.

- git

- svn



3. Spring MVC

 

1) 스프링 프레임워크를 구성하는 모듈, 정식 명칭은 Spring Web MVC이다.

2) 서블릿 API를 기반으로 작성된 웹 프레임워크(Web Framework)이다.

3) 프런트 컨트롤러 패턴과 MVC 아키텍처 패턴을 사용한다.

4) 유연하고 확장성이 뛰어난 구조를 제공한다.

5) 자바 언어의 애노테이션(Annotation)과 리플렉션(Reflection) API를 적극 사용한다.

6) 애노테이션 기반 프로그래밍 (Annotation-based programming) 모델을 제공한다.

7) 경량 함수형 프로그래밍 모델 (functional programming model)을 지원한다.



4. 관심사의 분리 (Separation of Concerns)

 

1) 클라이언트에서 요청이 들어온다.

2) DispatcherServlet에서 입력을 처리, new Model()을 생성하여 Controller로 보낸다.

3) Controller에서 매개변수로 Map의 형태인 Model을 받는다.

4) 유효성 검사를 통과하면 처리 및 Model에 작업 결과를 저장한다.

5) 작업 결과를 보여줄 View의 이름을 String으로 DispatcherServlet에게 반환한다.

6) DispatcherServlet에서 반환된 View의 이름을 찾아서 Model을 전달한다.

7) 해당 View에서 클라이언트로 응답을 보낸다.

 

=> 컨트롤러의 메서드의 리턴 타입

- String : View의 이름을 반환

- void : Mapping 된 url의 끝 단어가 View 이름

- ModelAndView : Model과 View이름을 반환 => ModelAndView 객체를 Controller 내부에서 생성 -> ModelAndView에 View의 이름과 작업 결과를 저장해서 반환

 

3. DB 연동

 

1) 데이터를 주고받기 위한 DTO 클래스와 테이블에 접근하기 위한 DAO 클래스.

 

2) DAO (Data Access Object) 패턴

- 데이터 액세스 계층은 DAO 패턴을 적용하여 비즈니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙이다.

- 비즈니스 로직을 가진 엔터프라이즈 애플리케이션이라면 데이터 액세스 계층을 DAO 패턴으로 분리해야 한다.

- DAO 패턴은 서비스 계층에 영향을 주지 않고 데이터 액세스 기술을 변경할 수 있는 장점을 가진다.

- JDBC를 통해 구현한다.

- 하나의 테이블에서 수행할 수 있는 CRUD를 전담한다.

 

3) DTO (Data Transfer Object)

- 계층 사이에서 데이터를 교환하기 위해 생성하는 객체.

- 별다른 조직 없이 속성(멤버 변수)과 그 속성에 접근하기 위한 세터/게터 메서드만 갖춘 게 특징이다.



4. 아키텍처 개요

 

1) 대부분의 중, 대규모 웹 애플리케이션은 효율적인 개발 및 유지 보수를 위하여 계층화(Layering)하여 개발하는 것이 일반적이다.

2) 프레젠테이션 계층(Presentation Layer), 서비스 계층(Service Layer), 데이터 액세스 계층(Data Access Layer). 3계층과 모든 계층에서 사용되는 도메인 모델로 구성된다.

3) 각각의 계층은 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 많다.

 

 

[Spring]웹 애플리케이션 HTTP 응답 상태코드 웹 개발 트렌드 백엔드 프론트엔드

 

[Spring]웹 애플리케이션 HTTP 응답 상태코드 웹 개발 트렌드 백엔드 프론트엔드

1. 엔터프라이즈 애플리케이션(Enterprise Application) 개발의 복잡성 1) 비즈니스 로직의 복잡함 2) 수많은 사용자와 데이터를 대응하기 위한 기술적인 제약 조건과 요구사항 3) 복잡함을 다루기 위한

ozizo.tistory.com

[HTML & CCS] HTML태그 종류와 특징, H태그 검색엔진 최적화 메타 태그 시멘틱 태그

 

[HTML & CCS] HTML태그 종류와 특징, H태그 검색엔진 최적화 메타 태그 시멘틱 태그

1. 웹이란? 1) 네트워크 - 컴퓨터와 컴퓨터를 연결해주는 망을 말한다. - 이런 망들이 모여서 더 큰 네트워크인 인터넷이 된다. 2) 인터넷 시초 - ARPANET 3) 웹 - World Wide Web (WWW, W3) - 인터넷에 연결된

ozizo.tistory.com

[SQL] 데이터베이스 데이터베이스관리시스템 DBMS 장단점

 

[SQL] 데이터베이스 데이터베이스관리시스템 DBMS 장단점

1. 파일 시스템 사용 1) 데이터 중복성 문제 : 공간 낭비 2) 파일이 여기 저기에 있으면 업데이트 및 데이터 일관성(data consistency) 유지에 어려움이 발생한다. 3) 데이터 무결성 (Data integrity constraints)

ozizo.tistory.com

 

LIST
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유