묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
배열을 스웨거로 작성하는 법을 모르곘어요
퀴즈 4 풀고 있는데 1개 이상의 배열을 스웨거로 작성하는 법을 모르겠습니다.예를 들면[{name:"철수",age:2},{name:"훈이",age:3}] 이런거를 이런 예시를 가지고 2개의 배열로 나타내는 법을 모르겠습니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트폴리오 작성할 때 강의에서 배운대로 적어도 되나요?
포트폴리오 작성하고 있는데 강의에서 배운 내용들로 채워도 되나요? 아니면 선생님이 doc를 직접 찾아보라고 일일히 강의에서 설명하지 않은 내용들을 써야하나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
회원가입 누르면 404에러가 뜹니다 ;-;
안녕하세요 ;-;회원가입 누르니 404에러가 뜹니다..완성 코드랑 비교해서 봐도 똑같은데 어떤 문제인지 모르겠스빈다... next.js가 13이긴 합니다만 ;-; 그 이유 일까요?.. 어디를 살펴보면 될까요?;-;
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
redis 서버 추가시 할당량 에러
이번엔 제가 스스로 해보고 싶었는데 안되서 질문드립니다 죄송합니다 ㅜㅜredis 서버를 추가하는 도중에이런창이떠서이렇게 추가를 했더니....redis 서버가 추가가안되서 다시 요청하려고했더니Only one open service quota increase request is allowed per quota라고 뜨네요 ㅜㅜ 혹시 redis 서버를 추가할 수 있는 방법이 있을까요?
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
308 status code
안녕하세요. 백그라운드를 먼저 소개해드리자면,강사님께서 설명해주셨듯 http -> https로 리다이렉션을 시킬 때, 301 status code를 내뱉도록 만들었습니다. 테스트하다가 알게 됐는데,GET 메서드의 경우에는 잘 리다이렉션되지만, POST PUT 메서드의 경우 GET 메서드로 바뀐채 리다이렉션되더라고요. rfc 문서에서는 아래와 같이 설명하고 있습니다.| Note: For historical reasons, a user agent MAY change the request method from POST to GET for the subsequent request. If this behavior is undesired, the 308 (Permanent Redirect) status code can be used instead. 이에 따라 http -> https로 리다이렉션을 시킬 때 POST나 PUT 인 경우 308 status code를 주려고 했으나, aws 공식문서에는 이를 지원하고 있지 않더라고요.참고 : https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#redirect-actions보안 그룹에서 http에 대한 요청 자체를 막는것도 하나의 방법이 될거 같긴한데, 강사님께서는 어떻게 해결하실지 궁금해서 질문 남겨봅니다.
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
ec2로 파일 업로드
섹션 8강의 1,2 부분을 보면 filezilla ?? 라는 프로그램을 사용해서 로컬 파일을 ec2에 업로드 하는 부분?? 이 나오는데, 이부분에 대한 설명은 따로 없으신게 맞죠? 제가 앞부분에서 놓친건가 해서요
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
client_loop: send disconnect: Broken pipe
안녕하세요 dev push 후 master 에 merge 중 에러가 나서 질문 드립니다! 섹션 4. Github Actions 를 이용한 배포자동화main branch 보호해주기 강좌를 보고 있는데요 client_loop: send disconnect: Broken pipe해당 에러가 나고 있지만domain 으로 접속해보니깐 수정한 텍스트 적용이 잘되더라구요 검색해보니https://may0301.tistory.com/10소켓이 닫혀서 nano ~/.ssh/config 파일에text editor에 Host * ServerAliveInterval 120 TCPKeepAlive no를 입력 해줘야한다고하는데 혹시 해당 에러가 나는 원인을 알수 있을까요?위에 검색한대로 소켓이 닫혀서 그럴까요?
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
안녕하세요 ECS를 활용한 ETL 작업 관련해서 질문 드립니다
현재 강사님의 강의를 듣고 크롤러와 ETL 배치 파이프라인을 ECS로 배포해서 사용해보려고 합니다한가지 궁금한 점이 있어 문의드립니다해당 크롤러와 배치 잡은 모두 api가 아닌 스크립트로 이루어져 있습니다. 이 경우, 클러스터 내 서비스는 생성할 필요 없이, 태스크로만 필요할 때마다 생성하면 되나요? 아님 서비스도 사용하면 좋을까요?
-
해결됨쥬쥬와 함께 하루만에 끝내는 스프링 테스트
Mysql테스트중 에러발생
2023-11-16 18:20:48 Creating network "fqata9qnvuci_default" with the default driver 2023-11-16 18:20:48 Creating fqata9qnvuci_local-db-migrate_1 ... 2023-11-16 18:20:48 Creating fqata9qnvuci_local-db_1 ... 2023-11-16 18:20:50 Creating fqata9qnvuci_local-db-migrate_1 ... error 2023-11-16 18:20:50 2023-11-16 18:20:50 ERROR: for fqata9qnvuci_local-db-migrate_1 Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists 2023-11-16 18:20:50 Creating fqata9qnvuci_local-db_1 ... done 2023-11-16 18:20:50 2023-11-16 18:20:50 ERROR: for local-db-migrate Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists 2023-11-16 18:20:50 Encountered errors while bringing up the project.위는 도커에서 발생하는 에러로그아래는 springboot에서 발생하는 에러로그입니다.18:20:50.925 [Test worker] ERROR tc.docker/compose:1.29.2 -- Could not start container java.lang.IllegalStateException: Container did not start correctly. r.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) 18:20:50.995 [Test worker] ERROR tc.docker/compose:1.29.2 -- Log output from the failed container: Creating network "fqata9qnvuci_default" with the default driver Creating fqata9qnvuci_local-db-migrate_1 ... Creating fqata9qnvuci_local-db_1 ... Creating fqata9qnvuci_local-db-migrate_1 ... error ERROR: for fqata9qnvuci_local-db-migrate_1 Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists Creating fqata9qnvuci_local-db_1 ... done ERROR: for local-db-migrate Cannot start service local-db-migrate: error while creating mount source path '/c/Users/Recorvery/Desktop/Workspace/dayonetest/db/flyway.conf': mkdir /c: file exists Encountered errors while bringing up the project. MYSQL 테스트하기를 따라하던중 에러가났습니다! 그전 강의들은 문제없이 잘봤습니다.뭐가 문제일까요 ㅠㅠ 안되서 복붙했는데도 안되네요 ㅠ https://github.com/ygy7265/dayonetest깃주소입니다.
-
미해결대세는 쿠버네티스 [초급~중급]
혹시 맥 M시리즈에서 쿠버네티스 로컬구성하는 방법에 대해서는 계획이 없으신가요 ??
혹시 맥 M시리즈에서 쿠버네티스 로컬구성하는 방법에 대해서는 계획이 없으신가요 ?? 강의를 듣고있는데 실습이 쉽지 않아서요
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
docker compose 를 통한 배포 관련 오류 문의
안녕하세요. 강사님django의 기능들이 너무 많아 전체 흐름이 기억 나지 않을 때 계속해서 보고 있습니다.항상 좋은 강의 감사드립니다.drf로 만든 부분을 이번에는 pytest로 테스트 코드를 작성해보려고 하는데요.docker-compose-test.yml로 작성한 test용 mysql container를 띄웠습니다.하지만 테스트 코드를 실행하면 접근할 수 없다는 에러가 발생됩니다."Access denied for user 'project'@'localhost' (using password: YES)")구글링을 해봤고, 그래서 다음 순서로 확인을 해봤습니다.host namedb namepasswordportprint 로 출력했지만 동일한 내용으로 확인되었습니다. .env 내용.env 를 사용하여 compose에게 환경 정보를 읽어오도록 설정했습니다. DJANGO_SECRET_KEY=... # COMMON DB_ENGINE='django.db.backends.mysql' # DEVELOP DB DEV_DB_HOST='db.mysql' DEV_DB_USER='project' DEV_DB_PASSWORD='a1s2d3f4' DEV_DB_NAME='account_book' DEV_DB_PORT='3306' # TEST DB TEST_DB_HOST='test.mysql' TEST_DB_USER='test' TEST_DB_PASSWORD='a1s2d3f4' TEST_DB_NAME='test' TEST_DB_PORT='3310'docker-compose-test.yml 내용과 실행 명령어실행 명령어: docker-compose -f docker-compose-test.yml up위 명령어를 실행한 후 docker container ls 로 확인하면 다음 상태가 뜹니다.docker-compose-test.yml 내용은 다음과 같습니다. version: "3" services: test.mysql: container_name: test.mysql image: mysql:8.0.32 command: --authentication_policy=mysql_native_password restart: always environment: MYSQL_ROOT_PASSWORD: ${TEST_DB_PASSWORD} MYSQL_USER: ${TEST_DB_USER} MYSQL_PASSWORD: ${TEST_DB_PASSWORD} MYSQL_DATABASE: ${TEST_DB_NAME} TZ: Asia/Seoul volumes: - test_mysql_db:/var/lib/mysql ports: - ${TEST_DB_PORT}:3306 expose: - ${TEST_DB_PORT} volumes: test_mysql_db: django의 설정 부분은 backend/config/settings 밑에 base.py , develop.py, test.py 로 나눴습니다.위 docker compose는 아래 test.py 에 있는 db 정보와 일치하도록 했습니다.from config.settings.base import * INSTALLED_APPS += [ "debug_toolbar", ] MIDDLEWARE = [ "debug_toolbar.middleware.DebugToolbarMiddleware", ] + MIDDLEWARE # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases DATABASES = { "default": { "ENGINE": env.str("DB_ENGINE"), # "HOST": env.str("TEST_DB_HOST"), "HOST": "localhost", "USER": env.str("TEST_DB_USER"), "PASSWORD": env.str("TEST_DB_PASSWORD"), "NAME": env.str("TEST_DB_NAME"), "PORT": env.int("TEST_DB_PORT"), "TEST": {"NAME" : "test"} }, } print(DATABASES) # 아래 내용이 출력됩니다. """ {'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'USER': 'test', 'PASSWORD': 'a1s2d3f4', 'NAME': 'test', 'PORT': 3310, 'TEST' : {'NAME' : 'test'}, } } """host를 env.str("TEST_DB_HOST")로 하면 test.mysql 을 찾을 수 없다고 뜹니다. 하지만 localhost로 하면 "Access denied for user 'test'@'localhost' (using password: YES)") 에러가 발생됩니다.mysql만 docker compose 로 띄우고, pytest로 코드를 실행했습니다. db 접속은 @pytest.mark.django_db 데코레이터를 사용했습니다. pytest.ini 설정[pytest] DJANGO_SETTINGS_MODULE = backend.config.settings.test django_debug_mode = true addopts = --create-db --no-migrations python_files = "test_*.py" markers = signup--no-migrations 옵션을 제거해도 동일한 에러가 발생됩니다. 디렉토리 구조 . ├── Dockerfile ├── Dockerfile.dev ├── README.md ├── backend │ ├── __init__.py │ ├── common │ │ ├── conftest.py │ │ └── models.py │ ├── config │ │ ├── __init__.py │ │ ├── asgi.py │ │ ├── settings │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── develop.py │ │ │ ├── production.py │ │ │ └── test.py │ │ ├── urls.py │ │ └── wsgi.py │ ├── manage.py │ ├── static │ ├── templates │ └── users │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── serializers.py │ ├── test │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_api.py │ │ └── utils.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── docker-compose-dev.yml ├── docker-compose-test.yml ├── docker-compose.yml ├── poetry.lock ├── pyproject.toml └── pytest.ini 지난 번 mysql docker 관련하여 질문드렸을 때 port 부분을 알려주셔서 port 부분 정보는 일치하도록 했으나, 제 눈에는 정보가 다른 걸 찾기 어려워 혼자 해보다가 결국 올립니다 ㅠㅠ 읽어주셔서 감사합니다 ㅠㅠ
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
etcd 강좌는 어느 챕터에 있을까요?
강의를 열심히 보고 etcd backup and restore 를 봤습니다. 그런데 문제를 푸는 과정은 보여 주셨는데 etcd에 대한 강의가 어느 부분에 있는지 궁금 하여 문의드립니다.
-
미해결대세는 쿠버네티스 [초급~중급]
kubernetes timezone
강사님 안녕하세요k8s 강좌로 항상 큰 도움을 받고 있습니다. 다름이 아니라 이번에는 k8s timezone 관련해서 여쭤보고 싶은 부분이 있는데요..컨테이너별로 timezone을 설정하는 내용은 확인했는데container에 timezone을 asia/seoul로 설정했더라도파드 생성 yaml 스크립트를 보면creationTime이 UTC값으로 들어있더라구요kubernetes 클러스터가 UTC값을 사용하는 것 같은데혹시 kubernetes 자체의 timezone을 확인할 수 있는 명령어라던가timezone을 UTC에서 다른 것으로 변경이 가능할까요? 항상 너무 감사드립니다.오늘도 좋은 하루 되시길 바랍니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
테이블 관계
안녕하세요예를 들어 MockUserRepository를 만들고 그 안에 mydb라는 데이터가 있습니다.만약 기존 User 테이블이 Post 테이블과 관계가 맺어져 있다면 Post까지 mydb에 담아야 하나요?mydb = [{ id= '', name:='', password= '' }] 이렇게 해야 하는 건지아니면 mydb = [{ id: '', name:'', password: '', post: { id: '', title: ''}] 이렇게 작성해야 하는 건지 궁금합니다!! 그리고 userService에서 postService를 사용하는 로직이 있는데 userService 테스트시 MockPost 테이블까지 같이 구현해야 하는 건지..아니면 다른 방법이 있는 건지ㅜㅜ 궁금하네요 하나만 더 여쭤보자면.. ㅜㅜ 제가 이해가 잘 안가서 그러는데 controller.ts를 테스트할 때는 service를 mock하고, service.ts를 테스트할 때는 데이터베이스를 mock해서 사용하는 건가요??
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
redis Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) 에러
안녕하세요 redis-serve 실행까지는 잘되는데vsCode 에서 yarn test 만 하면 꼭 아래와 같은 에러가 발생합니다.기본포트로 할때는 되다가6380 포트로 바꾼이후로 잘안되고 redis 에서도바뀐포트로 연결하고 비밀번호까지 쳤는데 아래와 같은 에러가 발생합니다.그리고 제소스가 에러가 나서제공해주신 express 소스를 압축을 풀어도 같은 에러가 발생을 합니다. 혹시몰라 build 파일을 삭제하고 재빌드후 다시 켜도 아래와 같은 에러가 나는데혹시 이유를 알 수 있을까요? ● POST /messages › responds with a success message Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) at RedisSocket.<anonymous> (node_modules/@redis/client/dist/lib/client/index.js:396:14) at RedisSocket._RedisSocket_connect (node_modules/@redis/client/dist/lib/client/socket.js:166:18) at Commander.connect (node_modules/@redis/client/dist/lib/client/index.js:184:9) ● GET /messages › responds with all messages Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) at RedisSocket.<anonymous> (node_modules/@redis/client/dist/lib/client/index.js:396:14) at RedisSocket._RedisSocket_connect (node_modules/@redis/client/dist/lib/client/socket.js:166:18) at Commander.connect (node_modules/@redis/client/dist/lib/client/index.js:184:9) ● Test suite failed to run thrown: "Exceeded timeout of 5000 ms for a hook. Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout." 18 | }); 19 | > 20 | afterAll(async () => { | ^ 21 | await client.flushDb(); 22 | await client.quit(); 23 | }); at Object.<anonymous> (app/index.test.ts:20:1)Test Suites: 1 failed, 1 total FAIL app/index.test.ts (101.064 s) ● POST /messages › responds with a success message Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) at RedisSocket.<anonymous> (node_modules/@redis/client/dist/lib/client/index.js:396:14) at RedisSocket._RedisSocket_connect (node_modules/@redis/client/dist/lib/client/socket.js:166:18) at Commander.connect (node_modules/@redis/client/dist/lib/client/index.js:184:9) ● GET /messages › responds with all messages Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) FAIL app/index.test.ts (100.278 s) ● POST /messages › responds with a success message Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) at RedisSocket.<anonymous> (node_modules/@redis/client/dist/lib/client/index.js:396:14) at RedisSocket._RedisSocket_connect (node_modules/@redis/client/dist/lib/client/socket.js:166:18) at Commander.connect (node_modules/@redis/client/dist/lib/client/index.js:184:9) ● GET /messages › responds with all messages Unhandled error. ([ErrorReply: ERR wrong number of arguments for 'auth' command]) at RedisSocket.<anonymous> (node_modules/@redis/client/dist/lib/client/index.js:396:14) at RedisSocket._RedisSocket_connect (node_modules/@redis/client/dist/lib/client/socket.js:166:18) at Commander.connect (node_modules/@redis/client/dist/lib/client/index.js:184:9) ● Test suite failed to run thrown: "Exceeded timeout of 100000 ms for a hook. Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout." 18 | }); 19 | > 20 | afterAll(async () => { | ^ 21 | await client.flushDb(); 22 | await client.quit(); 23 | }, 100000); at Object.<anonymous> (app/index.test.ts:20:1)
-
해결됨그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
컨테이너 런타임에 대한 질문이 있습니다.
안녕하세요! 쉽배쿠부터 수업을 쭉 진행하고 있는데, 계속 의문점이 드는 부분이 있어 이것저것 시도해 보다가 질문드립니다..!쉽배쿠 수업 당시, "컨테이너 런타임에 문제가 생겼다면?" 을 진행하면서 마스터 노드의 컨테이너 런타임인 containerd를 stop하는 테스트를 진행 했었습니다.이를 통해 컨테이너 런타임을 지정할 때 containerd를 사용하는 것이 도커를 컨테이너 런타임으로 사용하는 것 보다, 더 안정성 있게 동작할 수 있다는 점도 알게 되었습니다.당시 전체적인 구상도를 보며, VM의 마스터노드, 워커노드 그리고 파드와 컨테이너까지 "아 Docker는 사용되는 부분이 없구나" 라고 생각했습니다. (실제로 그림에도 도커는 없었으니까요 🙂 )하지만, 이번 그배쿠 강의를 들으면서 환경 설정을 하는 쉘 스크립트에 도커를 설치하는 부분이 존재했고, 실제 docker --version / docker info 등의 명령어를 실행하니 도커가 동작 중이라는 것을 확인했습니다.여기서 들게 된 의문점은 다음과 같습니다!현재 그배쿠 강좌는 컨테이너 런타임으로 무엇을 사용하나요? 또한 쉽배쿠 강좌에서는 실제로 도커를 어디에도 사용하지 않았나요? 쿠버네티스가 현재 도커 지원 중단(컨테이너 런타임으로써의 중단)한 것으로 알고 있습니다. 따라서 현재 그배쿠 강좌에서 컨테이너 런타임으로 "컨테이너디"를 사용하는 것이 맞다면 "컨테이너디"가 알아서 컨테이너를 관리해줄 것으로 생각되는데, 현재 설치된 도커는 어떤 역할을 수행하는 것인가요? 컨테이너의 관리를 위해서는 도커와 컨테이너디 둘 다 설치하는 것은 필수적인가요?어느정도 쓰다보니까 이해가 된 것 같기도 한데,,, 아리송하여 질문을 드립니다. 감사합니다!
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
dit d 차이점 질문
선생님 안녕하세요좋은 강의 감사합니다. 기초적인 질문일수도 있는데 조금 헷갈려서요 docker run -d -p 9999:80 --name httpdweb3 myweb3이라고 썼을때와 docker run -dit -p 9999:80 --name httpdweb3 myweb3라고 썼을때의 본질적인? 차이점이 무엇인거죠?it가 터미널 입력을 열어놓고 가상 터미널을 할당하는 옵션 등등 인건 수업자료에 나와있는데, 조금 더 실질적인 차이..?가 잘 안와닿아서요. 질문드립니다!
-
해결됨풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
section 7 포트? 오류
안녕하세요 섹션 7 dockerfile 에서, 웹브라우저 주소 창에 IP주소:9999 를 입력해도 EC2 서버가 열리지 않아서 질문드립니다. 보안그룹에 들어가보니, 이렇게 되어있는데 맞는 설정인가요? 인터넷에 보니, 1. aws 가입2. ec2 인스턴스 생성 및 탄력적 ip와 연결 (ubuntu free tier로 생성) 3. 인바운드 규칙 80(기본) 포트번호 추가(0.0.0.0)3. 보안그룹 인바운드 규칙에 포트번호 9999 추가 (사용자 지정 TCP) 이렇게 되어있는데, 저기 아레 규칙 추가 를 클릭하고 사용자 지정 TCP를 선택해서 포트번호 9999 라고 추가를 해줘야 하는건가요? (강의에 이 부분이 따로 안나와있어서요 )
-
해결됨대세는 쿠버네티스 [초급~중급]
1.27 Volume Longhorn 설치 오류
안녕하세요 강사님 Volume 강의 실습을 위해 master 노드에서 아래의 명령어 실행하였으나 에러가 발생하여 문의 드립니다.node1, node2에서는 설치가 정상적으로 되고 있습니다. yum install -y iscsi-initiator-utils
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의대로 트래비스ci 와 aws elastic beanstalk에 포트까지 다 맵핑했는데
강의와 다르게 도메인을 가면 저는 위 화면이 나옵니다.learn react 라는 화면이 안뜨고 이런 화면이 뜨는 이유는 뭘까요..