묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
10.Pub-Sub모델을 이용한 실시간 알림 (WebSocket, STOMP 이용) part 1 의 자료
학습중 궁금한 것은 언제든 문의 하세요.질문을 최대한 자세히 남겨주시면 반드시 답변 드리도록 하겠습니다.추가로 알고 싶은 내용도 요청해주시면 강의 자료를 업데이트 해서 제공할 예정입니다. 안녕하세요~! 10.Pub-Sub모델을 이용한 실시간 알림 (WebSocket, STOMP 이용) part 1해당 자료가 다운이 되지 않습니다!
-
미해결Microservice 구현 (with EDA,Hexagonal, DDD)
VO 클래스의 불변 필드 선언을 하지 않으신 이유?
안녕하세요. 먼저 좋은 강의 감사합니다.다름이 아니라, 강의자님께서 작성해주신 코드를 보면 모든 VO 클래스의 필드가 final 로 선언되어 있지는 않은 것으로 보입니다.이와 같이 처리하신 이유가 단순히 강의 편의성을 위한 것인지, 혹은 다른 의도가 있는 것인지 궁금합니다. 제가 생각하기엔 아래와 같이 처리되어야 할 것 같습니다. (대여 서비스의 Item 클래스 예시)/** * 도서 항목 VO */ @Getter @Access(AccessType.FIELD) @NoArgsConstructor(force = true, access = AccessLevel.PROTECTED) @RequiredArgsConstructor @Embeddable public class Item { private final Integer no; //도서번호 private final String title; //도서제목 /** * 테스트용 * @return */ public static Item sample() { return new Item(10, "노인과 바다"); } } 추가로, RentalItem 은 엔티티로 재정의하셨다고 했는데, 코드상으로는 @Entity 없이 VO 처럼 취급되는 것 같습니다. 해당 부분까지 답변주시면 큰 도움될 것 같습니다.감사합니다.
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
Private EC2내 Userdata Script 동작 문제
안녕하세요. 강의 잘 듣고 있습니다. EC2 userdata에 강사님이 제공한 스크립트를 넣고 인스턴스 시작을 하면 스크립트 실행이 되지 않고 있어서 문의 드립니다. EC2 처음 생성시에는 스크립트가 잘 동작하는데 한번 instance stop한 다음에 다시 start 하면 실행이 되지 않습니다. 테스트를 스크립트 내에 echo 등 다양한 방법으로 시도를 해 보았는데 실행이 되지 않고 있습니다. 직접 connect 해서 아래 스크립트 실행하면 잘 됩니다. Security Group 이슈는 아닐 것 같습니다. 혹시 어떤 문제가 있는지 확인 가능할까요?그리고 첫번째 인스턴스 생성시에 aws-operation-prac 폴더가 ec2-user에 생기는 것이 아니고 "/" 루트에 생성이 됩니다. 아래 userdata 스크립트입니다.인스턴스를 몇개 만들어서 테스트를 해도 동일한 결과가 나옵니다. 이 이슈로 ALB, Auto scaling 등에서 진행이 되지를 않고 있습니다. #!/bin/bashsudo yum update -ysudo yum install -y gitsudo yum install -y java-17-amazon-corretto-develgit clone -b 2_monolithic_cloud https://github.com/burger-2023/aws-operation-prac.gitcd aws-operation-prac./gradlew build sudo java -jar build/libs/aws-msa-monolithic-prac-0.1.jar
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
단일 데이터베이스 연결
강의 내용에 따르면 order-service1, order-service2 두 개의 인스턴스가 kafka-connect를 사용하기 위해 mariadb에 직접 연결을 맺는것으로 이해했습니다. 제가 궁금한 것은 단일 DB를 사용하는 경우에 kafka를 쓰는 이유입니다.현 강의와 같이 단일 DB를 사용하는 경우라면 kafka를 사용하지 않고, RestTemplate이나 FeignClient와 같은 라이브러리를 사용해서 catalog-service와 통신하고, jpa를 통해 직접 DB에 데이터를 직접 삽입할 수 있을텐데 이 경우 트랜잭션을 잘 처리해준다면 데이터도 동기화 할 수 있다고 생각합니다.다만, 여러 진입점 관리, 트랜잭션 처리 등 따로 처리해야할 부분이 많고 요청이 증가할 수록 kafka의 성능이 우수하기 때문에 kafka를 쓰는 것으로 이해했습니다. 제 생각에 틀린 부분이 있다면 말씀해주시면 감사하겠습니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Could not find or load main class org.apache.kafka.connect.cli.ConnectDistributed 에러 해결
confluent-6.1.0\bin\windows\kafka-run-class.bat 파일 안에 rem Classpath addition for release으로 검색하셔서 밑에 코드를 넣으시면 됩니다. rem Classpath addition for LSB style path if exist %BASE_DIR%\share\java\kafka\* ( call :concat %BASE_DIR%\share\java\kafka\* )
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
실습 중에 서비스로 30000포트로 요청이 안들어가네요
[예제] 서비스(Service)를 활용해 백엔드(Spring Boot) 서버와 통신해보기실습중인데 30000 포트로 어플리케이션에 접근이 안되네요kebectl exec -it $pod이름 -- bash 접근해서 curl 로는 요청이 정상이였고 아래 처럼 서비스에 모두 기재 해줬는데도 서비스로 접근하면 연결이 잘 안되네요. port: 8080 targetPort: 8080 nodePort: 30000혹시 sudo kubectl port-forward 팟이름or서비스이름 8080:8080 처리를 추가로 해줘야 하나요 그게 아니라면 뭔가...제가 설정을 잘 못한거 같네요
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
파드 : crashLoopBackoff
[5:00] 분 쯤에 manifest 파일들을 배포한후 get pods 했더니 파드가 정상적으로 작동이 안되더라구요 어떻게 하나요..?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
port forward [6.40]
포트 포워딩을 통해 mysql을 외부에서 접속가능하게 할려고하는데 PS C:\kubernates\mysql-project> kubectl port-forward pod/mysql-deployment-545cb7c695-dxbm7 3306:3306 Unable to listen on port 3306: Listeners failed to create with the following errors: [unable to create listener: Error listen tcp4 127.0.0.1:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions. unable to create listener: Error listen tcp6 [::1]:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions.]error: unable to listen on any of the requested ports: [{3306 3306}]이런식으로 오류가 떠서 어떻게 해야될지 모르겠어요...ㅠㅠ
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
도커 이미지 생성 및 소스 빌드에 관한 질문입니다.
12.01 분 쯤에 코드를 수정하시고 바로 docker build로 넘어가시던데 그전에 Spring으로 할때에는 코드 수정하고 ./gradlew clean build라는 명령어와 함께 소스빌드를 거친후 docker build를 하셨는데 혹시 뭔가 차이점이 있을까요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
데이터가 null만 나오는 이유
안녕하세요, 질문 드립니다. /catalogs 조회하는 api 에서 catalogService.getAllCatalogs();에서 데이터는 디비에서 잘 들고 오는데 ModelMapper만 통과하면 모든 필드가 null로 return 되고 있습니다. 동일한 스팩의 user-service 에서 user 조회 api는 정상적으로 조회가 됩니다... 이유를 모르겠어서 납깁니다..(created_at 필드는 추가를 하지 않았습니다. 이문제는 아닌 것 같아요)
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
기본 라우팅 테이블을 사용하지 않는 이유가 뭔가요?
라우팅 테이블 생성 실습 시에, 기본으로 생성되어 있는 라우팅 테이블을 수정해서 사용하지 않는 이유가 궁금합니다.기본값으로 설정되어 있기도 한데 말이죠.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
exec /usr/java/openjdk-17/bin/java: exec format error
EC2에서 ECR이미지를 pull하여 실행중에exec /usr/java/openjdk-17/bin/java: exec format error 해당 오류가 계속발생합니다.dockerimage가 ec2의 arm64와 달라서 그렇다는 글도 있어docker buildx build --platform linux/arm64 -t kube-ecr . 해당 명령어로 build하여 ECR에 push도 해보고 했지만 여전히 같은 오류가 발생합니다.어떻게 해결해야할까요??
-
해결됨Microservice 구현 (with EDA,Hexagonal, DDD)
RentalCard 의 calculateLateFee 메서드 구현이 잘못된 것 같습니다.
안녕하세요.calculateLateFee 메서드에 작성해주신 코드 중 아래 부분에 오류가 있는 것이 아닌지 확인 부탁드립니다.private void calculateLateFee(RentalItem rentalItem, LocalDate returnDate) { if (returnDate.compareTo(rentalItem.getOverdueDate()) > 0) { int point = Period.between(rentalItem.getOverdueDate(), returnDate).getDays() * 10; this.lateFee.addPoint(point); //문제 } }아래처럼 수정되어야 하는 것이 아닌지 질문드립니다.private void calculateLateFee(RentalItem rentalItem, LocalDate returnDate) { if (returnDate.compareTo(rentalItem.getOverdueDate()) > 0) { int point = Period.between(rentalItem.getOverdueDate(), returnDate).getDays() * 10; this.setLateFee(this.lateFee.addPoint(point)); //수정 } }감사합니다.
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
섹션 1이나 2 등등 강의 자료는 없는 걸까요?
섹션 1이나 2 등등 강의 자료는 없는 걸까요?
-
해결됨비전공자도 이해할 수 있는 쿠버네티스 입문/실전
Secret와 ConfigMap의 차이가 궁금합니다!
보안적으로 민감한 변수를 저장하기 위해 활용한다고 배웠습니다.그러나 Secret의 작성 방법이 별다른 암복호화 로직없이 configMap과 99% 동일한 것 같아서요. 같은 repository에서 Secret과 ConfigMap가 함께 위치하는 경우ConfigMap에 접근할 수 있는 사용자는 Secret에도 손쉽게 접근할 수 있을것 같다는 생각이 듭니다. Secret이 ConfigMap보다 어떠한 측면에서 보안상의 이점이 있는지 궁금합니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
mysql 서버 띄우기
deployment는 정상적으로 띄운거 같은데 위 설정과 같이 데이터 그립에서 연결테스트를하면 해당 오류가 발생합니다.. 왜 그런것일까요?
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
private instance 80포트 연결불가
이런 에러가 뜨는데 bastion-host 및 goopang-private-ec2-instance 생성 시 강의에서도 ssh 22포트 외에 따로 80포트를 허용하는 내용은 보이지 않아서 질문드립니다해당 에러를 80포트를 허용하지 않고도 해결할 수 있나요?
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
EC2에서 쿠버네티스로 백엔드(Spring Boot) 서버 띄우기
EC2에서 쿠버네티스로 백엔드(Spring Boot) 서버 띄우기 강의에서kubectl get deployment를 실행하면 ImagePullBackOff 가뜨고 이미지를 가져오지 못하는 데 외 그럴까요 .이틀 밥새도 해결 못해서 문의 들여 봅니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
도커 컨테이너로 동작할 때 user-service에서 403 forbidden 오류 관련
유사한 질문이 있어서 도움이 될 수 있을까 찾아 봤지만 해당 github에 접근할 수 없었고(아마 삭제한 듯), chat GPT를 통해서 답을 얻을 수 있을까 질문을 해 봤지만 해결책이 나오지 않아서 대략 1주일 이상을 헤매고 있었습니다. 그런데 강사님이 다른 분의 질문에 답을 주신 것을 보고 user-service의 SecurityConfig.java 파일에서 .requestMatchers("/**").access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('172.18.0.5') or hasIpAddress('192.168.0.172')")) // ip address of my pc .anyRequest().authenticated()위의 코드처럼 나의 pc의 ip address를 포함하니 더이상 403 오류가 발생하지 않더군요. 그래서 결국에는 내 pc의 ip address를 포함해야 하는구나라고 생각했습니다. 그런데 동일한 코드를 다른 pc(이 pc에서도 계속해서 403 오류 발생했었음)에서 구동시켰더니 내 pc의 ip address를 변경시키지 않았음에도 403 오류 발생 없이 잘 동작하더군요. 그동안 무엇이 문제였을까요? 물론 github에 올라가 있는 configuration 파일에서도 gateway의 ip adddress를 172.18.0.5로 지정했고, SecurityConfig.java에서도 위의 코드같이 172.18.0.5를 포함했었습니다.
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
pod는 정상적인데 페이지가 안나와요
pod, service, deployment 정상적으로 실행되는데 페이지가 작동하지 않는다고 나옵니다 Hello,World 가 나와야하는데 무엇이 문제일까요