묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
2-3 진행 중 에러 발생
2-3 강의 중 12분 쯤에 Send를 누르면 200 OK가 떠야한다고 하셨는데 저는 500 에러가 발생합니다!package com.jyujyu.review.api; import com.jyujyu.review.service.TestService; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @AllArgsConstructor @RestController public class TestEntityApi { private final TestService testService; @PostMapping("/test/entity/create") public void createTestEntity( @RequestBody CreateTestEntityRequest request ) { testService.create(request.getName(), request.getAge()); } @AllArgsConstructor @Getter public static class CreateTestEntityRequest { private final String name; private final Integer age; } } package com.jyujyu.review.api; import com.jyujyu.review.service.TestService; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @AllArgsConstructor @RestController public class TestEntityApi { private final TestService testService; @PostMapping("/test/entity/create") public void createTestEntity( @RequestBody CreateTestEntityRequest request ) { testService.create(request.getName(), request.getAge()); } @AllArgsConstructor @Getter public static class CreateTestEntityRequest { private final String name; private final Integer age; } } package com.jyujyu.review.repository; import com.jyujyu.review.model.TestEntity; import org.springframework.data.jpa.repository.JpaRepository; public interface TestRepository extends JpaRepository<TestEntity, Long> { // Long -> TestEntity에 @Id가 있는 필드의 자료형을 작성한다. } package com.jyujyu.review.model; import jakarta.persistence.*; import lombok.Getter; @Getter @Table(name = "test") @Entity public class TestEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; public TestEntity(String name, Integer age) { this.name = name; this.age = age; } public TestEntity() { } public void changeNameAndAge(String name, Integer age) { this.name = name; this.age = age; } }plugins { id 'java' id 'org.springframework.boot' version '3.2.2' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.jyujyu' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' } tasks.named('test') { useJUnitPlatform() } server.port=8081 spring.h2.console.enabled=true spring.h2.console.path=/h2-console spring.h2.console.settings.web-allow-others=true spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:rss spring.datasource.username=sa spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true알려주신대로 코드를 작성하고 포스트맨에서 Send를 눌러도 500 Internal Server:Error 라고 뜨네요 ㅠ 원인을 찾아봐도 안보여서 여쭙습니다..! 참고로 포트는 8081이 맞습니다혹시 파일 필요하실까봐 링크 첨부했습니다https://drive.google.com/file/d/1W65YQNY5rOGjWuqr-ntff7_QuTWz4eDw/view?usp=sharing
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
playground 오류 10-06-one-to-one
다음과 같이 playground에서 mutation한 결과 "Cannot return null for non-nullable field Product.productSalesLocation." 오류 메시지가 뜹니다. mutation안의 반환값으로 product의 column만 받을 때는 오류 없이 작동되었는데 productSalesLocation의 column을 반환하려 하면 다음과 같이 오류가 뜹니다.위 사진을 보시면 DBeaver에 product와 saleslocation에 생성한 값이 잘 입력되었지만product table에서 productSalesLocationID가 NULL값으로 되어있습니다.이 부분에 연관된 코드가 여러 파일로 나뉘어져있어 코드 어느 부분을 확인해야 하는지 알려주시면 해당 코드 캡처본을 보내드리겠습니다.
-
해결됨개발자를 위한 쉬운 도커
안녕하세요 docker run 관련 질문드립니다!
안녕하세요! 강의 항상 잘듣고 있습니다.Dockerfile 지시어 강의를 수강 중에 node.js로 된 프로젝트를 Dockfile을 작성해서 이미지를 빌드하는 중에 이런식으로 run 명령어를 통해 이미지를 실행시켜도 ps로 확인해보면 올라가 있지 않습니다. 제가 어느 부분을 놓치고 있는지 궁금합니다.
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
nodeAffinity values 값 설정
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? [예 | 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예 |3. 질문 잘하기 법을 읽어보셨나요? [예 |(https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. (https://www.inflearn.com/questions/992407/comment/281901)6. ARM 계열의 m1 , m2 계열은 VirtualBox를 통한 구성이 원할하지 않고, 실습 환경의 다변화는 추후 대처하기 어려워서 현재 과정에서는 지원하지 않습니다. (https://www.inflearn.com/questions/915529)[질문 하기]강의명 : X.13.001-5.Deploy PV,PVCnodeAffinity values 값에 bk8s-w1을 넣는 것이 이해가 안갑니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
useEffect 훅에서 else 유무에 따른 결과
안녕하세요.다음 코드에서 useEffect(() => { if (!origUserList) setUserList([]); else setUserList(origUserList.map(user => ({ ...user, is_follow: false }))); }, [origUserList]);else가 있어야 하는 이유가 return 하지 않을 것이기 때문이라고 05:55 에서 말씀하셨는데, 이 부분에 대해 이해가 가지 않습니다.그냥 보기에는 else가 없어도 동일하게 작동할 것 같아서 else를 빼봤는데 아니나 다를까 다음과 같은 에러가 납니다.SuggestionList.js:24 Uncaught TypeError: Cannot read properties of undefined (reading 'map')chatGPT에게 물어보니 else가 없어도 동일한 로직이라고 하는데 이유를 모르겠습니다.
-
해결됨개발자를 위한 쉬운 도커
쉬운도커 PART6_네트워크_PDF 8번 슬라이드의 NAT 테이블 예시 표기에 문제가 있습니다.
해당 NAT 테이블 예시에 글자가 NAT 테이블 예시와 포트포워딩 예시와 같이 겹쳐서 보이는 것 같습니다.
-
미해결대세는 쿠버네티스 [초급~중급]
kubernetes dashboard v2.7.0 인증서 등록에서 문제
dash board 접근 시,https://192.168.64.30:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login{ "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "services \"https:kubernetes-dashboard:\" is forbidden: User \"system:anonymous\" cannot get resource \"services/proxy\" in API group \"\" in the namespace \"kubernetes-dashboard\"", "reason": "Forbidden", "details": { "name": "https:kubernetes-dashboard:", "kind": "services" }, "code": 403 }해당 오류가 발생합니다 권한 문제 같은데.... 인증서도 정상적으로 신뢰함으로 동작하고 있습니다!
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
dockerfile과 dockercompose 차이가 궁금합니다.
dockerfile과 dockercompose 둘다 서버를 구동하는거인가요? 어떤 차이가 있는건가요?
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
[섹션 9] AWS ECS - Service 사용해서 여러개의 Task 생성하고 Load balancer 연결해주기
ecs service 등록하려고 보니, Load balancer 설정 부분에 이렇게 뜨는데,, 제가 Lightsail 볼때 따로 등록 안해줘서 설정 부분이 이렇게 뜨는걸까요? ㅠㅠ ec2에서 설정 따로 해줘야한다는거 같은데 로드밸런싱 활성 작업을 위해서 어떤 어떻게 등록 해야하는 걸까요?
-
해결됨개발자를 위한 쉬운 도커
강의 6분 39초 때에 나오는 docker cp 페이지가 강의 자료 PPT에서 보이지 않는 것 같아요
안녕하세요. 강의 6분 39초 때에 나오는 docker cp 단축어가 Part 5 컨테이너 애플리케이션 구성에서 확인되지 않는 것 같습니다. 6분 39초 우측 상단에 part3. 이미지 레지스트리에서도 보이지 않는 것 같아서 혹시 누락된 게 아닌가 여쭤봅니다. 이렇게 좋은 강의를 만들어주셔서 고맙습니다.
-
해결됨개발자를 위한 쉬운 도커
도커 볼륨 경로에 대한 질문입니다
강의 14:50 쯤에 제가 이해한 바로는 맥에서는 도커데스크탑인 가상머신을 사용하기 때문에 저 경로가 도커 데스크탑에서의 볼륨 경로이고 여기에 실제 데이터를 저장한다고 이해했습니다. 그렇다면 만약 도커 데스크탑을 삭제한다면 여기에 저장된 데이터들은 없어지는건가요? 그리고 저 경로에 왜 접근이 힘든건지 잘 모르겠습니다.
-
해결됨개발자를 위한 쉬운 도커
컨테이너에도 OS가 포함되는지 궁금합니다.
안녕하세요, 좋은 강의 잘 듣고 있습니다.PART2의 강의자료인 "이미지와_컨테이너 PDF"의 4, 5페이지의 그림을 보면 컨테이너 역시 OS를 포함하는 것으로 표현되어 있습니다. 강사분께서 nginx를 예를 들어주실 때에도 nginx 이미지를 만들때 OS가 포함된다고 설명해 주시 기억이 납니다.다만 보통 블로그나 유튜브 등에서는 VM과 컨테이너 방식을 비교할 때 "컨테이너에는 OS가 포함되지 않는다, 그래서 빠르다"고 표현하는 것을 종종 보아왔기에 이 부분이 헷갈립니다.5페이지의 그림을 잘 보면 컨테이너들은 각각 OS를 포함하고 있고, 커널은 HOST OS의 것을 공유하는 것으로 이해됩니다. 이말은 컨테이너에 포함된 OS는 커널을 포함하고 있지 않는 것인가요? 즉, "각 컨테이너들은 커널을 포함하고 있지 않고 (단, OS는 포함하고 있음) 호스트의 커널을 공유하기때문에 커널이 포함되어 있는 전체 OS를 모두 가지고 실행되는 VM대비 가볍다" 라고 이해해도 무방할까요? 제가 시스템, OS 쪽 지식이 너무 얕습니다. 초보적인 질문이라도 양해부탁드립니다.
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
vagrant up시 couldn't validate the identity of the API server 문제 발생
안녕하세요, vagrant up으로 환경 구축시에 다음과 같은 문제가 발생합니다.w2-k8s-1.25.0: error execution phas preflight: couldn't validate the identity of the API Server: Get "https://192.168.1.10:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s": dial tcp 192.168.1.10:6443: connect: no route to host게시판이나 구글 찾아봐도 저와 같은 문제에 대한 정보를 찾을 수 없습니다 ㅠㅠ +) 추가적으로 vagrant 설치시 hashicorp라는 폴더가 생성된다고 하는데, 저는 이 폴더도 찾을 수 없어 그냥 c:\내에 임의의 폴더를 만들어서 거기다가 github에 올려주신 프로젝트 압축 풀어서 사용했습니다. vagrant version 확인시에는 정상적으로 설치가 된 것을 확인할 수 있었는데, 혹시 이게 문제가 될 수 있을까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
ec2 AMI 생성 관련 질문 드립니다.
AMI 생성하실 때 우분투로 생성하셨는데 리눅스로 생성 안하고 우분투로 설정하신 이유가 궁금합니다!
-
해결됨개발자를 위한 쉬운 도커
commit 예제에서 -c 'CMD ["nginx", "-g", "daemon off;"]'가 필요한 이유가 궁금합니다.
이미지 커밋 예제를 보면 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx (개인레지스트리명)/commitnginx를 통해 이미지를 커밋하고있습니다.이때 -c 'CMD ["nginx", "-g", "daemon off;"]' 옵션을 포함하지 않고 커밋하면 컨테이너가 정상적으로 실행되지 않고 곧바로 Exited되는 것을 확인하였습니다.커밋시 -c 'CMD ["nginx", "-g", "daemon off;"]' 를 포함해야 하는 이유가 궁금합니다.
-
해결됨개발자를 위한 쉬운 도커
docker run -d -p 8080:3000 관해서 질문 있습니다.
docker run -d -p 8080:3000 --name defaultColorApp devwikirepo/envnodecolorapp제가 이해하고 있는 부분해당 도커 실행 명령어 중 docker run -d -p 8080:3000 명령어는 호스트의 8080 포트를 컨테이너의 3000 포트에 매핑하여 실행한다. 제가 시도한 부분 docker run -d -p 8080:3000 docker run -d -p 8080:3001 로 내부 컨테이터 포트를(3000 -> 3001) 바꾸게 되면 동작하지 않습니다. 제 생각에는 해당 이미지에 할당된 포트번호 있다고 예상했고 docker image inspect devwikirepo/envnodecolorapp 을 실행 후 해당 이미지 Json에 포트번호가 있는것을 확인했습니다. "ExposedPorts": { "3000/tcp": {} }, 제가 궁금한 부분1. "ExposedPorts" 의 "3000/tcp": 내부 컨테이너 포트번호는 별도로 세팅할 수 없나요? 2. 제가 시도하여 찾은 "ExposedPorts"의 "3000/tcp": {} 이 docker run -d -p 8080:3000명령어의 :3000 과 같나요? 3. 8080:3001 로 내부 컨테이너 포트번호를 변경 시 컨테이너 실행은 정상적으로 되지만 왜 Nginx에 접속할 수 없는 걸까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, flask 배포) [풀스택 Part3]
nextjs설치
강사님 안녕하세요. 질문이 있습니다!제가 nextjs로 개발한 웹이 있는데 그 웹을 배포하기 위해서 필요한 패키지들을 Dockerfile에 Run 을 이용해서 설치하면 될까요?? 강사님이 배포하신 index.html처럼 했더니 이상하게 나와서요..
-
해결됨개발자를 위한 쉬운 도커
섹션4. 이미지 빌드에서 이미지 커밋이 안되는 현상이 있어 문의드립니다.
안녕하세요. 강의에서 말씀하신 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx kimminho0428/commitnginx:1.0위의 커맨드로 official Nginx 커밋을 시도했으나 commit이 되지 않아 문의드립니다.docker ps 명령어로 확인할 때 nginx 컨테이너는 실행 중이나 이런 현상이 발생했습니다.문법상의 오류로 보이는데 답변부탁드립니다.감사합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
useAxios 훅의 dependency array 설정
안녕하세요.useEffect 훅을 사용했을 때는 dependency array를 빈배열 [] 로 설정하였는데,마찬가지로 useAxios에서도 다음과 같이 이렇게 설정되어야 되지 않나 궁금합니다.const [{ data: userList, loading, error }, refetch] = useAxios( { url: "http://localhost:8000/accounts/suggestions/", headers }, [] );```
-
해결됨AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
캐싱 관련 질문 드립니다.
선생님 안녕하세요.MongoDB에 이어 infra 관련 강의도 잘 수강하고 있습니다.캐싱 관련되어 선생님 의견이 궁금해 질문드립니다. 백그라운드현재 MongoDB + Nest.JS를 사용해 WAS를 구축한 상태입니다.도큐먼트 안에 서브 도큐먼트들이 array 형태로 들어가도록 Model을 설계했는데요, 서브 도큐먼트를 가져올 때 aggregation을 사용해 페이지네이션을 적용했습니다.(처음에 설계 시, 잘 못 생각해 이러한 설계를 하긴 했습니다..)aggregation에는 성능 문제가 따라올 위험이 있을까봐 해당 GET 요청 컨트롤러에는 캐싱을 적용했습니다.문제가 되는 부분은 캐싱처리로 인한 코드의 가독성 저하 입니다.WAS안에서 GET 요청 시 캐싱을 적용하고, POST, PUT, PATCH 요청시에는 캐싱을 지우고 있는데, 비즈니스 로직안에서 이를 처리하다보니 코드의 가독성이 급격히 떨어지더라고요. 제가 생각한 해결 방안이를 해결하기 위해 event emitter를 사용해 캐싱을 비즈니스 로직으로부터 떼어낼까 고민했습니다.다만 이 해결방안은 캐싱처리하는 로직 자체가 하나의 WAS에 존재하고 있어 추후에 또 비슷한 문제가 발생하지 않을까 생각이 들더라고요. 질문선생님께서는 이러한 문제 발생 시 캐싱 처리는 프록시 서버를 띄워서 앞단에서 미리 처리를 하시는지... 아니면 또 다른 좋은 방식으로 설계를 하시는지 궁금해서 질문드립니다.