자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
5강을 듣다가 제 화면과 강사 선생님과 화면이 달라서 프로젝트를 삭제 했습니다. 그런 뒤 다시 프로젝트를 오픈했는데 저런 화면이 뜨면서 실행되지 않고 오류가 생깁니다. 프로젝트를 삭제하고 캐쉬도 삭제 하고, 심지어 인텔리제이도 삭제해봤는데 여전히 저런 화면이 뜹니다. 어떻게 해야되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수강기간을 생각하지 못하고 네트워크 스페셜이랑 동시에 구매했더니 강의를 다 듣지 못했습니다...ㅜㅜ 수강기간 연장부탁드립니다..
안녕하세요 강의 잘 듣고있습니다! 그라파나 대시보드 관련해서 싱크가 안맞는? 문제가 있어서 질문드립니다! 제가 테스트로 nginx 파드를 scale을 통해 2개로 늘렸다가 다시 1개로 변경했는데 여전히 2개의 파드가 그라파나에서 출력됩니다. 대시보드를 지우고 다시 만들어도 동일하게 2개의 파드가 나오는데 어떻게 해결할 수 있을까요? (프로메테우스나 EKS 환경에서 확인해보면 정확히 1개 의 파드만 있는 상황)
안녕하세요! 프로메테우스의 아키텍쳐의 문제는 클러스터링(여러 노드에 분산)이 되지 않아 단일 노드에서 모든 메트릭이 처리되므로 대규모 환경에서 성능 저하 가 발생할 수 있는것으로 알고있습니다. - AMP & AMG 수업 당시 내용입니다 😀 하지만 실제로 헬름으로 배포해보니 각 노드로 쪼개져서 배포가 되더라구요..??왜 이런건지 궁금합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요. 태현님, 좋은 강의 감사합니다. 오늘 BookService 코드를 같이 타이핑하던 도중 의문이 생겼습니다. 뭔가 점점 BookService에서 의존을 주입받는 레포지토리가 점점 늘어나고 있음이 그 원인이었는데요. 보통 커머스 서비스의 앱에서 주문 상세 버튼을 누르면 다음과 같은 정보들이 나오는데요. 가게 정보 메뉴 정보, 주문 자체의 정보(주문 일시, 주문번호) 메뉴와 옵션 선택 정보 쿠폰 적용 주문자의 개인정보(주소 및 연락처) 등등.. 물론 내부적으론 어떻게 해결이 되어있겠지만 벌써 주문 상세를 보여주는 기능을 처리하기 위한 서비스에서 엄~청 많은 레포지토리를 가져와야할 것 같은? 느낌이 듭니다. 이런 경우엔 의존 주입을 받는 객체의 갯수의 상한선을 따로 두고 개발하실까요? 아니면 이런 문제를 해결하는 방법론 같은 것이 이미 있나요? 혹은 제 생각엔 짤막하게 배운 디비 지식으로 주문과 같은 것은 반정규화로 테이블을 합쳐서 그 테이블과 대응되는 하나의 레포지토리로만 가져오나요? 감사합니다.
안녕하세요, 아래 강의를 듣다가 궁금한 점이 있어 글을 남깁니다. [실습] Bastion host와 NAT Gateway를 통한 Private EC2 인스턴스의 외부 통신 구성 위 내용에서 private subnet 에 private instance들을 생성할 때 방화벽(보안 그룹)을 새로 생성하여 ssh, https, http 를 모두 0.0.0.0/0으로 열어주셨는데요. (그리고 위 보안그룹 명을 private-ec2-sg로 정의) CIDR 블록 값인 0.0.0.0/0 으로 설정하지 않고 public instance 생성 당시에 같이 신규로 생성하였던 보안그룹 명인 public-ec2-sg로 지정해도 현재 실습의 내용과 동일한 내용이 맞을까요? private subnet 안에서 생성한 인스턴스는 public subnet에서 온 트래픽만을 허용하고(bastion host) 그 외의 접속은 불가능하게 하도록 보안그룹 설정을 할 때, 소스 부분을 public instance에 연결한 보안 그룹 으로 연결한다는 내용을 보았는데, 실습에서는 private용으로 신규로 생성하기에.. 둘이 결과적으로는 같은 내용인지 아닌지 궁금하여 질문드립니다 !
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
14강 유저 업데이트 부분에서 PATCH가 아닌 PUT을 사용하는 이유가 궁금합니다!! 제가 알기로는 PATCH는 일부 수정이 가능하고, PUT은 완전 덮어쓰기라고 알고 있는데, PATCH가 아닌 PUT을 사용하는 이유가 무엇인가요?? 만약 PATCH 사용이 불가능한게 아니라 가능할 경우 코드가 어떻게 되는지도 궁금합니다! 항상 감사합니다!!
안녕하세요! 멋진 강의 잘 듣고있습니다! 문득 강의를 보다 든 생각인데, 파드가 다른 노드에 재 생성되었을 때 다시 해당 hostPath로 생성된 볼륨을 사용하기 위해 hostpath간에 마운트하는 것이 일반적인 상황인지 궁금합니다. 제 생각으로 노드의 생명주기에 종속적으로 만들어진 hostPath가 A노드의 hostPath 볼륨을 B노드가 마운트해서 사용하는 것이 일반적이지 않다는 생각이 들었습니다. 말 그대로 hostPath인데 이렇게 되면 결국 그냥 노드하나 볼륨으로 희생시키고, 각 host의 스토리지간에는 독립적이지 못한 상황인 것 같이 보였습니다. 차라리 nodeAffinty를 써서 해당 노드에 다시 배포되도록 하는 게 맞지 않을까 생각이 들기도 하고요,, 생 초보라 이런 상황을 안 겪어봐서 어떤 경우에 hostPath간 마운트하는 지 잘 이해가 안가서 질문드립니다!
위 명령어를 실행했을때 아래와같은 오류가 나타납니다.. 어떻게 해결해야할까요. 시작부터 막히네요.. SST v2.40.3 ready! ➜ App: raymong-lecture-follow Stage: dev Console: https://console.sst.dev/local/raymong-lecture-follow/dev Error : Invalid character in header content ["authorization"] Trace: TypeError: Invalid character in header content ["authorization"] at __node_internal_captureLargerStackTrace (node:internal/errors:490:5) at new NodeError (node:internal/errors:399:5) at __node_internal_ (node:_http_outgoing:643:11) at ClientRequest.setHeader (node:_http_outgoing:666:3) at new ClientRequest (node:_http_client:292:14) at request (node:https:360:10) at C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@smithy\node-http-handler\dist-cjs\index.js:233:19 at new Promise (<anonymous>) at _NodeHttpHandler.handle (C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@smithy\node-http-handler\dist-cjs\index.js:189:12) at async C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@smithy\middleware-serde\dist-cjs\index.js:33:24 at async C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@smithy\core\dist-cjs\index.js:165:18 at async StandardRetryStrategy.retry (C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@aws-sdk\middleware-retry\node_modules\@smithy\middleware-retry\dist-cjs\StandardRetryStrategy.js:51:46) at async C:\Users\user\Documents\GitHub\raymong-lecture-follow\node_modules\@aws-sdk\middleware-logger\dist-cjs\index.js:33:22 at async file:///C:/Users/user/Documents/GitHub/raymong-lecture-follow/node_modules/sst/iot.js:7:22 at async file:///C:/Users/user/Documents/GitHub/raymong-lecture-follow/node_modules/sst/iot.js:24:22 at async file:///C:/Users/user/Documents/GitHub/raymong-lecture-follow/node_modules/sst/cli/commands/dev.js:304:25 at async Promise.all (index 2) at async Object.handler ( file:///C:/Users/user/Documents/GitHub/raymong-lecture-follow/node_modules/sst/cli/commands/dev.js:327:9 ) at process.<anonymous> ( file:///C:/Users/user/Documents/GitHub/raymong-lecture-follow/node_modules/sst/cli/sst.js:58:21 ) at process.emit (node:events:525:35) at process.emit (node:domain:489:12) at process._fatalException (node:internal/process/execution:149:25) at processPromiseRejections (node:internal/process/promises:288:13) at process.processTicksAndRejections (node:internal/process/task_queues:96:32) Need help with this error? Post it in #help on the SST Discord https://sst.dev/discord
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
제가 람다식, 익명클래스, 제네릭에 대한 개념이 확실하게 안 잡혀서 코드이해가 너무 안 되길래 개념부터 다시 찾아보고 공부하고 있는데요 ㅠㅠㅠ 이렇게 공부하는 게 조금 과할 수 있지만 완벽하게 이해를 하고 넘어가고 싶습니다. 제가 궁금한 점은 query함수를 실행하면 sql이 적용된 결과데이터베이스 전체가 mapRow함수의 파라미터 rs로 들어가게 되는 것 같은데 데이터베이스의 자료형이 ResultSet인가요? rowNum 변수의 필요성입니다. mapRow메서드를 오버라이딩을 해줄 때 rowNum사용을 전혀 안 하고 있는 것 같은데, 어떤 값이 rowNum으로 들어가고 어떻게 작동하는 건가요? mapRow메서드의 반환값은 UserResponse객체 형태인데 결과적인 getUsers메서드의 반환값이 어떻게 List<UserResponse> 형태로 변환될 수 있나요? query함수의 역할인가요? 감사합니다.
1. 무엇을 하고 싶으신가요? App Runner 서비스 생성 2. 언제, 어떤 오류가 발생하시나요? 생성 중 애플리케이션 배포 실패 3. 어떤 시도를 해보셨나요? 도커 이미지 재생성 및 App Runner 서비스 재생성, App Runner 스펙업(cpu,mem), iam, root 계정에서 생성 시도(권한 문제는 아닌듯) 4. 작성한 코드를 공유해주세요. 이슈: hands-on-fast-and-secure-cicd-pipeline 깃헙 클론 - 도커파일 경로에서 도커 이미지 생성 - ecr에 푸시 - ecr 이미지 url 이용하여 App Runner 서비스 생성 시 생성 실패하는 상황입니다. 의심 되었던 부분: 1. 컨테이너 이미지나 포트 설정에 문제가 있었다면 localhost:8080으로 접속해도 문제가 생겼을텐데 문제 없이 접속 가능하고요. 2. App Runner의 리소스 제한이 있었을까봐 cpu, mem을 스펙업하고 재생성 했는데도 상황은 동일합니다. 3. 계정 간 권한의 문제일까봐 iam, root 계정에서 생성해보았습니다. 상황은 동일합니다. 스샷: 에러 로그: 02-16-2024 06:37:27 PM [AppRunner] Deployment with ID : 7b4ba5a1c8f0433187d873df5bd1aa8c started. Triggering event : SERVICE_CREATE 02-16-2024 06:37:27 PM [AppRunner] Deployment Artifact: [Repo Type: ECR], [Image URL: 938923105461.dkr.ecr.us-east-1.amazonaws.com/chadtest], [Image Tag: latest] 02-16-2024 06:37:51 PM [AppRunner] Pulling image 938923105461.dkr.ecr.us-east-1.amazonaws.com/chadtest from ECR repository. 02-16-2024 06:37:54 PM [AppRunner] Successfully pulled your application image from ECR. 02-16-2024 06:38:05 PM [AppRunner] Provisioning instances and deploying image for publicly accessible service. 02-16-2024 06:38:15 PM [AppRunner] Performing health check on protocol TCP [Port: '8080']. 02-16-2024 06:39:06 PM [AppRunner] Your application stopped or failed to start. See logs for more information. Container exit code: 1 02-16-2024 06:39:28 PM [AppRunner] Deployment with ID : 7b4ba5a1c8f0433187d873df5bd1aa8c failed. 제가 겪은 이슈와 같은 상황을 겪고 있는 유저: https://repost.aws/ko/questions/QU0lse8IEMSi-H4mlp5AAFWw/apprunner-failed-to-deploy https://komodor.com/learn/exit-codes-in-containers-and-kubernetes-the-complete-guide/ 이게 유력한 원인으로 보이는데요... 이게 아니라면 App Runner가 업데이트 되어 강의의 생성 내용과 달라져서 그런 것 인지... 흠... 혹시 App Runner 부분이 정상적으로 진행되지 않는다면 이후 강의에 차질이 생길까요??