이전의 완전 초기 스타트업에서 Node.js/Express를 사용할 때, pm2를 통해 서버 관리를 한적이 있었다. pm2를 키면 access log를 바로 찍어줘서 request의 어느 부분에서 어떻게 오류가 나고 있고, 났었는지 확인하기가 편했다. Spring boot를 사용해 개발을 시작한 후, access log를 잊고 있다가 'application log 말고 access log는 어떻게 보지?' 라는 생각이 들자 찾아보게되었다. Spring boot를 사용하면 내부에 embedded tomcat이 있기에 따로 WAS를 띄울 필요가 없다. 이 tomcat에 대한 설정을 application.properties 또는 application.yml을 통해 설정할 수 있으며, 이를 통해 access.l..
특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶으면 영속성 전이 기능을 사용하면 된다. JPA는 CASCADE 옵션으로 영속성 전이를 제공한다. 쉽게 이해하자면 부모 엔티티를 저장할 때(영속화할 때), 자식 엔티티도 함께 저장할 수 있다. 코드 예제 한 부모에 여러 자식이 존재하는 상황으로 다대일(ManyToOne, OneToMany) 관계를 가진다. // Parent.java @Entity public class Parent { ... @OneToMany(mappedBy = "parent") private List children = new ArrayList(); ... } // Child.java @Entity public class Child { ... @ManyTo..
-Xms -Xmx 는 무엇일까? Java vm 옵션이다. -Xms 는 Java 힙의 최초 크기를 지정하는 것 -Xmx 는 Java 힙의 최대 크기를 지정하는 것 즉, Java heap 메모리는 -Xms 로 지정한 메모리 크기로 시작하여 -Xmx 로 지정한 메모리 크키까지 커지게 된다. 예시로 다음과 같이 작성할 수 있다. java -Xms2048m -Xmx2048m -jar some-jar-file.jar Xms, Xmx는 왜 같은 값으로 지정하는 것일까? 상용 서비스 서버 빌드배포(CI/CD) 스크립트를 보다보면 -Xms, -Xmx 옵션에 같은 값이 적혀져 있는 경우를 많이 볼 수 있었다. 단순히 생각하면 같은 값을 준다는 것은 그냥 처음부터 최대크기의 heap 메모리를 사용하겠다 라는 것인데... 왜..

이 글에서는 Spring boot 프로젝트를 Container image로 만드는 법에 대해 알아보겠습니다. Spring Boot 공식문서에서는 2가지 방법을 소개하고 있습니다. 1. Dockerfiles 2. Cloud Native Buildpacks 이 2가지 방법에 대해 자세히 살펴보도록 하죠! Dockerfiles 일반적으로 container image로 만들 때 활용하는 Dockerfile을 정의해 사용하는 방법 Spring project의 결과물을 container image로 만들 때, 아주 간단히 Dockerfile 을 작성하면 다음과 같이 작성할 수 있습니다. Gradle인 경우, ./gradlew bootJar 을 통해 쉽게 jar로 패키징할 수 있습니다. 패키징 이후, docker b..

앞에 개인적인 이야기 많아서, Maven Profile 설정한 부분은 아래에 있습니다. 필요한 부분만 보세요 ! 경험 Spring을 올해 처음 학습하기 시작했는데, 그러다보니 빌드 도구에 있어 Gradle에만 익숙하고 Maven은 사용해본 적이 없었다. - 사실 여러 이야기를 들었을 때 Gradle이 더 관리하기 좋다고들 해서, Maven은 과거의 유물... 같은 느낌으로 보고 있었다. 그러다보니 당연히도 gradle로만 빌드하고 있었는데, Spring cloud function, Spring native 같은 최근 나온 기술들에 대한 문서들을 읽으니 빌드 구성에 있어 Maven을 더 활용하기도 하고, 해당 기술들을 다룰 땐 Maven이 더 적합하다는 말도 있었다. 나는 "그래도 gradle로 가보자"라..

Web Reactive Stack 공식문서의 WebClient 부분을 읽고 해석하며 작성했습니다. Web on Reactive Stack The original web framework included in the Spring Framework, Spring Web MVC, was purpose-built for the Servlet API and Servlet containers. The reactive-stack web framework, Spring WebFlux, was added later in version 5.0. It is fully non-blocking, supports docs.spring.io Markdown으로 작성 후에 블로그로 옮기게 되었는데, 깨지는 부분이 존재하네요 😢 만약..
Code: https://github.com/KimDoubleB/spring-learning/tree/master/http 개발을 하다보면, 직접 HTTP 요청을 수행해보며 테스트 해보고 싶을 때까 있다. 직접 테스트 코드를 짜는 것이 중요하고 좋지만, 시간 및 상황의 제약으로 인해 말이다. 이럴 땐, 보통 Postman을 사용한다. 워낙 오랫동안 사람들에게 사용되어 왔고, 유명하기도 하고, Collection 형태로 프로젝트 별로 요청들을 관리하기도 편하다. 근데 Intellij를 사용하다보면, 간단한 테스트 요청임에도 Postman을 키고 요청들을 구성해야하기 귀찮을 때가 있다. 그리고 요청을 많이 진행해야할 때는 프로그램 간 계속 왔다갔다 해야되서 더 귀찮아지기도 한다. 이런 경우엔 Intellij..
- Total
- Today
- Yesterday
- boj
- container
- docker
- Clean Architecture
- 클린 아키텍처
- 일상
- OpenTelemetry
- HTTP
- python
- tag
- Istio
- c++
- WebFlux
- gradle
- jasync
- Log
- 쿠버네티스
- Spring boot
- Algorithm
- 비동기
- java
- 백준
- 하루
- Kubernetes
- Spring
- 로그
- Intellij
- k8s
- MySQL
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |