inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

04-05 ODM - MongoDB 접속

선생님 그러면 만약에 도커로 백엔드 실행하지말고 구냥..

해결된 질문

290

반가우면반갑다고해

작성한 질문수 142

0

 만약 도커로 백엔드 실행하기싫고,

내 로컬에서 백엔드 실행한다고하면

mongoose
    .connect("mongodb://my-database:27017/mydocker")
    .then(() => {
        console.log("DB 연결 성공");
    })
    .catch((err) => console.log("DB 연결 실패", err));

connect부분을 로컬호스트:27017로만 변경하면 되는거는 알겠는데..

너무 번거로운거같은데 혹시 .env에 설정하는 방식같은게 없을까요?

 

예를들면 프로덕션, 개발모드에 따라서env를 바꿀수있잖아유

그런것처럼 도커컨테이너 환경 혹은 그냥 로컬에서 백엔드 실행했을때환경 이런걸 구분할수있는 방법은없나유?

javascript node.js rest-api nestjs

답변 2

1

노원두

안녕하세요! 반가우면반갑다고해님!

추후 배포관련 수업에서 해당 내용을 자세하게 다루게 됩니다!^^

간략히만 미리 말씀드리면,

1. .env 파일을 아래와 같이 나누어줍니다.

// .env
MY_DB=localhost:27017

// .env.docker
MY_DB=my-database:27017

 

2.
2-1) 로컬에서 실행하는 경우, .env를 기반으로 실행하게 될 것이고,
2-2) 도커에서 실행하는 경우, docker-compose.yaml 파일을 통해, .env.docker를 환경변수로 주입하게 되면, 기존의 .env를 .env.docker가 덮어쓰게 된답니다!^^


0

반가우면반갑다고해

감사합니닷!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

반가우면반갑다고해님, 프로젝트에서 환경별로 설정을 다르게 적용하고 싶으시다면 환경변수(.env)를 사용하는 것이 일반적입니다. 예를 들어, 로컬 환경에서는 MongoDB의 주소를 localhost:27017로, 도커 컨테이너를 사용할 경우에는 컨테이너의 주소를 사용하도록 설정할 수 있습니다.

.env 파일에 각 환경별로 변수를 설정하고, 코드 내에서 process.env를 통해 접근하여 참조할 수 있습니다. 예를 들면, .env 파일에는 다음과 같이 적을 수 있습니다.

DATABASE_URL=mongodb://localhost:27017/mydatabase

그리고 도커 환경에서 실행하는 경우 다른 .env 파일을 사용하거나 환경변수를 명령어를 통해 재정의하여 사용할 수 있습니다. 예를 들어, 도커 환경에서 실행할 때는 다음과 같이 설정할 수 있습니다.

DATABASE_URL=mongodb://my-database:27017/mydocker

Node.js에서는 process.env.DATABASE_URL로 이 값을 읽어서 사용할 수 있습니다. 코드 예시는 다음과 같습니다.

mongoose
    .connect(process.env.DATABASE_URL)
    .then(() => {
        console.log("DB 연결 성공");
    })
    .catch((err) => console.log("DB 연결 실패", err));

이런 방식을 통해 개발(dev), 테스트(test), 프로덕션(prod) 등 다양한 환경에서의 실행을 위한 구성을 분리하고 관리할 수 있습니다. 환경변수를 통한 설정은 코드의 변경 없이 외부에서 실행 환경을 조정할 수 있는 유연한 방법을 제공합니다.

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

82

2

강의 전체 소스 코드를 받고싶습니다.

0

75

2

fontawesome 사용 문의

0

76

2

소스 코드 부탁드립니다~

0

84

2

깃 레포지터리 소스

0

80

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

72

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

84

3

강의 버전관련 문의입니다

0

101

2

Ubuntu 설치 관련

0

60

1

schema.gql 질문 드립니다.

0

50

1

서버 재실행시 Many to Many

0

100

3

input 관련 문의

0

89

2

Rest API 보다는 graphql이 주된 내용인데

0

130

2

강의 전체 소스코드 받을수있을까요?

0

154

1

도커볼륨 마운트 관련

0

126

2

findOne 타입스크립트오류

0

108

1

http => htrtps 호출 인증서 신뢰 오류

0

348

1

self-signed certificate in certificate chain 에러 발생

0

410

1

mongoose 설치 오류

0

141

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

280

2

08-06

0

177

3

구조랑 패턴 관련해서 질문

0

124

2

mydocker

0

127

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

155

1