작성하고 나니 여러 개념에 대해 단어들을 통일 시 못한 것 같네요. 혹시 이상한 점 있으면 편하게 피드백 부탁드립니다. 요즘 프로젝트에서 WebFlux를 적극적으로 다루고 있는데, just/defer/fromCallable를 다루다보니 조금 헷갈리는 점이 있어 정리해놓으려 한다. 모든 메서드는 Mono 를 중심으로 정리했다. just just는 구독 시 특정 값을 반환(emit)하는 메서드이다. 제일 기본적인 메서드이기 때문에 처음 Reactor를 공부하면 거의 제일 처음에 배웠던 것 같다. 공식문서를 보면 설명이 다음과 같다. Create a new Mono that emits the specified item, which is captured at instantiation time. 여기서 insta..
예시 코드는 여길 참조해주세요. https://github.com/KimDoubleB/spring-learning/tree/master/junit5/tag Tag JUnit5에서는 Tag 어노테이션을 제공하고 있습니다. Overview Tag는 어떤 기능을 하는 어노테이션일까요? 공식문서에 의하면 다음과 같습니다. Tags are a JUnit Platform concept for marking and filtering tests. The programming model for adding tags to containers and tests is defined by the testing framework. For example, in JUnit Jupiter based tests, the @Tag ann..
Spring boot 웹 서버를 개발하고 Kubernetes에 배포할 때, Profile(local, dev, prd, ...)을 설정하는 법을 알아보자. Dockerfile을 사용해 컨테이너 이미지 빌드 Dockerfile을 통해 이미지 빌드 시, ENTRYPOINT에서 Jar 파일을 실행하며 Dspring.profiles.active 옵션을 통해 설정할 수 있다. ... ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "some.jar"] 해당 컨테이너 이미지를 실행시키면, dev profile로 설정되어 Spring boot 웹 서버가 실행된다. Buildpacks(ex. gradle bootBuildImage)를 통해 컨테이너 이미지 빌드..
@ApplicationScoped 어플리케이션에서 사용되는 bean instance. 주입 시점에 공유되며 기본적으로 해당 어노테이션을 사용해 bean을 생성하면 지연(lazy) 생성된다. 즉, Client proxy를 통해 메서드가 호출될 때 초기화되며 생성된다. @Singleton Client proxy가 사용되지 않는다는 점 빼고는 @ApplicationScoped 와 같다. 즉, 주입 시점에 인스턴스가 생성(eager)된다. @RequestScoped Current request(보통 Http request)와 관련이 있는 bean instance. Spring에서 사용하는 @RequestScope 와 유사하다. @Dependent pseudo-scope 을 가지는 bean instance. In..
Java 17이 LTS로 공개되었고, Spring boot도 2.5.5 버전에서 지원하고 있어 새로운 프로젝트에 Java 17을 사용하기로 했다. 그래서 start.spring.io에서 Java 17/Boot 2.5.5로 만들어서 intellij에서 바로 Run 했는데, 아래와 같은 오류가 나왔다. error: invalid source release: 17 이전 java 버전 변경할 때, 자주 겪었던 오류라 preference 및 project structure가서 java 버전을 명시하고 있는 것은 다 17로 바꿔주었다. 근데도 같은 오류를 계속 내뿜었다 ㅠㅠ 상세 설명도 없이.... 진짜 눈에 보이는 JDK 버전은 다 변경한 것 같은데 '뭐지...' 하고 싶던 찰나 gradle 버전 변경하는 것을 ..
Java엔 정말 다양한 Http Client가 있다. 주로 URLConnection, Apache HttpClient, RestTemplate, Feign를 사용하게 되는데 각각의 Proxy를 설정하는 법 또는 System property를 사용해 Proxy를 설정하는 법이 있다. 이런 Proxy 설정에 관하여 회사에서 위키로 작성해 전체 개발 팀에 공유를 했었는데, 좋게 봐주셔서 어쩌다보니 회사 기술 블로그에 글을 작성하게 되었다. 관련하여 궁금한 내용이 있으시다면, 아래 블로그 내용을 참조하시면 도움이 될 것 같습니다 :) Java proxy setting guide | 11번가 TechBlog — 11번가 기술블로그 안녕하세요. 11번가 Platform Engineering 팀의 서버 개발자 김보배..
이전의 완전 초기 스타트업에서 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..
- Total
- Today
- Yesterday
- 알고리즘
- 일상
- MySQL
- Algorithm
- jasync
- k8s
- Intellij
- Istio
- 로그
- 백준
- container
- 비동기
- r2dbc
- WebFlux
- 이스티오
- tag
- Log
- boj
- java
- gradle
- python
- Spring
- c++
- docker
- HTTP
- Kubernetes
- 쿠버네티스
- 하루
- Spring boot
- sidecar
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |