inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

2-4. 프로젝트 기본 설정하기 & 로컬 모니터링 인프라 설정

apllication.yml localhost 도커 통신

해결된 질문

104

모깅

작성한 질문수 55

0

1. 현재 학습 진도

 

2. 어려움을 겪는 부분

 

3. 시도해보신 내용

 

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!

java spring mysql redis 이력서

답변 2

2

딩코딩코

안녕하세요 모깅님 좋은 질문 해주셔서 감사합니다.

맞습니다! 일반적으로 도커 컨테이너끼리 통신할 때는 localhost 대신 서비스명을 사용해야 합니다. 하지만 현재 상황에서 작동하고 있다면 몇 가지 이유가 있을 수 있습니닷

1. 호스트 네트워크 모드 사용

docker-compose.yml에서 network_mode: host를 사용하고 있다면 컨테이너가 호스트의 네트워크를 직접 사용하게 됩니다. 이 경우 localhost가 정상 작동합니다.

yaml

services:
  app:
    network_mode: host

 

2. 포트 포워딩을 통한 우회 연결

MySQL과 Redis 컨테이너가 호스트로 포트를 노출하고 있고, 애플리케이션이 그 포트로 연결되는 경우입니다.

yaml

services:
  mysql:
    ports:
      - "3306:3306"  # 호스트 포트로 노출
  redis:
    ports:
      - "6379:6379"  # 호스트 포트로 노출

이때 데이터 흐름: 앱 컨테이너 → localhost:3306 → 호스트 → MySQL 컨테이너

3. Docker Desktop의 특별한 처리

Windows/Mac에서 Docker Desktop을 사용하는 경우, localhost가 자동으로 호스트 머신을 가리키도록 특별히 처리되는 경우가 있습니다.

다만 실무에서는 다음과 같이 서비스명을 사용하는 것이 올바른 방식입니다.

yaml

# application.yml
spring:
  datasource:
    url: jdbc:mysql://mysql:3306/mydb  # 서비스명 사용
  redis:
    host: redis  # 서비스명 사용

환경이 바뀌면 (다른 도커 호스트, 쿠버네티스 등) 문제가 발생할 수 있기 떄문입니다

현재 docker-compose.yml 파일의 네트워크 설정 부분을 확인해보시면 정확한 원인을 파악할 수 있을 것 같습니다 관련해서 한 번 파악해보시고 말씀주셔도 좋을 것 같아요 좋은 질문해주셔서 감사합니다!!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
모깅님이 말씀하신 질문은 Docker와 관련된 네트워킹 이슈입니다.

Docker에서는 기본적으로 모든 컨테이너들이 서로 다른 네트워크에 존재하게 됩니다. 따라서 서로 통신하기 위해서는 같은 Docker 네트워크에 연결되어야 합니다. 일반적으로 localhost는 호스트 머신을 나타내기 때문에, 도커 컨테이너 간의 통신에서는 사용되지 않습니다. 그러나 Docker Compose를 사용하면 동일한 네트워크에 연결된 다양한 컨테이너 간의 통신이 가능합니다.

혹시 Docker Compose를 사용하고 계신다면, docker-compose.yml 파일 내 서비스들이 동일한 네트워크에 포함되어 있으면 서비스 이름을 통해 서로를 인식하고 통신할 수 있습니다. 이 경우 localhost 대신 서비스 이름을 URL에 사용하면 됩니다.

정확한 설정과 작동 방식을 이해하기 위해서는 Spring Boot의 Docker Compose 지원에 대한 문서를 참고하시면 좋습니다. 관련 문서를 통해 추가 정보를 얻으실 수 있습니다.

도움이 되셨기를 바랍니다. 추가적인 질문이 있다면 언제든지 해주세요!

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

44

2

Build 관련 문제 (테스트 관련 문제)

0

44

2

인덱스 관련 질문 있습니다.

0

75

2

비관적 락 구현 방식 문의 건

0

82

2

외부 api 처리 방안에 대하여 궁금한 점이 있습니다.

0

93

2

네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문

0

88

2

이벤트) 백엔드 기술면접 실전문제집

0

107

2

로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?

0

134

2

데드락 발생 시, 외래 키를 제거하는 방법 관련 질문

0

91

2

Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.

0

115

2

k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민

0

142

2

강의와 성능수치 비교

0

105

2

13강 강의 뒷부분의 과제 안내부분은 어디있나요?

0

52

2

이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문

0

66

2

[수업 자료 질문] Cache Aside의 특징 문의

0

89

2

[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의

0

83

2

블로그에 학습 내용 정리 포스트를 올려도괜찮나요?

0

113

2

멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?

0

91

3

클라우드 환경 배포시 부하 테스트 방식에 대하여

0

153

2

k6 dashboad 안나오는 상

0

119

2

2-4 도커 빌드 에러가 계속 납니다.

0

302

2

AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것

0

118

2

성능 측정시

0

114

2

API 별 실행 쿼리 모니터링 구현 질문 있습니다.

0

87

2