-
스프링과 스프링모듈 하나(이상)씩 알아(만)가기 Spring J2EE로 자바 어플리케이션을 개발할 때 편하게 개발할 수 있도록 제공하는 프레임워크 모듈 형태로 개발 편의를 제공함 : Spring MVC, Spring Data 등 흔히들 하는 착각 : Spring == Spring MVC <– 아닙니다! 모듈과 함께 스프링빈 컨테이너를 제공함 컨테이너 : 어떤 것의 라이프사이클을 관리해주는 역할, 여기서 어떤 것은, 라이프사이클은 인스턴스의 생성부터 소멸까지를 말함, 인스턴스는 기본적으로 싱글톤으로 관리됨 스프링빈 : 스프링 컨텍스트에서 사용되는 인스턴스(스프링 빈)을 말함, 스프링 컨테이너에서 관리되는 인스턴스 즉 스프링빈이...
-
Issue 서비스 구현 개발 flow AcceptanceTest(인수테스트) 케이스를 먼저 작성함 : 서비스에 대한 요청을 했을 때 클라이언트는 어떤 응답을 받을 것인지 먼저 정함 - TestRestTemplate 사용 Controller / Service / domain 객체 테스트케이스에 맞게 프로그래밍 Service 테스트(단위 테스트) : 앞서 2단계에서 구현한 로직이 상황에 맞게 제대로 수행되는지 메소드(액션) 단위테스트 - Mockito 사용 create @RequestBody : RestController와 함께 사용하는 것, json 데이터를 받아서 객체로 변환할 때 사용하는 것 API 보기 : 메세지 컨버터를 거치게 되어있음 Annotation indicating...
-
인수테스트는 클라이언트 입장 인수테스트를 할 때 서버의 자원을 끌어다 사용하면 안됨 : 클라이언트 입장에서 테스트를 하는 것인데, 클라이언트는 알 필요가 없음 클라이언트 - 서버가 나뉘어져있는데, 클라이언트가 서버 입장에서 서버의 자원을 사용하는 것과 같음 서버가 외부로 공개해놓은 API를 콜 했을 때 어떤 결과가 받아질 것인지 예상한다음 응답 결과가 왔을 때 실제 그런지를 테스트하면 됨 end to end 테스트인 점을 망각한 코드 첫번째 예시 : 서버에서 예외를 캐치한 후 예외에 대한 특정 응답을 만들어서 클라이언트에 응답해줘야하는데, 클라이언트...
-
REST API ATDD REST API REST 디자인 원칙을 지켜서 만든 Web/HTTP API : 여기서 API는 원격에서 다른 시스템의 메소드를 콜하는 인터페이스를 말함(리소스 핸들링을 위한 - 기본적으로 CRUD) REST 등장 배경 : 현재 형성된 웹 환경을 파괴하지않으면서도 HTTP를 발전 시킬 수 없을까? 웹서버에 변경이 생기더라도 클라이언트에는 아무런 영향을 미치지않도록 발전시킬 수 없을까? 궁극적으로 서버와 클라이언트의 디펜던시를 제거함으로서 얻을 수 있는 이점을 얻기위해서 원칙을 만들게 됨 어떻게 디펜던시를 제거하나? 일관된 URI 디자인(요청), 요청에 대한 응답 결과의 메세지만으로도...
-
REST API REST 디자인 원칙을 지킨 WEB API/HTTP API API 여기에서는 원격으로 다른 시스템의 메소드를 콜하는 의미 : 메소드는 서버 측에서 (일부)공개해놓은 메소드만 - 어떻게 처리되는지는 모르나 외부 인터페이스를 통해서 작업을 요청할 수 있음 메소드를 사용하는 이유는 자원(resource)에 대한 핸들링을 하기위해서 REST API의 궁극적인 목표는 클라이언트와 서버의 디펜던시를 없애는 것 독립적인 발전을 위해서 : 서버에 변경이 생겨도 클라이언트는 변경을 하지않아도 됨(완전히 기능을 없애지않는다면…) 유지보수 관점에서도 좋음 : stateless 원칙을 지키고 있다면 서버의 인프라를 확장시킬 때...