JSCODE 박재성
@jscode
수강생
30,433
수강평
2,238
강의 평점
4.9
[Sites]
Youtube 바로가기
LinkedIn 바로가기
[Career]
現) JSCODE - 대표 멘토, CEO
前) (주)트라이포드랩 - CTO
前) (주)온리원유니버스 - CTO
前) 달리(DALY) - CTO
前) 팀메이트(Teammate) - CEO
[Books]
『Do it! JSCODE의 AWS 입문』, 이지스퍼블리싱 (2025.05)
[ETC]
- 기업 대상 개발 컨설팅 및 코딩 교육 활동
강의
로드맵
전체 8수강평
- AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
- 비전공자도 이해할 수 있는 AWS 입문/실전
- 비전공자도 합격하는 개발자 이력서/포트폴리오 작성법
- AWS SAA-C03 자격증 벼락치기 - 딱 163문제로 2주만에 합격하기
- 비전공자도 이해할 수 있는 AWS 입문/실전
게시글
질문&답변
Docker Desktop 설치 관련 질문드립니다!
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~connectex 오류는 kubectl과 쿠버네티스 클러스터 간의 버전 호환 문제 때문에 발생한 것으로 보이네요 !kubectl은 클러스터의 마이너(minor) 버전 차이가 1 이내에 있는 버전을 사용해야 해요 ~예를 들어 클러스터가 v1.34라면 kubectl은 v1.33, v1.34, v1.35를 사용할 수 있는 식이에요!다만 kubectl 1.35를 공식 페이지에서 별도로 다운받으셨을 때 connectex 오류가 발생한 건, kubectl 자체의 버전 문제라기보다는 kubectl이 바라보는 클러스터 주소 설정(kubeconfig)이 제대로 잡히지 않았을 가능성이 높아요 !Docker Desktop에서 Kubernetes를 활성화하면 kubeconfig가 자동으로 설정되는데, 별도로 kubectl을 설치하면 이 설정이 연결되지 않아서 오류가 나는 경우가 있거든요 !그래서 Docker Desktop에서 Enable Kubernetes를 활성화한 뒤 자동으로 설치된 kubectl 1.34를 사용하시는 게 가장 안정적이에요 !정상 확인되셨다면 그대로 진행하시면 돼요 :)추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요 ~
- 0
- 2
- 18
질문&답변
액세스 키 등록하는 시점 관련 질문이 있습니다.
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~4번 단계에서 Spring Boot 프로젝트를 빌드하고 docker push까지 하는 과정은 로컬 환경(본인 컴퓨터)에서 진행하는 작업이에요 !로컬 환경에서는 이미 AWS CLI 설치와 액세스 키 등록이 되어 있는 상태라서 aws ecr get-login-password 명령어와 docker push가 가능한 거예요~그리고 5번 단계에서 나오는 "AWS EC2에서 AWS CLI 설치 및 액세스 키 등록하기"는 EC2 서버 안에서의 설정을 말하는 거예요 !EC2 서버에서도 AWS ECR로부터 이미지를 pull 받으려면 ECR에 로그인을 해야 하는데, 이를 위해 EC2 서버에도 AWS CLI를 설치하고 액세스 키를 등록해야 하는 거예요 :)정리하자면 액세스 키는 pull에만 관련된 게 아니라, AWS 서비스(ECR 포함)에 접근하기 위한 인증 수단이에요 !push든 pull이든 ECR에 접근하려면 해당 환경에 AWS CLI와 액세스 키가 설정되어 있어야 해요 ~ 로컬에서는 이미 설정이 되어 있었기 때문에 4번에서 바로 push가 가능했던 것이고, EC2에서는 아직 설정이 안 되어 있으니까 5번에서 새로 설치하고 등록하는 흐름인 거죠 :)추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 1
- 27
질문&답변
문제집
안녕하세요 현지님! 좋은 제안 해주셔서 감사합니다:D말씀해주신 부분도 고려해서 문제랑 해설을 분리하는 것도 내부적으로 검토해보겠습니다~!!다만, 현재 제작 중인 강의 일정이 있다보니 문제랑 해설을 분리해서 pdf로 제공하는 게시간이 조금 걸릴 수 있을 것 같아요ㅠㅠ!그래서 혹시 급하신 경우라면 아래 링크를 참고하셔서'홀수 페이지만' 또는 '짝수 페이지만' 인쇄하는 기능을 활용해보시는 건 어떠실까요~??https://blog.naver.com/jso15000/221268880492이 외로 또 필요하신 점 있으시면 편하게 말씀해주세요~~
- 0
- 2
- 32
질문&답변
kafka 실패 후 재시도 DLT 소비 무한으로 하는 현상이 발생합니다
안녕하세요 밍프런님! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~ "@RetryableTopic에 autoStartDltHandler = False 설정을 해주거나, @DLTHandler를 정의 해줘야 DLT 소비를 무한으로 하지 않는 것 같은데 뭔가 설정이 잘못 된게 있을까요? "-> 우선 수업 실습환경과 다른 버전으로 진행을 하셨는지도 확인을 해보시는 걸 추천드려요 !또한 에러 로그를 살펴보니 "No Acknowledgment available as an argument, the listener container must have a MANUAL AckMode to populate the Acknowledgment"라는 메시지가 보이는데요, 이건 AckMode 설정 관련해서 충돌이 발생한 것으로 보여요 ! 수업 자료대로 진행하면 정상적으로 동작해야 하는데, 혹시 application.yml이나 별도의 KafkaConfig 클래스에서 ack-mode를 manual로 설정하셨거나 다른 Kafka 관련 설정을 추가로 건드린 부분이 있으신지 확인이 필요할 것 같아요 !정확한 원인을 찾기 위해서는 실습을 진행하며 사용하신 build.gradle, EmailSendConsumer, EmailSendDltConsumer, EmailSendMessage, application.yml 전체 내용, 프로젝트 실행 시 콘솔에 찍히는 로그, 그리고 패키지 구조가 어떻게 되어 있는지를 공유해 주시면 더 정확한 답변을 드릴 수 있을 것 같아요 :)위 정보들을 확인해 보시고 추가로 궁금하신 점 있으시면 언제든 편하게 추가 질문 댓글 남겨주세요 ~강의에서 사용한 버전과 환경 위주로 확인해 보시는 걸 추천드려요 :)
- 0
- 2
- 36
질문&답변
AWS S3 문제 1번 질문
안녕하세요 woo132님! 질문 잘 해주셨습니다~!!말씀해주신 문제를 검토해본 결과 문제의 모호함으로 인해 헷갈릴 수 있는 여지가 있어아래와 같이 정오표를 추가했습니다!정오표 참고해서 문제 다시 한 번 수정해서 봐주세요:D불편을 드려 죄송합니다..!!(사진)
- 0
- 1
- 33
질문&답변
꼭 conf.d에 default 파일이 있는상태에서 시작해야하나요 ??
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~ "꼭 conf.d에 default 파일이 있는상태에서 시작해야하나요 ?? 저는 설정할때 그냥 conf.d에는 default.conf 는 따로 없는 상태로 availbe 폴더에 설정파일을 만들고 enable로 연결하는식으로 했는데 이렇게했을때 문제될게 잇을까요 ..?"-> 우선 말씀하신 방식으로 설정하셔도 전혀 문제 없어요 !Nginx 설정 방식에는 여러 접근법이 있는데요, 강의에서 사용한 방법과 질문자님이 사용하신 방법 둘 다 실무에서 많이 쓰이는 방식이에요 !중요한 건 Nginx가 최종적으로 읽어들이는 설정이 제대로 구성되어 있느냐인데, sudo nginx -t 명령어로 문법 검사를 해보시고 문제가 없다면 어떤 방식을 사용하든 정상적으로 동작해요 :) 추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 28
질문&답변
deploy.yml작성후 원격에 push불가
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~말씀해주신 에러 메시지를 보니 Personal Access Token의 권한 문제 같아요 ~workflow 권한을 체크하셨다고 하셨는데, 혹시 토큰을 발급받은 후에 git credentials를 새로 설정하셨나요 ~?이미 저장된 기존 토큰이 남아있어서 새로 발급받은 토큰이 적용되지 않았을 가능성이 있어요 !아래 방법 시도해보시는걸 추천드려요 !먼저 맥 환경이시면 키체인 접근에서 github.com 관련 항목을 삭제하시고, 윈도우 환경이시면 자격 증명 관리자에서 github 관련 자격 증명을 삭제해주세요 !그 다음에 다시 git push를 시도하시면 username과 password를 물어볼텐데, 이 때 password 자리에 새로 발급받은 토큰을 입력해주시면 돼요 !만약 이 방법으로도 안 되신다면 GitHub에서 토큰을 다시 한 번 발급받아보시는 것도 좋아요 !추가로 토큰 발급 시 repo 권한과 workflow 권한 둘 다 체크되어 있는지 꼭 확인해주세요 !또한 ssh가 아니라 강의방식 대로 충분히 CICD를 하실수 있어요 :)위 방법 시도해보시고 혹시 계속 안 되시면 언제든 편하게 추가 질문 남겨주세요 ~같이 해결해보도록 할게요 😊
- 0
- 2
- 29
질문&답변
예상 기출 문제 관련 질문
안녕하세요 study.aj97님! 질문 잘 해주셨어요~~자료에서 제공해드리는 문제는 시중에 나와있는 기출 문제와 가장 유사한 덤프 문제를 참고해서 변형해서 직접 만든 문제들입니다! 그래서 실제 시험 문제와 유사하게 문제들이 구성되어 있습니다~!!이 외로 또 궁금하신 점 있으시면 질문 남겨주세요~~
- 0
- 1
- 61
질문&답변
비전공자도 이해할 수 있는 AWS 입문/실전 강의의 PDF에서 ELB 페이지가 안맞습니다.
안녕하세요 다보님! 제보해주셔서 감사합니다!! 제가 빠르게 확인하고나서 수정한 뒤에 답글 달아놓겠습니다~!!불편을 드려 죄송합니다🙇♂
- 0
- 2
- 50
질문&답변
depends_on에 따른 컨테이너 실행 순서
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~ "healthcheck와 depends_on이 정확히 어떻게 동작하는 건가요?"-> 우선 이해하신 것처럼 condition: service_healthy 설정을 하면 my-db가 healthy 상태가 된 이후에 my-server 컨테이너가 시작되는 게 맞아요 ! 하지만 여기서 중요한 포인트는 "컨테이너 시작"과 "애플리케이션 실행"의 차이에요 !실제 동작 순서는 아래와 같아요 ~1. my-db 컨테이너가 먼저 시작2. healthcheck가 5초마다 mysqladmin ping을 실행하면서 MySQL이 준비됐는지 체크3. MySQL이 정상적으로 응답하면 my-db가 healthy 상태가 됨4. 그때 my-server 컨테이너가 시작됨5. my-server 컨테이너 안에서 Spring Boot 애플리케이션이 실행되기 시작로그에서 my-server가 먼저 보이는 것은 로그 출력 타이밍이나 버퍼링 때문이에요 !docker compose logs의 타임스탬프를 자세히 보시면 실제로는 my-db가 healthy가 된 이후에 my-server가 시작된 걸 확인하실 수 있어요 ~ my-db-1 로그는 2026-01-23T13:26:02부터 시작되고, my-server-1 로그는 2026-01-23T13:26:43부터 시작돼요 ! 약 41초 정도 차이가 나는 걸 확인하실 수 있죠 :) 추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 37




