안녕하세요. 강의 잘 듣고 있습니다. 섹션2. 8번 강의 11분 13초 쯤에 하시는 말씀에 의문이 들어 질문글 남깁니다. 이 부분 설명하실때 ' 컨슈밍을 할때 파라미터로 받은 초를 슬립을 준 뒤에 소진을 하겠다' 라고 하셨는데, 메시지를 받은 순간 이미 소진이 시작 된 것이고 각각 2초 4초 5초뒤에 소진이 끝나는 것 아닌가요? 조금 헷갈려서 질문 드립니다. 좋은 강의 감사드립니다.
안녕하세요! 미리 1탄부터 1.5탄 구매했고요, 2탄도 구매해서 수강예정입니다, 강의가 넘 재밌고 이해가 쉽습니다! 강사님이 웃으실 때 저도 덩달아 따라 웃게되네요 ^___^;; 앞으로 MSA 기반 Spring Cloud와 MSA 인프라 구현을 위한 도커 및 쿠버네티스도 강의 신청 드려도 되는 지 문의드립니다! 현재 강사님의 현업 업무 경험으로 MSA 와 Spring Cloud가 백엔드 취업에 어떠한 도움이 되는 지 궁금합니다! 그리고 JPA vs MyBatis 중에 현재 백엔드 취업 시장에서 강사님의 Pick이 어떠한 지 궁금합니다! 모든 기술을 통합하고 융합한 백엔드 취업용 초보 신입 개발자 포트폴리오용 프로젝트 강의를 언제쯤 출시해주시는 지 문의드립니다!
포트포워딩 실습할때는 정상적으로 접속이 됐는데 service를 통한 접속은 안되네요 ㅠㅠ pod 로그를 찍어보니 요청 자체가 안간거 같아요 ㅠ minikube service --url spring-service 위의 명령어로 만들어지는 url로는 정상적으로 접근이 됩니다.
안녕하세요. MSA 에서는 n 개의 같고 다른 여러 서비스들이 존재하고 이를 구분 하기 위해 discovery 서비스를 사용 하고 있는 것으로 알고 있습니다. spring cloud 를 통해 서비스 디스커버리를 사용하면 서비스와 서비스가 사용하는 (web 구성인 경우) 서비스 포트가 자동으로 등록되고 찾아지는 자동화된 구성이 지원되어 사용하기가 편리한데요. 외부 web 과 내부 grpc 통신을 하는 서비스는 각각 통신을 위한 포트 바인딩이 필요한데 이때 서비스가 n 개가 될때 discovery 서비스를 보통 어떻게 사용해서 구성하는지 궁금해서 질문 드리게 되었습니다. 플랫폼 기반 디스커버리가 된다면 크게 신경을 쓰지 않아도 될듯하나 어플리케이션 레이어에서 디스커버리를 사용할때는 보통 어떻게 구성이 될까요?
DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
안녕하세요. 우분투 22.04에서 실습하는데, argocd에 배포시 이슈가 있어 문의 드립니다. 서버에 minikube 설치 후 테스트를 진행하였고 argocd에서 배포할 때 강사님의 github에 있는 manifest에서 sync를 맺으려고 하면, Failed to load live state: namespace "default" for Service "welcome-svc" is not managed 와 같은 메세지가 나오는데요. roll-binding, config map 수정등의 작업을 수행해도 sync시에 default namespace에서의 에러가 발생합니다. 감사합니다.
안녕하세요. 영상에 나오는 notion URL이 다릅니다. https://picturesque-staircase-f6e.notion.site/SpringCloud-MSA-e8692d14d37f4ff3be4874321e9b5077 에는 Apigateway yml 환경설정 파일이 안보입니다. 그렇다고 일일이 MSA- 다음에 나오는 걸 타이핑해서 들어가 볼 수도 없구요. 제가 잘못 알고 있는 건가요? 강의 하단에 노션 링크가 별도로 있거나 쉽게 들어갈 수 있게 되어 있으면 좋겠습니다.
지금까지는 눈으로 학습했는데, AWS ECR에 올리는 실습을 직접 하려다 보니 로컬에서 spring boot 빌드하는 환경 구성에 시간을 잡아먹고있습니다. 개발자가 아니라서 이런 개발환경은 너무 낯선데, 다른방법으로 빌드할수는 없을까요. VSCODE에서 SpringBoot Extention Pack으로 고군분투해봐도 시간만 소요될 뿐 진행되지 않아 문의드립니다.
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. 스프링 프로젝트를 생성하면 최초로 만들어지는 // java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } } 이 테스트코드도 실패할거에요 그럴때는 해당 클래스 파일을 없애거나 @SpringBootTest 어노테이션을 제거하거나 맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다! 보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데.. 재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
백업은 안하려고 한참 헤메다, 결국 백업으로 해결했네요..ㅎ.. 환경: window pc에 mariadb client 버전을 설치함 dump 생성 client 버전이기 떄문에, “ mariadb prompt ” 를 실행해서 아래의 명령어 실행 (cmd에서 mariadb, mysql 명령어 동작 안함) # 생성할 위치로 이동하시거나, 덤프 생성할때 경로 작성하시요. cd "어느 경로"/docker_file # 덤프 생성 mysqldump -u root -p --all-databases > all.sql Dockerfile 생성 # Docker Hub에서 공식 MariaDB 이미지 사용 FROM mariadb:latest # 초기화 시 자동 실행될 SQL 복사 COPY ./all.sql /docker-entrypoint-initdb.d/ # 포트 개방 EXPOSE 3306 이미지 생성 및 컨테이너 실행 docker build -t [당신의 게정은?]/mariadb:1.0 . docker run -d \\ -p 13306:3306 \\ --name mariadb \\ --network ecommerce-network \\ -e MARIADB_ROOT_PASSWORD=[당신의 root 비번]\\ kimjinwon1432/mariadb:1.0 =============== 추가 ============== 강사님께서 알려주신 방법으로 진행해봤어요. 일단, 제 pc의 mariadb 설치경로가 "C:\Program Files" 였기 때문에, mariadb폴더 내의 data 폴더와 그 하위 파일 및 디렉터리를 C: 밑에 우리가 사용하는 docker_file 폴더에 넣었습니다 * Program Files를 경로로 잡으시면 13에러 코드가 발생합니다. 이는 권한 관련 문제이므로 cli에서 사용하시는 계정에 대해서 mariadb 폴더 내부에 권한을 주셔도 소용이 없어요. * 이 과정은 이전에 설치한 mariadb 이미지가 있으면 삭제?하거나 이미지의 이름을 변경해서 진행하세요 .(전 삭제함) * 제 pc의 mariadb 의 버전이 11.4.2여서, docker에서 사용할 수 있는 가장 근접한 버전으로 진행했습니다. docker run -d -p 13306:3306 --network ecommerce-network \ -e MARIADB_ROOT_PASSWORD=[비번] \ --name mariadb -v "C:\study\SpringCloud\docker_files\data:/var/lib/mysql" \ mariadb:11.4.7 이렇게 하시면 docker exec -it ~~~ /bin/bash를 통해서 db에 접속 후 데이터베이스를 확인하면 로컬에서 작업했던 db의 데이터가 docker로 전해진 것을 확인 할 수 있어요.
실무에서 설정 파일의 내용을 어떻게 관리하시는지 궁금하여 질문 드립니다. 제 생각엔 [ '평문' -> jasypt 암호화 -> keytool 암호화 ] 이 과정으로 서버에 설정 정보를 저장하는 것이 좋을 거 같은데, 사바사 일거 같지만.... 보통 이렇게 2번 암호화를 하는지 궁금하네요.
ImagePullPolicy: IfNotPresent를 설정했지만 여전히 NAME READY STATUS RESTARTS AGE spring-pod 0/1 ErrImageNeverPull 0 59s 라고 나옵니다. 제가 찾아보니 docker 이미지는 데몬 에서 생성되었고, Kubernetes의 런타임이 자기 저장소에서 spring-server 이미지를 찾을수없다고 나오는데 이럴때 어떻게 해결해야하나요?