본문 바로가기

전체 글52

Spring - Rest API Rest API는 Rest를 기반으로 만들어진 API를 의미합니다. 이번 포스트에서는 Rest하다는 것이 무엇인지 그 의미에 대해 Rest API의 등장부터 차근차근 정리해보도록 하겠습니다. Rest API의 등장 Rest API란 Representation State Transfer API의 약어로, 2000년도 로이 필딩(HTTP의 주요 저자 중 한명)의 박사 학위 논문에서 최초로 소개되었습니다. 로이 필딩은 웹(HTTP) 설계의 우수성에 비해 제대로 사용되지 못하는 모습이 안타까워 웹(HTTP)의 장점을 극대화 시킬 수 있는 아키텍처로써 Rest API를 발표했다고 합니다. Rest API의 구성 Rest API는 다음과 같이 구성되어 있습니다. 자원 - URI 행위 - HTTP METHOD 표현 .. 2022. 11. 21.
Spring - @Controller Controller Annotation 이번 포스트에서는 여러가지 어노테이션 중 Controller에서 주로 사용하는 어노테이션은 어떤 것들이 있는지, 어떤 기능을 하는지에 대해서 다뤄보려고 한다. @RequestParam @RequestParam 어노테이션은 쿼리 스트링에서 요청 파라미터를 받는 경우 사용한다. 예를 들어 localhost:8080/login?uId=a&uPw=a1234 같은 URL이 있는 경우 ?뒤에 있는 uId=a&uPw=a1234이 부분이 Request에서 들어온 파라미터 값인데 이 값을 Controller에서 사용하고 싶은 경우 사용한다. 코드로 보면 다음과 같다. @PostMapping("/login") public String doLogin(@RequestParam Strin.. 2022. 11. 21.
Spring - IoC, DI IoC ( Inversion of Control )란? 말 그대로 해석하면 제어의 역전이다. 스프링에서만 존재하는 개념이 아닌 소프트웨어 세계에서 자주 발견할 수 있는 개념이다. 메소드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부 컨테이너에 의해 결정되는 것을 의미한다. public Class A { private B b; public A() { b = new B(); } } 위 코드는 개발자가 직접 B객체를 호출하여 의존 관계를 나타내는 코드이다. public class A { @Autowired private B b; } 위 코드는 B 객체가 스프링 컨테이너에 등록되어 관리되고 있는 Bean이라면 Autowired 어노테이션을 통해 개발자가 직접 객체를 관리하지 않고 스프링 컨테이너가 객체를 생.. 2022. 11. 21.
Spring - 스프링 모델 VO (Value Object) 리터럴 개념 값 그 자체의 의미를 가진 불변 객체이다. (Read-Only) 따라서 getter 메소드만 가지고 있어야 한다. VO 내부에 선언된 필드 모든 값들로 동일 객체인지 판단하기 위해 사용된다. 따라서 equals(), hashCode()를 오버라이드 할 필요가 있다. DTO (Data Transfer Object) 계층간(Controller, View, Buiseness Layer) 데이터 교환을 위한 JavaBeans DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체 DB의 데이터가 Presentation Logic Tier로 넘어올 때는 DTO로 변환되어 오고간다. DTO는 로직이 없는 순수한 데이터 객체 getter/sett.. 2022. 11. 21.
Spring - 웹 계층 스프링 웹 계층 Presentation Layer 브라우저 상의 웹 클라이언트 요청 및 처리를 담당하는 레이어다. 사용자 요청에 맞는 @Controller를 호출한다. 사용자 요청 객체에 대한 유효성 처리를 한다. Business Layer, Persistence Layer에서 발생하는 예외처리를 한다. Controller, View 포함 Business Layer Service Layer 실제 비지니스 로직을 수행하는 컴포넌트 Presentation Layer에서 들어오는 사용자 요청 데이터가 아니라 다른 계층을 통해 들어왔거나 Controller를 직접적으로 거치지 않는 요청일 경우 해당 계층에서 처리 외부 API사용 시 해당 계층에서 사용 공통적으로 사용해야하는 작업 처리 컨트롤러에서 요청을 보내면.. 2022. 11. 18.
Spring - MVC 패턴 개요 스프링은 MVC패턴이라는 디자인 패턴을 준수합니다. 이번 포스트에서는 MVC패턴에 대해 자세히 알아보겠습니다. MVC패턴의 등장 배경 MVC패턴 이전에는 서블릿과 JSP를 이용하여 비즈니스 로직과 뷰 로직을 처리하는 방식으로 일을 했습니다. 하지만 너무 많은 역할을 하나의 서블릿 혹은 JSP이 하게 되니 유지보수가 어렵다는 문제가 발생했습니다. 또한 UI의 수정과 비즈니스 로직의 수정은 변경 시점이 다를 가능성이 높아 이 둘을 하나로 관리하는 것은 유지보수하기 좋지 않다는 문제도 있었습니다. 이러한 문제를 해결하고자 Model, View, Controller로 영역을 나눠 서블릿이나 JSP에서 한번에 처리하던 일들을 각 영역으로 분담하는 방법이 등장했고, 이것이 MVC패턴입니다. MVC패턴이란? M.. 2022. 11. 18.