전체 글 71

Docker란? 컨테이너 생성하고 구동하기 #Day21

Docker : 컨테이너를 관리하는 프로그램 Docker가 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징 컨테이너 : 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함될 수 있음 가상화와 차이점 가상머신(VM) : 서버 하드웨어를 가상화(또는 직접 관리할 필요성을 제거) 컨테이너는 서버의 운영 체제를 가상화. Docker는 컨테이너를 위한 운영 체제(또는 런타임). 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단 등이 가능 → 컨테이너만 있으면 환경이 그대로 유지됨 → 컨테이너 통째로 배포(업로드) 가능함 → 내려받아서 그대로 사용가능 ⇒ 여러 곳에 배포가 가능하고, 휴먼에러 방지함(언제든지 동일한 환경 ..

Spring API문서화 2/2 Spring RestDocs #Day20

Controller의 슬라이스 테스트를 통해 테스트가 통과(”PASSED”)되어야지만 API 문서가 정상적으로 생성됨 API 스펙 정보와 API 문서 정보의 불일치로 인해 발생하는 문제를 방지 Swagger는 애너테이션 내에 API 스펙 정보를 문자열로 입력하기 때문에 API 스펙 정보와 API 문서 내의 정보가 불일치 할 수 있음 Swagger처럼 API를 호출해볼 수 있는 툴의 역할은 없음 Spring Rest Docs사용을 위한 설정 슬라이스 테스트 코드 작성 →API 스펙 정보 코드 작성 →test 태스크 실행 →API 문서 스니펫 생성스니펫을 포함한 API 문서 생성.adoc 파일의 API 문서를 HTML로 변환 Spring Rest Docs를 사용해서 API 문서를 생성하기 위해서는 .adoc..

Spring API문서화 1/2 Swagger #Day19

API 문서화(=API 스펙/사양/Specification) : REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 정리한 것 Spring에서 자주사용하는) API 문서 작성 방법 Spring rest docs 테스트코드에 annotation 작성(테스트코드가 전부 통과되어야 함) 테스트코드를 짜야하므로 바로 결과를 보기는 어렵다 문서의 역할만 함 Swgger 컨트롤러 클래스에서 annotation 형태 - java에서도 많이 사용 가독성이 떨어짐 간편하게 문서화할 수 있음 문서에서 바로 테스트 가능 Swagger : http://localhost:8080/swagger-ui/..

Spring View-Thymeleaf #Day16

Thymeleaf Spring에서 MVC의 View를 구현하기 위해 사용하는 방법 중 하나(mustche → 좀더 간단) BE에서 FE까지 구현하는 방식이며 SSR : 서버 사이드 랜더링(view) dependencies { ... //타임리프 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' } ~APIController : API 컨트롤러 @RestController ~ViewController : 화면제어 컨트롤러 @Controller getmapping만 사용 : post/put/delete 방식은 데이터를 처리하기 위한 메서드 → 일반 주소창에는 데이터를 실을 수가 없어서 오류가 남 파일명을 return해줌 → 템플릿..

Spring Testing Mockito 3/3

Spring Framework 자체적으로도 지원하고 있는 Mocking 라이브러리 Mock 객체를 생성하고, 해당 Mock 객체가 진짜처럼 동작하게 하는 역할 Mockito의 Mocking 기능을 이용해서 테스트하고자 하는 대상에서 다른 영역(다른 계층 또는 외부 통신이 필요한 서비스 등)을 단절시켜 오로지 테스트 대상에만 집중 Stubbing : 테스트를 위해서 Mock 객체가 항상 일정한 동작을 하도록 지정하는 것 다른 영역을 목킹해서 마치 구현한것럼 가정하고 테스트 코드를 짬 슬라이스 Test @MockBean(필드) : Application Context에 등록되어 있는 Bean에 대한 Mockito Mock 객체를 생성하고 주입 given() : Mock 객체가 특정 값을 리턴하는 동작을 지정하..

Spring Testing JUnit 사용 2/3 #Day13-15

JUnit 단위테스트 JUnit5(Spring framework의 버전을 따름 - boot X) 사실상 Java의 표준 테스트 프레임워크 원활한 JUnit 호환을 위해 intelliJ 설정 변경 : Run testing using : IntelliJ IDEA Spring Boot Intializr를 이용해서 프로젝트를 생성하면 기본적으로 testImplementation >'org.springframework.boot:spring-boot-starter-test' 스타터가 포함되며, JUnit도 포함 데이터 전처리 @BeforeEach : 테스트 케이스가 각각 실행될 때마다 테스트 케이스 실행 직전에 먼저 실행되어 초기화 작업진행 @BeforeAll (static 메서드 앞): 테스트 케이스가 실행되기 ..