코드프레소 Java 웹 개발 체험단 활동 중
코드프레소 이러닝 강의 수강 - Spring Boot 웹 개발 입문
코드프레소 URL: https://www.codepresso.kr/
SW 아키텍처
- 건축을 할 때 설계도를 그려서 건물이 어떻게 지어질지 구상한다
- SW도 마찬가지로, 실제 코드 개발 전에 최종 SW가 되어야 할 모습을 설계한다
- SW 아키텍처란, SW의 구조를 정의한 것으로 SW를 구성하는 주요 요소들과 요소들의 관계를 정의한 것이다
- SW 아키텍처 = SW 설계도
SW 아키텍처/디자인 패턴
- 패턴 : 되풀이되는 사건이나 물체의 형태로, 예측 가능한 방식으로 되풀이 된다
- 우리가 만드는 SW도 이전의 수많은 사람들도 만들고 고민했던 유형일 가능성이 높다
- 따라서 아키텍처/디자인 패턴이란, 특정 상황의 문제를 해결하기 위해 일반화된 솔루션이다
- 카카오톡과 같은 메신저 서비스 개발을 위한 패턴
- 웹 서비스 개발을 위한 패턴
- 데이터 분석 시스템 개발을 위한 패턴
계층형 아키텍처 패턴
- 다양한 분야에 사용되지만, 주로 웹 서비스 개발에 주로 사용되는 패턴이다
- 웹 서비스 개발에 적용되는 패턴은 SW를 서로 다른 역할을 하는 3-4개의 계층으로 구분한다
- Presentation Layer
- Application Layer
- Business Layer
- Data Access Layer
- 계층 간에 호출을 하고 데이터를 주고 받으며 협력하며 전체 웹 서비스를 구성한다
Spring Controller
- 계층형 아키텍처의 Presentation Layer에 해당한다
- Client(웹 브라우저, 모바일 앱)의 요청을 받고
- Application Layer에 요청에 대한 처리를 위임하며
- Client에 최종 응답을 하는 역할을 한다
- view : Client가 요청에 대한 응답의 결과로 보게 되는 웹 페이지
- data : Client가 요청에 대한 응답으로 받는 데이터
Controller 코드
- Spring Contoller를 구현하기 위해서는 3개의 기본 Annotation이 사용된다
- @Controller와 @RestController
- Controller 역할을 하는 클래스를 지정한다
- 클래스 상단에 명시한다
- @RequestMapping
- 특정 Request를 처리하는 메소드를 지정한다
- 클래스 또는 메소드 상단에 명시한다
Annotation
- Java 소스코드에 추가적인 정보를 제공하는 방법
- @ 으로 시작하며 클래스, 메소드, 멤버변수, 파라미터 등에 부착 가능하다
- 3가지 유형의 Annotation
- 자바 컴파일러에게 정보를 제공한다 -> 에러 등을 찾아내기 위해
- SW 툴에 의해 사용되어 코드 생성이나 추가 작업을 진행한다
- run-time 시 특정 동작을 추가적으로 실행한다
Controller 코드
- Framework 활용은 규칙을 지키는 것이다
- 약속된 Annotation들을 Spring Framework가 스캔한다
- Annotation이 부착된 코드들은 Spring Framework에 의해 관리되며, Spring Framework에 의해서 특정한 목적으로 사용된다
@Controller vs @RestController
- 공통점 : 대부분의 동작은 유사하다
- 요청을 받아서 처리하고 응답을 한다
- 차이점 : 응답하는 형태가 다르다
- Controller : view를 응답한다 (html 파일 등)
- RestController : data를 응답한다 (문자열, Json, xml 등)
@RestController의 활용
- 문자열을 return하면, 문자열을 화면에 출력하여 보여준다
- 즉, @RestController는 메소드가 반환하는 데이터 자체를 응답한다
@Controller
hello.html의 구조 및 위치
@Controller의 응답
- 일반 @Controller를 사용했을땐, return하는 문자열은 html(혹은 view) 파일의 이름을 의미하게 된다
- 무조건 html만 해당하는 것은 아니지만, 어쨌든 문자열이 의미하는 view 파일로 응답한다
정리
- Controller는 계층형 아키텍처에서 Presentation Layer의 요청과 응답 처리의 역할을 담당한다
- @Controller, @RestController, @RequestMapping이 기본 Annotation으로 사용된다
- Annotation은 SW 코드에 추가적인 정보를 제공하는 방식이며, Spring Framework는 약속된 Annotation을 인식하여 특정 작업을 수행한다
- @Controller은 HTML 파일과 같은 view를 @RestController는 문자열, JSON 등의 데이터를 응답한다
'코드프레소 체험단' 카테고리의 다른 글
[클라우드 컴퓨팅 첫 걸음] 클라우드 컴퓨팅 핵심 개념 (0) | 2022.03.08 |
---|---|
처음 시작하는 SQL 프로그래밍 (0) | 2022.02.03 |
SW 유지보수성 향상을 위한 Clean Code (0) | 2022.01.26 |
[Java 프로그래밍 초급] 객체지향 기본 개념 (0) | 2022.01.21 |
[실무자가 알려주는 Git 활용한 프로젝트 관리] Git 브랜치의 이해와 활용 (0) | 2022.01.17 |