[Sites]
Youtube 바로가기
LinkedIn 바로가기
[Career]
現) JSCODE - 대표 멘토, CEO
前) (주)트라이포드랩 - CTO
前) (주)온리원유니버스 - CTO
前) 달리(DALY) - CTO
前) 팀메이트(Teammate) - CEO
[Books]
『Do it! JSCODE의 AWS 입문』, 이지스퍼블리싱 (2025.05)
[ETC]
- 기업 대상 개발 컨설팅 및 코딩 교육 활동
강의
로드맵
전체 7수강평
- 비전공자도 이해할 수 있는 쿠버네티스 입문/실전
게시글
질문&답변
email 발송 로직 관련
안녕하세요 ! 질문 잘해주셨어요 ~질문해 주신 내용에 대해 답변드려 볼게요 ! 우선 말씀해 주신 대로 Consumer가 메시지를 consume만 하고,실제 비즈니스 로직은 별개의 스레드로 async하게 처리하는 방식이유의미한 성능 차이가 발생하진 않을 수 있습니다!비동기로 이메일 발송을 처리한다고 하더라도이메일 발송 처리가 완료된 이후에 커밋을 해야 하기 때문에결국 쓰레드가 작업을 계속 물고 있어야 하는 것에는 변함이 없습니다!그러다보니 불필요한 async 처리는 성능 향상은 없이 복잡성만 가중 시킬 수 있습니다~!! 제가 질문을 잘 이해하지 못한 것일 수도 있으니원하시는 답변이 아니라면 대략적인 예시 코드랑 같이추가 질문 부탁드리겠습니다~!!
- 0
- 2
- 18
질문&답변
concurrency 설정 + 같은 groupId 내에 consumer 여러개
안녕하세요 ! 질문 잘해주셨어요 ~질문해 주신 내용에 대해 답변드려볼게요 ! "이런 경우, 같은 groupId 내의 컨슈머는 같은 partition 을 consume 할 수 없으니 1개의 thread 는 동작하지 않게 된다고 보면 될까요?"-> 네 맞아요 !같은 groupId를 가진 Consumer A, B가 각각 concurrency=3으로 설정되어 있고, 토픽에 5개의 파티션이 있다면, 총 6개의 쓰레드 중 1개는 파티션을 할당받지 못하고 놀게 돼요 !카프카는 같은 Consumer Group 내에서 하나의 파티션은 오직 하나의 컨슈머 쓰레드만 처리할 수 있다는 원칙이 있기 때문에, 파티션 수(5개)보다 컨슈머 쓰레드 수(6개)가 많으면 남는 쓰레드는 메시지를 받지 못하게 돼요 ! "실무에서는 일반적으로 concurrency 옵션을 사용하는지 궁금합니다.-> 실무에서 자주 사용돼요 !concurrency 옵션을 사용하면 하나의 Spring Boot 애플리케이션 내에서 여러 개의 컨슈머 쓰레드를 띄울 수 있어서, 메시지 처리량(Throughput)을 높이는 데 효과적이기 때문이죠 :) 추가로 궁금하신 점 있으시면 언제든 질문 남겨주세요~~
- 0
- 2
- 20
질문&답변
concurrency 동작 안됨
안녕하세요 ! 질문 잘해주셨어요 ~오타로 인한 디버깅 경험..!개발자들의 숙명이죠..ㅎㅎ그래도 문제 파악과 수정까지 잘되서 다행이네요 !!이후 다른 궁금하신점 생기시면 언제든 질문 남겨주세요 ~늘 파이팅입니다 !
- 0
- 3
- 21
질문&답변
프리티어 비용 질문있습니다~
안녕하세요 ! 질문 잘해주셨어요 ~질문해 주신 내용에 대해 답변드려볼게요 ! "이게 실제 사용량 만큼 비용이 얼마인지는 나오지만 제가 지불할 금액은 없는걸까요?"-> 네 맞아요 ! 우선 결론부터 말씀드리면 이미 말씀해 주신 대로 사용량만큼 비용이 얼마인지는 나오지만 지불할 금액은 없어요 !비용 분석(Cost Explorer)에서는 "서비스별로 발생한 사용량 기반의 비용 추정치"를 보여주는 거예요 !“계산상 청구 가능성 있는 비용”일 뿐, 실제로 지불하게 될 금액은 Free Tier 혜택 적용 후 금액에서 결정돼요!즉, 여기 나온 비용은 프리티어 사용량 한도를 초과했는지 체크하기 위한 참고용 지표에요 ~청구서(Billing) 화면에 보이는 금액 바로 이게 바로 프리티어 혜택이 적용된 후 실제 청구 예정 금액이에요! 실제로 결제할 금액은 현재로서는 "0원"이죠 :)결론적으로, Cost Explorer는 AWS 내부의 “비용 사용 데이터”를 빠르게 보여주지만, Billing은 “검증, 할인, 크레딧, 프리티어 적용 후 최종 확정된 금액”을 보여줘요 !하지만 더욱 정확하게 확인해 보기 위해 5일 정도 후 다시 한번 두 금액을 비교해 보시는 걸 추천드려요 ! 아래 공식문서를 통해 저는 결제 금액은 0원이라고 생각을 하고 있는데, 실제로는 다른 이유로 비용이 발생했으며 아직 동기화가 안돼서 다른 금액을 보여줬을 수도 있을 것 같아서요~확인해 보신 뒤 공유해 주시면 최근에 프리티어로 가입하신 다른 수강생분들에게도 도움이 될 것 같네요 !https://docs.aws.amazon.com/cost-management/latest/userguide/ce-exploring-data.htmlhttps://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/differences-billing-data-cost-explorer-data.html추가로 더 궁금하신 점 있으시면 언제든 추가 질문 남겨주세요 ~
- 0
- 1
- 35
질문&답변
redis 적용을 위한 service 반환값
안녕하세요 수현님 ! 질문 잘해주셨어요 ~질문해 주신 내용에 대해 답변드려볼게요 !우선 'ClassCastException: LinkedHashMap cannot be cast to Page' 에러가 발생하는 이유는Redis가 Page 객체를 직렬화/역직렬화하는 과정에서 문제가 생기기 때문이에요 !Redis에 저장될 때 Page 객체가 JSON으로 변환되면서 LinkedHashMap 형태로 저장되는데, 이걸 다시 꺼낼 때 Page 객체로 변환하지 못해서 발생하는 에러죠 :) "강의에서는 그냥 getContent를 List로 반환값을 보냈는데 혹시 위 코드처럼 new PageImpl 형식으로 return 해도 괜찮을까요?"-> 우선 결론적으로 'new PageImpl 형식으로 return '보다 List로 반환하는걸 권장드려요 !new PageImpl() 방식도 동작할 수는 있지만, 권장하지 않아요 !PageImpl도 결국 Page 인터페이스를 구현한 객체라서 직렬화 문제가 발생할 수 있어요 ! 그래서 실제로 동작하더라도 불안정할 수 있고, Spring이나 Redis 버전이 바뀌면 또 다른 문제가 생길 수 있어요 ! 혹시나 페이지네이션의 메타 데이터를 포함해서 응답하는 방법에 대해궁금하신 거라면 댓글 한 번만 남겨주세요~!!추가로 더 궁금하신 점 있으시면 언제든 추가 질문 남겨주시구요!늘 파이팅입니다 😋
- 0
- 2
- 22
질문&답변
부하 테스트 환경 구성에 대한 질문
안녕하세요! 질문 너무 잘 해주셨어요 ~질문해주신 내용에 대해 답변 드려볼게요!우선 원칙적으로는 ‘운영 환경과 최대한 유사하게’ 구성해야 해요 !부하 테스트의 목적은 '운영 중 발생할 수 있는 실제 트래픽 상황을 미리 검증하는 것'이기 때문이죠 :)특히 EC2 인스턴스 타입, RDS(DB 스펙, 스토리지 타입), 네트워크 구성 (VPC, 서브넷, 보안그룹),데이터 크기 및 인덱스 구조 와 같은 항목들은 결과에 직접적으로 영향을 미쳐요 !하지만 현실적인 제약이 있다면 '병목 구간 중심으로 유사하게' 구성해도 충분해요 !실무에서도 비용 문제로 운영 환경을 그대로 복제하기 어려운 경우가 많아요 ~이럴 땐 모두 100% 동일하게 맞추는 대신 핵심 병목 지점이 예상되는 영역만 동일하게 맞춰도 의미 있는 데이터를 얻을 수 있어요 !이렇게 “병목이 될 가능성이 높은 구성요소 중심으로” 맞춰두면 Throughput(처리량)과 Latency(지연 시간) 분석이 충분히 유의미해져요 :)이런 식으로 접근하시면 비용도 절약하면서 충분히 의미있는 테스트 결과를 얻을 수 있어요 !추가로 더 궁금하신 점 있으시면 편하게 추가 질문 남겨주세요~😊
- 0
- 2
- 26
질문&답변
aws 프리티어 비용
안녕하세요! 질문 잘해주셨어요 ~~질문해주신 내용에 답변드려볼게요 ! "결과적으로 aws 에서 사용하는건 ec2(t3.micro,스토리지 8gb) 1대, 탄력적ip 1개 총 2가지인데 프리티어에서도 비용이 발생할 가능성이 있을까요?"-> 최근에 프리티어로 계정을 생성하셨다면 비용이 발생할 가능성이 없어요 !2025년 7월 15일부터 바뀐 프리티어 정책 덕분에 과금이 발생하지 않아요 :)공식문서와 정리된 내용을 확인하고 싶으신 경우 아래 보충 자료를 참고해 보시는 걸 추천드려요 !https://inf.run/Bd5LF추가로 궁금하신 사항있으시면 언제든 추가 질문 남겨주세요 !!
- 0
- 2
- 38
질문&답변
Deployment-service 연결 과정에서 오류..?
안녕하세요 성진님! 질문 잘해주셨어요 ~~질문해주신 내용에 답변드려볼게요 ! 우선 Windows 11 환경에서 Docker Desktop과 WSL을 사용하시는 경우, NodePort로 직접 접속이 안 되는 건 정상적인 현상이에요 !Docker Desktop for Windows는 WSL2 내부에서 Kubernetes를 실행하기 때문에, NodePort가 WSL의 네트워크 내에서만 바인딩돼서 Windows의 localhost에서 바로 접근할 수 없어요! "어떻게 해야 포트 포워딩 작업 없이 바로 서비스에 접근 가능할까요..?"-> 포트포워딩 대신 "Docker Desktop의 여러 설정들을 수정"해서 바로 서비스에 접근을 할 수 있어요 !하지만 Docker Desktop 환경은 로컬 개발용으로 특수한 경우여서 이런 환경을 굳이 수정하시는 건 권장 드리지않아요 !그래서 포트포워딩을 그대로 사용하시는 걸 훨씬 권장드려요 !실무 환경에서도 로컬에서 테스트할 때는 포트 포워딩을 자주 사용하니 학습 목적에도 더 적합해요 ~AWS EKS나 다른 클라우드 환경에서도 로컬에서 Pod나 Service를 직접 테스트할 때는 포트포워딩을 활용하는 경우가 많아요:) 추가로 궁금하신 사항있으시면 언제든 추가 질문 남겨주세요 !!
- 0
- 2
- 23
질문&답변
ec2 우분투 도커 설치 관련
안녕하세요! 질문 잘해주셨어요 ~~질문해주신 내용에 답변드려볼게요 ! "공식 문서로 할때는 -o로 직접 저장을 했는데 강사님이 써주신 방식이 어떤 방식의 이점이 있는지, 실제로 업무에서 사용할 땐 아래 방식으로 써야하는지 궁금합니다"-> 우선 결론적으로 실무에서는 공식문서의 방식을 사용하시는 걸 추천드려요 !공식 문서의 방식이 최신 표준 방식이고, 강의에서 사용한 apt-key 방식은 과거의 표준방식이에요 !강의 자료가 제작된 시점에는 apt-key 방식이 일반적이었지만, 현재는 /etc/apt/keyrings/ 디렉토리에 키를 저장하는 방식이 더 권장되는 방법이에요 ~ "강사님 명령어를 살펴보니 다른 방식으로 github에서 받아오시는것 같고 추가적인 명령어도 더 들어가는데 어떤 장점 때문에 이 방식을 쓰시는지 궁금합니다"-> 해당 명령어 또한 강의자료를 제작할 당시의 표준이라 사용했었어요ㅎㅎ공식 문서를 보는 게 어렵지 않다면 최근에 업데이트 된 공식문서의 방식을 사용하시는 걸 추천드립니다! 참고로 두 방식 모두 정상적으로 동작하기 때문에 강의를 따라가시면서 학습하시는 데에는 지장이 없어요 :)추가로 궁금하신 사항있으시면 언제든 추가 질문 남겨주세요 !!
- 0
- 2
- 30
질문&답변
docker 최신 버전 PGDATA 경로 설정 업데이트 소식 공유
안녕하세요 가즈아님! 좋은 내용 공유해주셔서 감사합니다:)말씀해주신 내용 참고해서 보충 자료도 올려놓겠습니다!
- 0
- 2
- 34