docker network, volume 이해하기 [Docker] Docker network, volume 이해 및 docker-compose에 network, volume 지정하기 Docker Network Docker Compose를 통해 여러 컨테이너를 하나의 네트워크 안에서 실행시키려고 할 때가 있을 것이다. docker-compose.yml 파일에 네트워크를 지정하지 않으면 기본적으로 별도의 네트워크가 kylo8.tistory.com Docker compose로 redis 실행하기 1. redis volume 생성하는 이유 redis 컨테이너를 종료 후 재시작하면, 기존 레디스에 저장해 둔 데이터가 보존되지 않습니다. 레디스를 재시작하지 않으면 되지 않나? 라고 생각할 수 도 있습니다. 만약,..
Docker Network Docker Compose를 통해 여러 컨테이너를 하나의 네트워크 안에서 실행시키려고 할 때가 있을 것이다. docker-compose.yml 파일에 네트워크를 지정하지 않으면 기본적으로 별도의 네트워크가 생성이 되긴 한다. (compose-default) Docker Compose에서나 run 명령어를 통해 특정 네트워크를 지정하고 싶은 경우에는 네트워크를 생성하여 사용한다. ➡️ 정상적으로 생성이되면 아래와 같이 생성한 네트워크의 id가 반환된다. Network Inspect docker network inspect my-net 위 명령어를 통해 'my-net' 특정 네트워크에 대한 세부 정보를 확인할 수 있다. Docker run Command에 network 지정 doc..
이슈👉 (1) 일대다 관계에서 1+N 문제로 인해 불필요하게 N 번의 쿼리가 계속해서 발생했고, 페이징 처리를 동시에 해야 했다.(2) List 타입에 해당하는 요소들을 각각 query를 날려 여러 번의 select 문이 발생하는 비효율적인 상황이 있었다. 문제👉(1) N + 1 문제와 더불어 페이징 처리 구현 문제 내가 좋아요 한 게시글의 정보를 불러와야 해서, Page 에서 Board의 정보를 추출했다. getBoard()를 하는 만큼 N 번의 쿼리가 추가로 발생하여 비효율적이라는 생각이 들었다.(내가 구현하는 API는 좋아요한 글의 정보를 조회하는 것이어서 좋아요 정보랑 게시글의 정보가 무조건 필요한 상황이었다.) 또한, Fetch Join을 사용해 CountQuery를 정상적으로 만들어 주지..
이슈'toBoardInfo(Page, List)' clashes with 'toBoardInfo(Page, List)'; both methods have same erasure👉 동일한 자료형을 반환하는 메서드 오버로딩을 구현하는데 문제가 발생했다.자바에서는 메서드 오버라이딩과 오버로딩을 통해 다형성을 구현할 수 있다.메서드 오버라이딩이란부모 클래스가 가지고 있는 메서드를 자식 클래스에서 동일한 메서드 이름, 매개변수 타입 및 개수로 재정의하는 것을 의미한다.상속 관계에서 발생하며, 자식 클래스에서 부모 클래스의 메서드를 재정의하여 자식 클래스의 특정한 동작을 수행할 수 있다.메서드 오버로딩이란같은 클래스 내에서 메서드 이름은 같지만, 매개변수의 타입, 순서, 개수가 다른 여러 개의 메서드를 선언하는 ..
[Spring Cloud] Spring Cloud에서 OpenFeign 사용하기: RESTful 서비스 간 통신 방법Open Feign HTTP Client 도구로 외부 API 호출을 쉽게 할 수 있도록 도와주는 라이브러리입니다. 장점 인터페이스와 어노테이션 기반으로 동작하기 때문에 반복적이고 일반적인 패턴을 최소화합니다. Skylo8.tistory.com 위의 글을 Spring 애플리케이션에서 Feign Client로 여러 마이크로서비스 간의 통신하는 방법에 대한 글입니다.Feign Client 사용법을 알고 있다는 전제하에, Configuration 설정 및 사용방법에 대해 작성해 보겠습니다. 마이크로서비스 간의 통신을 할 때 각 Feign에 공통적으로 설정해야 할 Header 값이 있을 수 있습니다..
Open FeignHTTP Client 도구로 외부 API 호출을 쉽게 할 수 있도록 도와주는 라이브러리입니다. 장점인터페이스와 어노테이션 기반으로 동작하기 때문에 반복적이고 일반적인 패턴을 최소화합니다.Spirng MVC 어노테이션을 사용할 수 있습니다.Spring Cloud 기술들과 통합이 쉬습니다. 의존성 추가 (Gradle)implementation 'org.springframework.cloud:spring-cloud-starter-openfeign:4.0.3' FeignClient 활성화@SpringBootApplication@EnableFeignClientspublic class BlogApplication { public static void main(String[] args) { Spr..
[따배쿠] 쿠버네티스 시리즈 강의를 보고 배운 내용을 정리한 글입니다. https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c [따배쿠] 쿠버네티스 시리즈 www.youtube.com 쿠버네티스에서의 컨테이너 동작 흐름 1. docker push : 실행할 이미지를 도커 허브에 올립니다. 2. Image is pushed to Docker hub : 이미지가 도커 허브에 올라갑니다. 3. kubectl create deploy web --image=hub.example.com : deploy를 생성합니다. (위에서 올린 이미지 사용) 4. kubectl issues REST call 5. Pod created and schedul..
Spring Cloud Config 다루기 스프링 부트 프로젝트에서 설정 파일은 주로 application.yml에서 관리한다. MSA에서 여러 서비스들마다 각각 설정 파일들을 관리하려면 번거롭다 → 한 곳에 설정 파일만 관리한다면, 여러 서비스 서버에서 바꾸는 게 아니라 하나의 서버에서 변경할 수 있음 또한, 변경 사항이 생기면 설정 파일을 수정하고 서버를 재기동 해야하는 문제도 발생한다. Cloud Config 특징 spring cloud config서버는 분산 시스템에서 설정 정보를 제공해 주는 중앙 서버이다. 즉 설정파일들을 모아놓고 각 클라이언트에 맞는 설정 파일들을 제공한다. 재배포하지 않고 동적으로 설정 파일들을 변경할 수 있다. 여러 서비스들은 config-server에서 설정 파일들을 조..