안녕하세요 강사님 1강을 공부하다가 이해가 되지 않는 부분이 생겨서 질문드립니다. 컨테이너와 가상화 VM의 차이에 대한 내용을 공부하면서 컨테이너는 게스트 OS를 가지지 않고 VM은 게스트 OS를 가지기 때문이 무겁고 속도가 느릴 수 있다는 내용을 봤는데 1강 마지막 부분에 도커 컨테이너는 리눅스 VM에서 실행되고 컨테이너들은 리눅스 커널을 공유한다고 되어있습니다. 제가 가상화 컨테이너에 대한 강의 내용을 들으면서 생각했던 컨테이너들의 커널 공유는 호스트 OS인 MAC/윈도우의 커널을 공유하는 것이라고 생각을 했었는데 이 부분을 도커는 리눅스를 게스트 OS로 가지는 하나의 VM에서 실행되는 것이고 그 도커가 컨테이너를 가진다고 봐도 맞는 것일까요? 궁금한 부분을 해결하고 진도를 나가고 싶어서 자세한 설명을 너무 듣고 싶습니다...
안녕하세요. 강의 잘 듣고 있습니다! 배포 후 AWS에서 에러난 것을 수정 해주신 코드 보며 잘 해결했습니다. 궁금한 점이 docker-compose.yml 내부 코드를 수정하고 나서 다시 터미널에 docker-compose up --build를 해서 컨테이너를 만들고 깃허브에 푸쉬를 해야 하는 지 아니면 바로 깃허브에 푸쉬하면 되는 것인지 궁금합니다. 이번에는 혹시 몰라서 빌드를 하고 푸쉬하니 배포는 잘 됐습니다!
안녕하세요 Windows 환경에서 Volume 적용 후 내용을 변경하였는데 반영이 안되는데 이유가 어떻게 될까요 docker build -t smileajw1004/nodejs ./ docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v ${pwd}:/usr/src/app smileajw1004/nodejs 실행은 정상적으로 이루어지나 소스 수정 후 반영이 안됩니다. 아래 글에 댓글에는 볼륨에 이상이있다 라고만 써주셔서 해결책이 없는데 혹시 방법이 없는건가요
안녕하세요~! 외부에서 사용자가 EC2 웹서버 접근할때 LB를 통해서 들어오고, 패킷이 다시 LB를 통해서 나가는게 맞지 않나요?? LB로 들어온 패킷이 NAT로 나가는게 잘 이해가 안되서요.. NAT는 EC2에서 외부 통신이 필요할때 쓰는걸로 알고있는데, 헷갈려서 문의드려요~!
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. aws ec2 배포 과정에서 문제가 있습니다. npm run build:prod 에서 문제로 . package.json에도 env-cmd 가 제대로 설치가 되어있고, script 문에도 정상적으로 적어져 있으나, sh: 1: env-cmd: not found 와 같은 문제가 뜨네요 .
안녕하세요, 수강 중 궁금한 점이 생겨 질문 남깁니다. private subnet에 위치한 EC2 인스턴스를 private cloud, public subnet에 위치한 EC2 인스턴스를 public cloud로 이해해도 되나요? 위의 내용이 맞다면, 본 강좌에선 private subnet와 public subnet을 모두 사용하기에 hybrid cloud를 구축한다고 볼 수 있나요?
인사 안녕하세요. 일단 강의에 감사한 마음에 그랜절 바치고 질문 시작하겠습니다 🙇 🙇 호돌킹 강의 들으며 한명의 더 열심히 하는 수강민수가 되기 위해 요즘 공부중인 코틀린으로 토이 프로젝트를 해보며 본 강의를 듣고 있습니다. 덕분에 강의 한 강의 들을때마다 오래 걸리기는 하지만 많은 공부가 되고 있습니다. 궁금하진 않으시겠지만 혹시 질문에 답변을 주시는데 필요할 까 싶어 링크도 남겨 봅니다 https://github.com/QUIDEV/quidev 질문 질문 내용은 다름이 아니라.. 제가 프로젝트에서 스프링 시큐리티를 적용 해 두었는데요, 이번 강의부터 API 요청을 vue.js 에서 보내다 보니 인증부분이 발목을 잡네요. 지금까지는 항상 코드를 짤 때 프론트 부분은 템플릿 엔진을 썼었고, vue.js 를 사용 하더라도 라이브러리처럼 사용했던터라 굉장히 당황스러운 상황입니다. 당장의 강의를 마치기 위해 시큐리티를 걷어내고, 작성자를 기록하기 위해 비즈니스 로직에도 파고들어간 부분을 걷어낼 수는 있겠지만 어차피 언젠가는 마주쳤을 문제라고 생각해서 이번기회에 물리쳐 보려고 합니다. Vue.js 와 스프링 시큐리티 검색어로 이것 저것 찾아 본 결과 대세가 JWT 로 굳어지는 것 같은데 JWT를 공부해서 적용 시키면 될까요? 아니면 호돌맨은 다른 방법을 권장하실까요? 귀찮으시겠지만 선생님의 고견을 여쭙습니다. 조공으로 미리 5성 수강평도 남겼습니다. 감사합니다.
안녕하세요! Response 클래스가 필요하다는 것은 잘 이해했습니다. 그런데 Response 클래스를 서비스가 아닌 컨트롤러에서 변환하는 것은 어떻게 생각하시나요? 서비스에서는 리포지토리에서 엔티티를 반환받아서, 컨트롤러에 엔티티를 전달하고 컨트롤러에서 엔티티를 Response로 변환하여 리턴하는 식으로 현재 개발을 해봤는데요. 생각을 좀 해보니까, 엔티티를 Response로 변환하는 것을 비즈니스 로직이라고 생각하면 서비스에 포함시키는게 맞는것 같고.. 뭔가 Response는 화면UI 에 따라 자주 변할 수 있는 가능성이 많으니까 차라리 서비스는 항상 엔티티만 리턴하고 컨트롤러에서 UI에 맞게 변환만 해서 반환하는 것도 나쁘지 않다고 생각했는데요. 혹시 어떤 방법이 실무에서 자주 쓰이는지 궁금합니다.
React App 을 AWS EB 에 배포하는 과정에서 502 Error 가 발생합니다. 아마 강의에서 말씀하신 것 처럼 Linux 버전 차이 말고는 다른점이 없기 때문에 Linux2 로 EB 를 설정해서 발생하는 Error 인 것 같습니다. 하지만 현재 AWS EB 에서 제공하는 Docker platform 중에 강의에서 선택하신 Linux( version 1 ) 이 존재하지 않는데 이 경우 어떻게 하면 문제를 해결할 수 있을까요?
19분 20초에 호돌님께서 Request클래스와 Response클래스가 DTO는 아니라고 말씀하셨는데요~ 그렇다면 DTO라고 말할 수 있을 만한 조건은 무엇이고, 지금은 무엇이 부합하지 않는 걸까요 ? 그러면 현 상태에서 클래스는 엔티티도 아니고 DTO도 아닌 무엇이라고 지칭할 수 있는 클래스 인건가요 .. ?
안녕하세요. 강의를 듣다가 Editor 클래스에 대해 궁금한점이 생겨서 질문을 남기게 되었습니다. Editor 클래스를 사용하면 수정 시 content 나 title 값이 빈 값 또는 NULL 값이 들어오는 것을 방지하기 위한 목적도 있다하셨는데, 해당부분은 요청받는 컨트롤러에서 @Valid 로 검증할 수 있다고 생각되는데, 어떻게 생각하시는지 궁금합니다. Editor 클래스를 새로 생성하게 되면 Post 엔티티 클래스가 Editor 클래스에 의존하게 되는게 아닌가 생각이 드네요. 또 궁금한것이 Editor 클래스를 혹시 Post 엔티티 클래스 내부에서 선언해서 사용하는 것과 호돌맨님이 구현하신 것 처럼 외부에 클래스를 생성해서 사용하는 것과 다른부분이있을까요? 내부클래스로 사용한다면 확실하게 의도를 알 수 있을거 같아서 질문드립니다! package com.blog.api.domain; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import javax.validation.constraints.NotBlank; @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @Lob // DB에는 TEXT 타입으로 생성. private String content; @Builder public Post(String title, String content) { this.title = title; this.content = content; } public void edit(PostEditor postEditor) { this.title = postEditor.getTitle(); this.content = postEditor.getContent(); } public PostEditor.PostEditorBuilder toEditor() { return PostEditor.builder() .title(this.title) .content(this.content); } @Getter public static class PostEditor { private String title; private String content; @Builder public PostEditor(String title, String content) { this.title = title; this.content = content; } } }