묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
컨테이너 런타임에 관한 질문이 있습니다.
컨테이너 런타임은 컨테이너를 생성 혹은 제거할때에만 관여하는건가요??
-
미해결개발자를 위한 쉬운 도커
맥에서는 도커를 어떻게 사용하는건가요?
맥에서 iterm에 접속하고 docker -version을 치면 docker server의 os가 linux로 나와있어서 그때부터 의문점이 생겨 질문드립니다. 도커가 리눅스 커널(Namespace, Cgroups)를 활용하여 컨테이너를 만들고 관리하는 것 같습니다. 그런데 맥에서는 어떻게 이게 가능한건지 궁금합니다. 제 예상으로는 도커 데스크탑이 어떤 기술에 의해 리눅스명령을 도커에 실행하면 도커가 명령을 받고 필요한 시스템 콜을 요청할때 도커 데스크탑이 맥 os가 알아들을 수 있게 변환작업을 하는 것같은데 맞는 걸까요?
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
502 Bad Gateway
2024/01/15 15:08:24 [error] 22#22: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.64.1, server: , request: "GET / HTTP/1.1", upstream: "http://172.18.0.2:8000/", host: "192.168.64.7" 위와 같은 오류가 발생하는데 문제가 무엇인지 모르겠습니다.
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
mariadb 접근권한 오류
File "/usr/local/lib/python3.9/site-packages/MySQLdb/connections.py", line 193, in initsuper().__init__(*args, **kwargs2)django.db.utils.OperationalError: (1044, "Access denied for user 'django'@'%' to database 'django'") mariadb 컨테이너를 실행 후,django 컨테이너를 실행 시 위와 같은 오류가 발생합니다.찾아보니 django 에 대한 권한이 없어서 그렇다고 하는데,해결방법이 있을까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
마지막 배포시에 도커 관련 문제
마지막 배포시에 Run echo "***" | docker login -u "***" --password-stdin2 echo "***" | docker login -u "***" --password-stdin3 shell: /usr/bin/bash -e {0}4Error response from daemon: Get "https://registry-1.docker.io/v2/": unauthorized: incorrect username or password5Error: Process completed with exit code 1.에러가 지속적으로 발생합니다. 도커 로그인에 사용되는 유저네임과 비밀번호를 그대로 입력하였음에도 계속해서 발생하는 문제입니다.
-
해결됨개발자를 위한 쉬운 도커
이미지안에는 OS 에 관련 궁금한 사항
현재 강좌까지 들은 상황에서 궁금한 점이 있어 글을 쓰게 되었습니다.이미지 안에 OS 도 포함된 것으로 보이는데 그렇다면 이미지를 만드는 주체자는 각 OS 별로 별도로 파일들을 만들어줘야 하나요? 그렇다면 너무 많은 이미지를 생성해야하는 것 아닌가 하는 의문이 듭니다. -- 강의 설명이 아주 친절해서 좋은 것 같아요. :)
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
node api 및 redis 서버
안녕하세요. 강의를 듣고 있는 초보 개발자입니다.test 코드 만드는 부분에서 오류가 나서 진도를 못나가고 있는 상태입니다. export createApp을 했음에도 불구하고 index.test.ts 파일에서 import createApp을 한 후 let app: Express.Application 선언 후 app을 request 인자로 넣을 때 오류가 납니다.또 한가지 질문은 os 환경이 windows인데 redis 설치를 했습니다만 이게 node api와 연동이 되고 있는건지 잘 모르겠습니다..ㅠㅠ redis cli에서 list에 push한 후 typescript로 만든 api를 구동해서 push를 했을 때 성공했다고 postman으로 확인을 했는데 get을 호출하면 [] 빈 리스트가 반환됩니다..ㅠㅠ 제가 node와 타입스크립트로 개발이 처음이라 너무 힘듭니다ㅠㅠ 진도를 나가고싶은데 이 코드를 통해서 빌드 배포를 하는 거 같아서 강의를 처음부터 계속 다시 돌려보면서 프로젝트만 지웠다 다시 만들었다만 반복 중입니다.. 도움 좀 부탁 드리겠습니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 토픽 생성이 안되요.
docker exec -it kafka kafka-topics.sh --bootstrap-server localhost:9092 --create --topic testTopic위와 같이 터미널에 토픽생성하는 명령어를 작성하면 아무것도 |움직이지 않고 터미널이 멈춥니다.도커는 정상적으로 실행하고 kafka,zookeeper도 정상적으로 실행되어있습니다.도커를 삭제하고 다시 다운로드해서 docker compose사용해서 kafka,zookeeper이미지 다시 작동시켜도 위와같이 토픽생성 명령어 입력하고 작동시 아무것도 안하고 멈춥니다..(p.s 카프카 컨테이너 cli들어가서도 토픽 생성 명령어 작동시켜도 작동안합니다.)혹시 해당 문제 해결법 아실까요..?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
git hub 업로드가 안되서 여쭤봐요
저같은경우 윈도우를 사용하고 있는데 두가지경우가 나오질 않아서 깃허브에 확인해보니 이렇게 프리캠프는 생성이 되었는데 들어가보니 강의에서 본것처럼 파일이 업로드 되있질 않았어요..어떻게 해야할까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Window에서 Volume이 작동하지 않는 문제
Window에서 Volume을 적용할 때 작동하지 않는 경우가 있습니다.예를 들어, "Hello"를 "Hello123"으로 바꿔도 여전히 "Hello"만 나오는 경우입니다. 이런 경우 이전 강의(또는 안내)에서 알려주신 것을 잘 참고해야합니다.강사님의 안내는 다음과 같습니다.Mac의 경우 아래를 사용한다.docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v $(pwd):/usr/src/app anonymous123/nodejs하지만, 윈도우의 경우는 아래를 사용해야한다.docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v %cd%:/usr/src/app anonymous123/nodejs 하지만, 저는 Window를 사용하고 있지만 Bash Shell을 사용하고 있었기 때문에 %cd%이 아닌 $(pwd)를 사용해야지 명령어가 작동이 되었습니다.예상할 수 있듯이 이렇게 하면 Volume이 작동되지 않습니다.그렇기 때문에 cmd를 이용하여 %cd% 방식으로 해줘야지 volume이 정상 작동 합니다. 결국 OS가 Window라서 그런거 같은데,,, 솔직히 잘은 모르겠습니다😂도움이 되셨으면 좋겠습니다!!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
next-auth 로그인 시 unauthorized 문제
문제가 몇일째 안풀리는게 있어 문의드려요제가 next-auth를 사용해서 로그인 프로세스를 해보고 있습니다.로컬에서 별도로 배포환경 만들어서 테스트를 했을 때에는 잘 되는데 배포시에 계속 Unauthorized 에러가 발생해서요제가 작성한 [...nextauth].ts 코드입니다.import NextAuth, { User } from 'next-auth'; import CredentialsProvider from 'next-auth/providers/credentials'; import { refreshAccessToken } from 'utils/tokenRefresh'; export default NextAuth({ providers: [ CredentialsProvider({ name: 'Credentials', credentials: { userId: { label: 'UserId', type: 'text', placeholder: 'jsmith' }, password: { label: 'Password', type: 'password' }, }, authorize: async (credentials) => { const res = await fetch(`${process.env.NEXT_PUBLIC_BACKEND_URL}/api/v1/users/signin`, { method: 'POST', body: JSON.stringify({ userId: credentials!.userId, password: credentials!.password, }), headers: { 'Content-Type': 'application/json' }, }); const user = await res.json(); // 로그인 성공 시 사용자 객체를 반환하고, 실패 시 null을 반환 if (res.ok && user) { console.log('ok user', user); return user; } else { console.log('error user', user); return false; } }, }), ], secret: process.env.NEXTAUTH_SECRET, // session: { // strategy: 'jwt', // maxAge: 0, // 브라우저가 닫히면 세션 종료 // // updateAge: 24 * 60 * 60, // 24시간마다 세션 갱신 (옵션) // }, callbacks: { async jwt({ token, user }) { // 사용자 로그인 시 토큰 설정 if (user) { return { ...token, accessJwt: user.result?.accessJwt, refreshJwt: user.result?.refreshJwt, companyId: user.result?.companyId, userName: user.result?.userName, accessTokenExpires: Date.now() + 3600 * 1000, }; } // 토큰 만료 확인 및 리프레시 if (Date.now() > token.accessTokenExpires!) { const newAccessJwt = await refreshAccessToken(token.refreshJwt!); return refreshAccessToken(newAccessJwt); } return token; }, async session({ session, token }) { if (token && token.accessJwt) { const customUser = session.user as User; if (!customUser.result) { customUser.result = { accessJwt: '', refreshJwt: '', companyId: '', userName: '', }; } customUser.result.accessJwt = token.accessJwt; customUser.result.refreshJwt = token.refreshJwt; customUser.result.companyId = token.companyId; customUser.result.userName = token.userName; session.user = customUser; } return session; }, }, }); NEXT_PUBLIC_BACKEND_URL 환경변수는 별도의 백엔드를 구성한 주소이구요 배포는 도커를 사용했습니다.FROM node:20.10 as builder # pnpm 설치 RUN npm install -g pnpm WORKDIR /usr/src/app COPY package*.json ./ RUN pnpm install ARG NEXT_PUBLIC_BACKEND_URL ARG NEXTAUTH_SECRET COPY . . RUN NEXT_PUBLIC_BACKEND_URL=https://${NEXT_PUBLIC_BACKEND_URL} NEXTAUTH_SECRET=${NEXTAUTH_SECRET} pnpm run build FROM node:20.10 RUN npm install -g pnpm WORKDIR /usr/src/app COPY --from=builder /usr/src/app/package*.json ./ RUN pnpm install --prod COPY --from=builder /usr/src/app . # COPY --from=builder /usr/src/app/.next ./.next EXPOSE 3000 CMD ["pnpm", "run", "dev"]NEXTAUTH_SECRET은 프론트 주소를 도커 실행 시 넣어줘야 한대서 도커 실행 할 때 환경변수로 따로 넣어줬구요Docs, Stackoverflow, ChatGPT 등 여러 방면으로 찾아봤는데 해결이 안되더라구요..강의하고는 별개 내용이긴 한데 더이상 물어볼 데가 없어서 강사님께 여쭈어봅니다..
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
502 bad gateway
강사님 안녕하세요강사님 강의 덕분에 저 혼자서 페이지도 만들고 nginx 사용해서 서버까지 배포해보았습니다.다름이 아니라 3일전 까지만 해도 느리긴 했지만 잘 되던 서버가오늘 서버내의 기능을 사용할려고 하니 502 bad gateway를 내 뱉으면서 멈춰버립니다.(되다가 안되다가 반복함)그래서 error 로그를 찾아보니2023/11/01 00:20:22 [error] 10930#10930: *232 upstream prematurely closed connection while reading response header from upstream라고 뜨네요 3일동안 해봤는데 헛발짓만 했네용..gpt한테 물어봐도 메모리 리소스, 네트워크 문제 , 응답시간 문제 등 이라곤 하는데 메모리랑 네트워크에는 아무런 문제가 없는거 같습니다.3일전까지만 해도 잘되던 서버가 안되니까 많이 답답하네요..
-
미해결
Docker container로 되어 있는 프로그램을 돌리려고 하는데 해결되지 않는 문제가 있습니다.
이런 것을 물어봐도 될까 모르겠습니다만, 진짜 1년이상 가는 삽질의 끝에 어디서 부터 어디를 파야 하는지 도무지 감을 잡지 못해서 여기다가 물어보게 되었습니다.일단 저는 카페24에서 호스팅 서비스를 이용해서 가상 서버 공간을 따로 받았고, centos 7에서 docker와 docker-compose까지는 설치를 했습니다. 그리고 나서 가상화 서버에다가 docker container가 아닌, 그냥 install 명령으로 httpd라고 아파치 서버를 설치해서 일단 홈페이지에 접속하면 아파치 기본 정보는 보이게 만들어 놓는 데는 성공했습니다.문제는 제가 전자연구노트를 설치해 보려고 해서 다음과 같은 과정을 거치면서 상당한 시행착오가 일어나게 되었습니다. 먼저 indigo ELN이라고 해서 오픈소스로 배포 중인 전자 연구노트입니다. 여기서 하나 살펴 보자고 하면, 일단 git hub에 공개적으로 공개되어 있는 물건이기도 합니다. 먼저 git hub에 있는 원본의 파일을 일단 가지고 오는데 까지는 그렇게 까지 큰 문제가 없기는 했습니다. 그리고 나서 다음으로 docker-compose up -d 명령을 사용해서 다음과 같이 도커를 작동 시키는 데 까지도 성공했습니다.실제로 docker ps 명령을 가지고 쳐 보면, 위 스크린샷에서 볼 수 있는 것과 같이 일단 indigo ELN을 구성하고 있는 4개의 도커는 작동을 하고 있는 것을 확인할 수 있습니다. 문제가 그렇다고 해서 접속을 하게 되면 전혀 안되냐 하면, 도커 이미지 속에 있는 index.html파일까지 접근이 되는 것을 확인할 수 있고, 제가 설정해 놓은 문구까지 확인을 할 수 있었습니다. 문제는 8080포트를 쓰고 있는 database의 도커 콘테이너에 접속해서 가지고 있는 콘텐츠를 가지고 와야 하는데 여기서 부터 해결할 수 없는 에러가 발생을 하고 있는 것 입니다. 무엇이 문제인지 몰라서 CORS에러인가 해서 건드려 보면, 삽질이 되고, 다른 어기서 문제인가 해서 보면 그것도 아니고, 거기다가 또 문제라면 문제가 있습니다. 이렇게 파이어폭스의 개발자 콘솔을 보면, invalid host header라고 계속 뜨다가 저런 에러가 터지면서 제가 넣어놓은 문구만 뜨고, 나머지 내용은 전혀 볼 수 없는 상황이 계속되고 있습니다. 당장의 해결이 어렵다고 해도, 어디서 부터 어디를 건드려야 할지 모르는 상황이 되어서 그런데, 여기 인프런에서 관련된 지식이 없는지 그거라도 알아보고자 합니다. 여기저기 검색하고 chat GPT를 사용해도 속 시원한 해결책은 나오지 않고, 중구난방으로 얽히기만 계속 하고 있습니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
쿠폰 발급을 api로 제공할 경우, client에서 쿠폰 발급 여부를 확인할 수 있는 방법 문의드립니다.
안녕하세요. 강의 잘 들었습니다.강의 들으면서 궁금증이 생겼는데, 만약에 쿠폰 발급 기능을 API로 제공한다고 가정하면client -> 쿠폰 발급 기능 API 호출이 이루어지고쿠폰 발급 기능 API에서는 쿠폰 발급 여부를 확인하고 kafka로 produce하게 되는데, 이때는 실제로 쿠폰이 발급된 상태는 아닐 수도 있을 것으로 예상됩니다(실제 쿠폰이 발급되는 시점은 consumer에서 작업이 정상적으로 완료되어야하므로 트래픽이 많거나 하는 경우 시간차이가 더 심할 것으로 예상됩니다) 이러면 쿠폰 발급 기능 API에서 응답값은 어떤 값을 줘야할까요?쿠폰 발급 여부에서 발급이 가능하다면 쿠폰 발급되는것은 확정이기 때문에 발급되었다는 정보?쿠폰 발급 여부에서 발급이 가능하지만 추가적으로 polling해서 client 쪽에서 확인하도록 처리?제가 생각했을땐 위의 2가지정도로 가능할 것 같은데 강사님 의견이 궁금합니다..! 감사합니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
예제 프로젝트 상에서의 Kafka 사용시 궁금한점
강의 잘 듣고 있습니다. 질문사항이 두개 있습니다.1.4강의 [문제점] 영상에서 쿠폰생성 10000개 요청으로 인해 mysql이 1분에 100개의 insert가 가능하다고 가정할 시 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행' 된다고 하셨는데요.예제로 사용하신 Kafka 사용 예제에서는 Consumer 프로젝트도 어차피 API프로젝트와 같은 DB를 바라보고 있으므로, 어차피 Kafka를 사용하여도 '주문생성/회원가입요청이 타임아웃 또는 10분뒤에 실행'되지 않나요? 왜 여쭤보냐면, 강의 내에서 Kafka 미사용시 주문생성/회원가입요청의 타임아웃 및 10분뒤 실행에 대한 해결책을 Kafka로 사용하셔서 문의드립니다.2.5강의 [Consumer 사용하기] 영상을 보면 API 프로젝트 Consumer 프로젝트가 별개로 존재합니다.그러므로 API프로젝트의 테스트 케이스가 종료되어도 Consumer 프로젝트는 이미 Kafka로 100개의 데이터가 스트림으로 들어오는 상태이므로, 테스트케이스가 종료되어도(즉, API프로젝트가 종료되어도) Cunsumer 프로젝트는 종료가 되지 않은 상태이므로 100개의 쿠폰이 DB에 생성이 되어야 하는게 아닌지요?왜 여쭤보냐면, 강의 내에서는 API프로젝트가 종료되면 Consumer 프로젝트도 작업이 멈추는 현상이 있어서 문의드립니다.
-
해결됨도커 쓸 땐 필수! 도커 컴포즈
도커 컴포즈 그대로 해서 docker-compose up -d 명령어 쳤는데, 프론트엔드랑 몽고디비는 up 상태가 되는데, 백엔드에서 몽고디비 커넥션이 안되네요
version: '3' services: frontend: image: subicura/guestbook-frontend:latest ports: - 60000:3000 environment: - PORT=3000 - GUESTBOOK_API_ADDR=backend:5000 backend: image: subicura/guestbook-backend:latest environment: - PORT=5000 - GUESTBOOK_DB_ADDR=mongodb:27017 mongodb: image: mongo:4 ports: - "27017:27017" volumes: - db_data:/data/db volumes: db_data: {}에러는 아래와 같이 뜨고 있어요! backend_1 | Debugger listening on ws://127.0.0.1:9229/b66de091-4ab3-4940-99cf-a5048b8939dbbackend_1 | For help see https://nodejs.org/en/docs/inspectorbackend_1 | App listening on port 5000backend_1 | Press Ctrl+C to quit.backend_1 | Disconnected: unable to reconnect to mongodb://mongodb:27017/guestbookbackend_1 | /backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:474backend_1 | throw err;backend_1 | ^backend_1 | backend_1 | Error: Disconnected: unable to reconnect to mongodb://mongodb:27017/guestbookbackend_1 | at NativeConnection.db.on (/backend/routes/messages.js:10:11)backend_1 | at emitNone (events.js:106:13)backend_1 | at NativeConnection.emit (events.js:208:7)backend_1 | at NativeConnection.set (/backend/node_modules/mongoose/lib/connection.js:119:12)backend_1 | at /backend/node_modules/mongoose/lib/connection.js:529:26backend_1 | at err (/backend/node_modules/mongoose/node_modules/mongodb/lib/utils.js:415:14)backend_1 | at executeCallback (/backend/node_modules/mongoose/node_modules/mongodb/lib/utils.js:404:25)backend_1 | at err (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:293:21)backend_1 | at connectCallback (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:249:5)backend_1 | at process.nextTick (/backend/node_modules/mongoose/node_modules/mongodb/lib/operations/mongo_client_ops.js:471:7)backend_1 | at combinedTickCallback (internal/process/nexttick.js:132:7)backend_1 | at process._tickCallback (internal/process/next_tick.js:181:9)
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
인자에 객체 값을 넣는 이유
인자에 객체 값을 넣는 이유가 안전하기 때문이라고 하셨는데 정확히 어떤 부분이 안전한지 알려주실 수 있나요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
쿠폰 카운트를 Redis에 의존하고 있는데요
만약 Redis에 장애가 발생한다면 2차 장치로 DB Count에 의존할 수 밖에 없는걸까요?실무에선 어떻게 대응하시는지 궁금합니다!
-
미해결
M2 Ventura 13.5.1 colima 실행 오류
colima 를 통해서 doker에 oral 11g를 사용하려고 하는데요 colima start 시엔 되는데 저렇게 하면 안됩니다ㅠ그리고 start로 그냥 실행 시켜서docker run --name oracle -d -p 1521:1521 jaspeen/oracle-xe-11g도커 오라클 까진 Ps로 보이고 잘 설치되지만 docker exec -it oracle sqlplus이걸 했을때 아이디 system / 패스워드 oracle 해도 자꾸 접속이안되는데 ㅠㅠ 해결방법 있을까요 ?
-
미해결
M2 Ventura / Doker 실행 오류 문의드립니다
안녕하세요 이번에 M2 air 를 구매 후 열심히 교육 듣고있는데 처음엔 됬는데 다시 실행하려 보니까 안되서요몇번 노트북을 초기화 후에 재설치를 해도 똑같네요ㅠㅠ이유를 모르겟는데 .. 혹시 해결방법 아는 방법이 있을까요 docker login 진행 현재 구글 Authernicator 로 2차 인증까지 해놓은 상태이고 pc에 docker 모두 실행시켜서 로그인도 완료 된 상태입니다.docker 앱 종료 후 동일하게 진행 하더라도 저렇게 나오더라구요해당 토큰관련 오류도 확인해봤으나 이상이 없는데 무엇이 문제일까요ㅠㅠ