전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Spring Framework/Spring boot

[Spring] H2 In-memory 데이터베이스 설정 및 접속 방법

H2 In-Memory란For certain use cases (for example: rapid prototyping, testing, high performance operations, read-only databases), it may not be required to persist data, or persist changes to the data. This database supports the in-memory mode, where the data is not persisted.In-Memory는 데이터 영속적인 저장 및 변경을 요구하지 않는 상황에서 사용되곤 한다. 예를 들어 빠른 프로토타입 개발이나 테스트 작업에 사용된다. In some cases, only one connection to ..

Infra/Kubernetes

[Kubernetes] 쿠버네티스 컨테이너 및 파드에 메모리, CPU 할당 - 리소스 제한을 안하면 생기는 문제

아래 글은 쿠버네티스 공식문서를 참고하여 작성하였습니다.메모리 할당과 제한 방법은 CPU 할당과 제한 방법과 유사합니다. resources.requests에 cpu를 추가, resources.limits에 cpu를 추가하여 값을 할당해 주면 됩니다.컨테이너 및 파드 메모리 리소스 할당메모리 요청량 및 상한선 지정컨테이너에 메모리 요청량을 지정하기 위해서는 컨테이너의 리소스 manifest에 resources:requests 필드를 포함합니다.리소스 상한을 지정하기 위해서는 resoures:limits 필드를 포함합니다.apiVersion: v1kind: Podmetadata: name: memory-demo namespace: mem-examplespec: containers: - name: me..

Spring Framework/Spring

[Spring] MessageSource, messages_en.properties 파일에서 작은 따옴표 및 특수 문자 처리 오류 해결 방법

문제 상황MessageSource를 이용해서 messages_en.properties에 있는 값을 반환하는데 ‘ 작은따옴표 문자가 정상적으로 출력되지 않는 문제가 있었습니다. 상황 1일반 문자열에 ‘(작은따옴표)를 사용하면 원하는 값을 정상적으로 출력상황 2일반 문자열 + 템플릿 문자를 사용한 경우 ‘(작은따옴표)가 정상적으로 출력되지 않았습니다.MessageSource 인터페이스를 뜯어보면서 MessageFormat가 연관이 있는 것을 확인하고 검색을 해보니 자바 공식문서에 아래와 같은 글이 있었습니다. Within a String, a pair of single quotes can be used to quote any arbitrary characters except single quotes.→ 하나..

Test/Mockito

[Mockito] @MockBean과 @Mock 차이 이해하기 - @ExtendWith(MockExtension.class)

@MockBean vs @Mock + @ExtendWith(MockitoExtension.class)@MockBean스프링 컨텍스트에 mock 객체를 빈으로 등록하여, 테스트 대상 클래스에 필요한 의존성을 스프링 빈으로 주입해 줍니다.주로 통합 테스트에서 mock 객체를 주입할 때 사용합니다.스프링 컨텍스트가 활성화된 상태에서 mock 객체를 주입할 수 있습니다.@SpringBootTestclass MyTest { @MockBean private MyService myService; // 스프링 컨텍스트에 등록된 목 객체 @Autowired private MyController myController; // MyService 목 객체가 주입됨 @Test void tes..

트러블슈팅

[트러블슈팅] 스프링 @SpringBootTest와 @ExtendWith 빈 주입 이슈 해결 - No qualifying bean of type 'package path' available

문제 상황@SpringBootTest(classes = {***.class, ***.class})@ExtendWith(MockitoExtension.class)class ExampleTest { @Mock private Repository repository; @Mock private Service service; @Mock private ServerPort serverPort; @Autowired private MessageSource messageSource; @Autowired private ExampleTask task;} 1. @Autowired로 테스트 클래스를 주입받지 못하는 이유@Autowired는 스..

Test/JUnit5

[Mockito] 스프링 Mockito 어노테이션 이해하기 - @Mock, @Spy, @InjectMocks, @Captor

단위 테스트를 작성하면서 다시는 헷갈리지 않기 위해 영어 문서(Baeldung)을 참고하여 정리하였습니다.  @ExtendWith(MockitoExtention.class)this is specific to JUnit5, and enables Mockito annotations like @Mock, @InjectMocks, and @Spy in the test classJUnit5에 관한 어노테이션이며, Mockito 어노테이션을 사용할 수 있게 해 줍니다.@ExtendWith(MockitoExtension.class)class ExampleTest { @InjectMocks private ExampleService exampleService; @Mock ExampleRepository examp..

Infra/Docker

[Docker] Docker run, cmd, entrypoint 차이 이해하기

Docker Best Practices Choosing Between RUN, CMD and ENTRYPOINT도커 이미지를 실행하기 위해 사용할 수 있는 명령어가 여러 가지 있는데 해당 명령어들을 각 상황에 맞게 사용하는 것이 좋습니다.run, cmd, entrypoint 명령어에 대해 알아보며, 어느 상황에 사용하면 좋은지 알아보겠습니다.  Multiple methods are available to accomplish similar tasks, and users must understand the pros and cons of the available options to choose the best approach for their projects.One Confusing area concerns ..

Infra/Kubernetes

[K8S] Kubernetes Job, CronJob 이해 및 활용법

JobBatch 처리에 적합한 컨트롤러로 Pod의 성공적인 완료를 보장합니다.비정상 종료 시 다시 실행정상 종료 시 완료Kubernetes는 Pod를 Running 중인 상태로 유지합니다.-> Job을 통해 Batch 처리하는 pod는 작업이 완료되면 종료됩니다.pod가 종료될 뿐 삭제되지는 않는다.Non-parallel, parallelNon-parallel하나의 파드만 실행됩니다.Pod가 성공적으로 종료하자마자 즉시 Job이 완료됩니다.고정적인 완료 횟수를 가진 Parallel Job.spec.completions에 양수 값을 지정합니다.Job은 전체 작업을 나타내며, completions 만큼 성공한 파드가 있을 때 완료됩니다.작업 큐가 있는 Parallel Job.spec.parallelism 을..

kylo
오늘도 열심히 - BE