안녕하세요.
PaaS, SaaS 클라우드 서비스 기반 IT운영 및 개발을 담당하고 있는 전문가입니다.
여러 솔루션 프로젝트와 R&D사업, 그리고 운영 환경 업무를 통해 경험한 지식에 대한 교육 내용은 항상 공유하려고 합니다. 실무를 하면서 너무 많은 상식들을 보유하게 되기도 하고, 필요로 하다보니 항상 공부하며 정리하는 습관을 갖고 살고 있으며, 정리한 내용에 잘못된 내용이 없는 지 항상 검토하고 수정하여 후배들에게 정확한 지식을 전달하고자, 경력 1년차부터 10년차 넘게 항상 공부하고 노력하며 살고 있습니다. 주니어 개발자들뿐만 아니라 여러 강의를 희망하시는 분들을 위해 더 노력하며 강의를 녹화하도록 하겠습니다.
2015 ~ 2024.9 : 클라우드 SaaS 서비스 운영/개발(PL)
2024.10 ~ 현재 : 클라우드 PaaS 웹서비스(PM)
Khóa học
Đánh giá khóa học
- Tìm hiểu thuật ngữ thực tế cho lập trình viên Java mới vào nghề
- Phòng thí nghiệm dự án Java Microservice (MSA)
- Phòng thí nghiệm dự án Java Microservice (MSA)
- Phòng thí nghiệm dự án Java Microservice (MSA)
- Phòng thí nghiệm dự án Java Microservice (MSA)
Bài viết
Hỏi & Đáp
질문1. [2-7 최대 힙 메모리를 늘리면 좋은 점 ] GC가 적게 일어나면 무조건 좋다?
안녕하세요!네, 말씀하신대로 무작정 힙사이즈를 늘린다고 만능이 되는 건 아닙니다.힙이 늘어날수록 GC는 드물게 발생하지만, 한 번 멈출 때 지연 시간이 발생할 수 있습니다.제 생각엔 아래 2가지 답변을 드릴 수 있을 것 같아요.1. 개발 소스내 메모리 증식 코드를 최대한 튜닝할 것. - 짧은 시간내 메모리가 크게 늘어나는 코드는, 가능하면 메모리를 재활용해서 사용할 수 있는 방법으로 리팩토링하는 것을 의미합니다.2. GC 사용 전략 및 튜닝을 잘 할 것. - Parallel GC, G1 GC와 같은 GC마다 특징이 다르기 때문에, 프로그램 성격과 어떤 절차와 어느 정도의 속도로 메모리를 먹게 되는 지에 따라 GC 종류를 선택해서 사용하면 그나마 낫습니다. 예) G1 GC는 대규모 힙 사용 시, 힙을 연속된 큰 공간(Old Gen, Young Gen) 으로 보지 않고, 여러 단위로 분리해서 관리하기 때문에, stop-the-world도 쪼개진 부분에 대해서만 부분적으로 stop-the-world가 진행되므로 그나마 효과적으로 사용될 수 있습니다.힙을 늘리면 좋다고 말씀드린 부분은, 어쩔 수 없이 프로그램내 온전한 기능을 수행하기 위해 메모리를 사용해야 할 경우, 확보할 수 있는 최대 메모리가 부족한 경우에 대한 튜닝 해결법이오니, 참고 부탁드립니다! 감사합니다
- 0
- 2
- 27
Hỏi & Đáp
4-3부터 4-5강까지 소리가 안 나오는 것 같습니다.
안녕하세요! 영상 소리에 오류가 있어서 현재는 조치 완료한 상태입니다 ㅠㅠ확인 감사합니다!!
- 1
- 2
- 21
Hỏi & Đáp
wmi exporter - prometheus 연동 실패
안녕하세요! 제가 출장이어서 답변이 많이 늦었네요 ㅠㅠ혹시 아직 해결되지 않으셨다면, WMI 버전과 Prometheus 버전을 알 수 있을까요? 버전에 맞춰서 저도 해본 후 확인해드리도록 하겠습니다!
- 0
- 2
- 439
Hỏi & Đáp
스케일업 개념 관련 질문드려요
안녕하세요! 넵, 맞습니다. 블루 그린 배포는, 기존 프로세스를 순차적으로 하나씩 업그레이드 무중단 배포하는 운영 전략 중 하나입니다.이 방식은 이미 AWS에서도 사용되고 있는 방식인데, 해당 강좌기준으로 설명드리면 item이란 마이크로서비스가 5대 실행되어 운영되고 있다는 가정하에, 해당 마이크로서비스에 대해 기능 업그레이드 및 반영하게 될 경우 5개 중 1~2개씩 차례차례 업그레이드 후 상태를 본 뒤, 나머지 마이크로서비스들도 마저 진행하여 최종 5개 전체 Live 목표까지 달성할 수 있습니다.이는 업그레이드된 기능을 Live 반영(패치) 진행함하면서 발생하는 위험성(생각치 못 한 버그)를 대비하고, eureka의 마이크로서비스 route기능을 통해 무중단도 고려하여 작업되는 점이 장점이라고 이해하시면 됩니다.감사합니다~!
- 0
- 1
- 434
Hỏi & Đáp
첫번째 MSA 설명 문서 7페이지 model 오타요
안녕하세요! 오타 지적 감사합니다~!! 바로 수정해놓을게용 ㅎ
- 1
- 1
- 389
Hỏi & Đáp
직접 어플리케이션 서버에 요청을 보내면 동작하는데, gateway 서버로 보내면 404가 뜹니다
넵. 확인 감사합니다~!우선 eureka에 정상적으로 등록되어 있는 것을 보아, 말씀하신 대로 Gateway-server상태도 검증할 필요가 있어보입니다만, 그 외에 더 확인 요청드립니다. (eureka에 등록된 instance.id에 랜덤값이 셋팅된 건 크게 신경쓰지 않으셔도 됩니다.)1. eureka화면에 등록된 hostname을 보니, host.docker.internal로 되어 있네요. docker container로 실행 후 테스트한 게 맞을까요? 맞다면 아래와 같이 작업 부탁드립니다. 해당 작업은 eureka에 등록된 RMS 컨테이너 IP/PORT정보에 대해 Gateway-server에서 접속이 불가한 경우가 의심되어 체크해보기 위한 작업입니다. (RMS, GATEWAY 프로세스만 해당) 기존: docker run -e HOST_NAME=host.docker.internal --name=rms -d rms 변경: docker run --network=host --name=rms -d rms2. 404 에러 출력될 때 Gateway server의 콘솔 로그 공유 부탁드립니다.3. 만약 1번 작업 후 실패한 경우, rms-local.yml 파일에 대해서 instance.id를 다음과 같이 변경한 후, eureka 화면에서 어떻게 출력되는 지 공유 부탁드릴게요. (변경 대상: GATEWAY, RMS)[eureka.instance.instance-id 설정]${spring.cloud.client.hostname}:${spring.cloud.client.ipAddress}:${server.port} 감사합니다!
- 0
- 5
- 1.5K
Hỏi & Đáp
직접 어플리케이션 서버에 요청을 보내면 동작하는데, gateway 서버로 보내면 404가 뜹니다
안녕하세요!문의주신 내용 잘 확인해 봤습니다~몇 가지 의심되는 점 가이드 드리오니, 아래와 같이 수정 후 재 테스트 부탁드립니다.1. resources.config.gateway-server-local.yml (라우팅 설정 문제 의심) - rms쪽에 테스트하실 때 사용하셨던 uri가 있다면, 해당 uri에 대해 gateway 설정에 맵핑 부탁드려요.spring: application: name: gateway-server cloud: gateway: routes: - id: rms uri: lb://rms # 하단 부분에 아래와 같이, rms에서 사용하는 uri 패턴을 맵핑해주세요 predicates: - Path=/rms/** eureka 등록 확인http://localhost:8761 로 접속했을 때 rms 서비스가 정상적으로 등록됐는 지 확인 부탁드려요.만약에 등록이 안 되어 있는 경우, eureka server 콘솔 log에 에러 또는 경고문이 출력된 게 있는 지 확인 부탁드립니다. 감사합니다!
- 0
- 5
- 1.5K
Hỏi & Đáp
/actuator/refresh 가 동작하지 않습니다.
"file://경로"로 처리해서 해결하셨군요!보통 classpath에 속하지 않은 경로에 있는 설정 파일을 바라볼 때 file://로 처리하곤 했습니다.운영Live 리눅스 서버에 기동할 때 아래와 같이 폴더가 구성될 경우, file://로 처리했습니다!config-serviceㄴapp.jarㄴconf ㄴitem-service.yml이런 경우, yaml파일이 app.jar에 있는 게 아닌 app.jar 밖 (conf폴더)에 존재하여, 그럴 땐 아래와 같이 설정했습니다.file://config-service/conf/item-service.yml그래도 해결하셨다니 다행입니다!인텔리제이에서 어떤 설정이 classpath 감지를 가로막고 있는 지 원인을 알게 되면, 다시 답글 달도록 하겠습니다. 강의 재밌게 봐주셔서 감사합니다 ㅎㅎ궁금하신 점은 언제든지 문의 부탁드리겠습니다~!
- 2
- 3
- 592
Hỏi & Đáp
/actuator/refresh 가 동작하지 않습니다.
네, 안녕하세요! 내용은 잘 확인했습니다.build.gradle에 진행하신 내용으로 제가 동일하게 진행해도 정상적으로 처리되는 것은 확인했습니다.(사진)참고로 콘솔에는 다음과 같이 출력됩니다.(사진)말씀하신 대로 소스는 정상적으로 보입니다만, 콘솔에 아무 것도 출력이 안 된다는 것은 item-service의 actuator가 config서버의 설정파일 변경을 제대로 인식 못 하는 것으로 판단됩니다.몇 가지 아래 확인사항들에 대해서 확인이 필요해 보입니다.config-server 실행 후, http://localhost:8080/item-service/local 접속시, item-service-local.yml파일 내용이 잘 나오는 지 출력=> 이 상태에서 item-service-local.yml 파일내용 수정 후, 다시 url 접속시 변경된 내용으로 바뀌는 지 확인 item-service 실행 시, profile에 local모드로 잘 실행됐는 지 console 내용 확인=> 실행 시 콘솔 시작 내용은 아래와 같습니다. Fetching config from server at : http://localhost:8080 Located environment: name=item-service, profiles=[local], label=null, version=null, state=null=> 여기가 local이 아닌 경우, item-service.yml 파일을 바라볼 수 있습니다.위 내용 확인 부탁드립니다. 소스 문제보단, 어떠한 설정이나 환경 문제일 것으로 추측됩니다.
- 2
- 3
- 592