- Today
- Total
목록Spring boot (16)
개발하는 고라니
specification] framework - spring boot 2.6.3 test - Junit 5 들어가며 이제 애플리케이션을 개발하는데 있어 테스트는 선택이 아닌 필수가 되었으며, 작성을 용이하게 해주는 라이브러리 또한 플랫폼에 따라 많이 나와있다. 그만큼 개발자에게 테스트는 비교적 저렴한 비용으로 나의 코드가 안전함을 보장하는 이점이 있다. 대표적인 서적으로 Unit Test이 있고, 살짝 보았으나 역시 어려워 이해하는데 어려움이 있었다. 어쩃든, 테스트는 크게 단위 테스트와 통합 테스트로 나뉘는데 일반적으로 code review를 요청하기 위해 Github에 PR(Pull Request)을 올리는데, 이때 기존에 작성된 테스트 코드들이 깨지는지, 빌드가 깨지는지 등을 pipeline으로 정..
specification] spring boot - 2.6.3 서론 API를 만들면 종종 Exception이 발생하기 마련이다. Client에서 요청을 했는데, 예외가 발생했을 때 구체적이고 명시적으로 어떤 에러, 무엇 때문에 발생했는지를 "message"에 담아서 보낸다. fun validateMoney(money: BigDecimal) { if (money < BigDecimal(0)) { throw MinusMoneyException("금액이 음수입니다. money : $money") } } 하지만, 그간 무심코 넘어갔지만 에러 메세지를 확인해보려니 다음과 같이 발생한 적이 있을 것이다. { "timestamp": "2023-02-27T08:43:33.081+00:00", "status": 500,..
Servicee 나 Repository에 대해 테스트 코드를 짜는 것은 조금은 익숙하나, Controller 레이어를 구성하고 테스트 하기 위해서는 Postman이나 Web UI 테스트를 진행해왔다. 이번에는 어플리케이션 수준에서 Controller 테스트를 하는 방법을 간단하게 알아보고자 한다. Environment - Junit 5 - Spring Boot 2.1.7 - JPA (Hibernate) Controller Test * Service, Repository, DTO 및 Entity에 대한 코드는 따로 명시하진 않는다. Controller에 대해 테스트를 하려면 Mock이라는 개념이 필요한데, 이에 대해서는 다음에 자세히 알아보도록 하고, 이번에는 어떻게 사용하는지만 알아보자. package ..
Index Chapter 1 Chapter 2 젠킨스 서버에 도커 및 젠킨스 설치, 배포 서버에 도커 설치 젠킨스 설치 후 이것저것 설정 젠킨스 Job 생성 Chapter 3 배포 서버에 도커파일 생성 배포 서버에 init.sh 작성 깃헙에 push 해보기 자동 배포 됬는지 확인 준비물 Github 리퍼지토리 Spring Boot 프로젝트 (gradle) GCP 같은 클라우드 컴퓨팅 인스턴스 2개 A : 젠킨스가 있는 서버 B : 배포할 서버 시나리오 코드를 작성한다. 깃헙에 Push한다. Webhook이 걸려 젠킨스에게 Job을 실행하라고 한다. 젠킨스가 Build해준 결과를 배포 서버에 넘긴다. 배포 서버에서 컨테이너를 실행해 자동 배포한다. ▷ Chapter 1 - 스프링 부트 프로젝트 생성과 깃헙..
들어가기 앞서 STOMP + RabbitMQ Dependency Configuration DTO Controller RabbitMQ HTML Javascript Destination 마치며 [Spring Boot] WebSocket과 채팅 (3) - STOMP [Spring Boot] WebSocket과 채팅 (2) - SockJS [Spring Boot] WebSocket과 채팅 (1) 일전에 WebSocket(웹소켓)과 SockJS를 사용해 Spring 프레임워크 환경에서 간단한 하나의 채팅방을 구현해본 적이 있다. [Sprin.. dev-gorany.tistory.com 이전에 Websocket + SockJS + STOMP로 클라이언트간 채팅을 간단하게 구현을 해보았다. 먼저 왜 이를 썻는지에 대..
Spring Boot 환경에서 RabbitMQ로 메세징 해보는 간단한 예제이고, 원본은 spring.io의 docs이다. 이 예제를 구현해보기 위해 RabbitMQ가 설치되어있어야 한다( 혹은 docker로 가능). 이 예제는 AMQP RabbitMQ Server를 설정하는 과정을 겪을 수 있고, 메세지를 발행(pub)과 소비(sub)하고 스프링부트 어플리케이션을 만들어 RabbitMQ 서버와 상호작용한다. Spring AMQP(Advanced Message Queuing Protocol)의 RabbitTemplage을 사용함으로써 메세지를 발행(pub)하고, MessageListenerAdapter를 사용해 POJO(Plain Old Java Object) 형태의 메세지를 소비(sub)하는 어플리케이션..
Java로 웹 개발을 접해보았다면 Servlet/JSP로 입문을 했을 가능성이 높고, Spring과 MyBatis, JSP로 그 다음을 접해보았을 것이라 기대된다. JSP는 Java Server Page의 약자로 그간 많이 사용되어왔고, 현재도 많이 쓰이는 뷰 엔진(View Engine)이다. 하지만 최근 스프링 부트로 넘어오면서 JSP 대신 Thymeleaf라는 비교적 새로운 뷰 템플릿 엔진이 등장하였고 많은 사람들이 이것을 사용한다. 물론 Thymeleaf말고도 Mustache, Groovy, FreeMarker ... 등 많은 뷰 엔진이 있다. 이번 포스팅에서 알아볼 Thymeleaf은 Spring Framework(특히 Spring MVC)에 통합시킬 수 있는 뷰 엔진이다. Thymeleaf or..
스프링 부트 프로젝트를 생성하고 작업한 결과를 Eclipse나 IntelliJ같은 IDE에서 뿐만 아니라 CMD같은 커맨드 창에서도 띄울 수가 있는데, 그 방법은 간단하다. 나는 Window를 사용하므로 CMD로 사용하겠다. 먼저 CMD를 켜서 프로젝트 폴더가 위치한 곳으로 간다. 그곳에 가면 'gradlew'라는 파일이 있는데 이를 build한다. /* windows */ $ gradlew build /* linux */ $ ./gradlew build 그럼 알수없는 무언가가 실행되는데, 이를 마치고 dir 하면 'build'라는 디렉토리가 생성되어있다. /build/libs 디렉토리 밑에보면 .jar 파일이 하나 있다. 이것을 자바로 실행하면 되는데 이때 명령어는 다음과 같다. java -jar he..