묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
https는 백엔드에도 적용해야하나요?
https는 백엔드에도 적용해야하나요?정말궁금합니다 ㅜㅜ프론트엔드만 설정하면될까요?
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
RAM & 스왑메모리 폭증하는 문제
안녕하세요! 강의 늘 잘 듣고 있습니다! CI/CD 배포하다가 서버가 자꾸 죽어서 스왑 메모리까지 도입을 했는데도 비정상적으로 RAM과 스왑메모리가 꽉 차는 이슈가 있는데 도저히 어떻게 해결해야할 지 몰라서 이렇게 질문 남깁니다! 서버 인프라 환경 ELB - EC2(t3.small, EBS: 30GiB)EC2 내부 : Docker 기반 Spring Boot + MySQL 8.0 + Redis문제 상황 어디가 구체적으로 문제인지 몰라서 그냥 구구절절 다 설명드릴게요.처음부터 CI/CD가 안된건 아닙니다. 원래 잘 됐었는데요.인증 도메인(일반/소셜 로그인) 정상 작동하는거 확인하고 push 해서 배포완료 후 docker-compose.yml 수정해서 push 하고나니까 갑자기 CICD 할때마다 서버가 다운되는 문제를 발견했습니다. yml 파일을 바꾸게 된 경위는, 토큰 받아오는 과정에서 에러 뜨는거 보고 docker-compose.yml에 redis 관련 환경변수를 등록하는걸 깜빡했구나 싶어서 그거 추가한게 다 입니다. 이게 전혀 문제가 안될텐데 이상하게 이 시점 이후로 계속 문제가 터져서 좀 난감합니다. 애플리케이션이래봤자 아직 인증도메인 & 유저 간단한 CRUD가 전부라서 무거울게 없기 때문에 t3.small로도 충분할거라 생각했지만, 혹시나 하는 마음에 t3.medium으로 scale up을 해봤습니다.그랬더니 이번엔 RAM 4GB와 Swap Memory를 5.9GB 까지 잡아먹는 비정상적인 현상이 계속 반복되더라구요. 혹시 한꺼번에 docker build를 해서 그런가 싶어서 container 별로 나눠서 빌드시키고 각 단계마다 sleep을 줘봤는데도 결과는 똑같았습니다. 아래가 이제 t3.small (Swap 4GB 설정)이구요 이게 t3.medium (Swap 6GB)입니다. (위와 로직이 좀 달라요. 근데 이러나 저러나 결과는 똑같아서..) 배포 관련 파일대상 : deploy.yml, docker-compose.yml, Dockerfile 글자 수 제한 이슈로 노션에다가 코드 올렸습니다.https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link 질문 혹시 제 deploy.yml이나 docker-compose.yml 에 문제가 있나요? 메모리 80% 이상 차지하는게 전부 Docker 관련 프로세스여서요. Update 2: 테스트 결과에 따라 하단의 질문들이 원인이 아니라는게 검증됨아니면.. t3.small이 docker 기반 Spring Boot + MySQL + Redis를 빌드 못할 수준인가요? (아닐 것 같긴해요.) 아니면 제 인증 구현 방식에 문제가 있어서 저럴 수도 있는건가요? Redis 기반으로 Token에 블랙리스트 설정하고, 클라이언트한테 쿠키로 토큰 심어서 내보내는 방식인데, 혹시 이게 문제가 될 수도 있는건가요? 근데 로컬에서 redis 랑 스프링부트 가동하고 htop으로 메모리 변화를 봤을 땐 문제 없어보이긴 했습니다.긴 글 읽어주셔서 감사합니다. Update 1: EC2에 직접 실행해본 결과 EC2에서 docker-compose.yml을 그 안에다가 직접 만들어서 mysql, redis만 띄우고Spring Boot는 클론해서 환경변수 직접 세팅해주고 실행해봤습니다. 이는 혹시나 혹시나 애플리케이션이 너무 비정상적으로 설계되서 메모리를 많이 잡아먹진 않을까 하는 우려에 임시로 이렇게 세팅해뒀습니다.결과적으로 잘 돌아갑니다. 메모리가 1.36GB 정도 잡히긴 하지만...? 그래도 redis + mysql + spring boot 다 돌렸을 때 이정도고 Swap 메모리 있으니까 괜찮지 않을까 하는 판단 중입니다. (아니면 호되게 지적해주세요) 하단은 임시로 세팅하기 위한 docker-compose.yml 입니다.https://hooby.notion.site/CICD-OOM-2a6f6c063f3e805ba105d78284365fbe?source=copy_link한번 이것도 CI/CD로 돌려봐야겠긴 한데, 우선 문제가 됐던 deploy.yml과 docker-compose.yml에서 어떤 문제가 있었길래 저런 사태가 발생했던건지 알고싶습니다.Update 2: 우선 대안으로 SCP 활용 강의에서 초기 프로젝트에 좋다고 했던 방법대로 해결했습니다. CICD 과정에서 메모리는 900MB 미만 수준에서 안정적으로 돌았습니다. 근데 제가 원했던 설계는 Docker로 Spring Boot + MySQL + Redis 일원화였기 때문에 개발 완료되는대로 다시 찾아봐야겠습니다.https://hooby.notion.site/Server-Infra-Setup-Remodeling-2a8f6c063f3e808a8674fbc2a62cdd22?source=copy_link
-
미해결비전공자도 이해할 수 있는 리눅스 입문/실전
표준출력과 표준에러출력
안녕하세요표준출력 강의를 듣다보니기존파일을 삭제하지 않고 표준출력과 표준에러출력을 같은파일로 리다이렉션은 내용은 나오지않아서 ex) ls >> all.txt 2>>&1이런식으로 했더니 작동을 하지않는데어떻게 해야하나요?
-
해결됨쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
worker node에 대해서
안녕하세요 강사님.저는 sprint 1,2를 수강했고 3을 수강 중에 쿠버네티스 관련 서적을 발견해 읽어보며 공부하고 있습니다.worker-node 는 중요하지 않나요 ?kubelet는 pod spec을 받아서 cri로 컨테이너 실행을 담당한다, 스케줄링 관리한다, 로 이해했는데 아직까진 워커 노드에 대한 개념이 없어서, 실무에서는 깊게 파고 들어야 사용하는 것이다 (굳이 안써도 되지만 쓰면 더 효율적이다?) 인 것일까요??sprint 4나 대세는 쿠버네티스를 봐야 이해가 될까요? 블로그에 https://cafe.naver.com/kubeops/496 이부분이 있길래 문의드립니다 !gke관련저는 클라우드 경험 없는, 온프레미스 경력만 있는 웹 개발자입니다. 그러다 보니 이해를 못했는 이슈인 것 같은데, 구인 사이트를 보면 종종 devops를 클라우드 + 온프레미스를 같이 진행하는 공고를 많이 봤습니다. 그런 경우에는 데이터를 어떻게 관리를 할까요? 온프레미스같은 경우에는 pv로 진행을 하면 되지만, 클라우드는 자체 pvc가 있어서 같은 폴더에서 관리하면 수기로 작성한 pvc파일이 먹혀서 작동하지 않더라고요 . (같은 곳에서 관리를 하니, 온프레미스에서 셋팅한 pvc를 자꾸 무시합니다.) 그리고 volum을 공유하지 못한다고 알고 있는데 데이터는 어떻게 관리할까요 ?? (업무적인 것이 아니라 개인 공부중입니다 ..) [👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!
-
미해결강의 하나로 끝내는 백엔드 모든 지식!
13강 보안 기초 - CSRF 검증 방식 추가 질문 입니다.
안녕하세요. 강의 너무 잘 듣고 있습니다. CSRF 대응 관련하여 CSRF Token을 form hidden으로 처리하는 방식이 대표적인 처리 방법으로 알고 있고, 강의에서도 그렇게 소개 시켜주셨습니다. HTML을 서버측에서 렌더링 할 때에는 언급해주신 프레임워크에서 제공해주는 기능을 활용하면 간단하게 구현이 가능한것으로 알고 있는데, 만약 프론트와 백엔드가 분리된 환경에서는 CSRF 토큰을 어떤식으로 검증 및 처리하는게 일반적인가요? 당장 생각나는건, 특정 api 요청 전에 반드시 csrf token 발급을 요청하고, 그 발급받은 token을 api요청에 header 쪽에 넣어서 보내서 검증하는 방식인것 같습니다만, 매 api 요청마다 처리해줘야하는 부분이라 다소 불편한 방식인 것 같네요..
-
미해결초보자도 딱 10일만에 쿠버네티스 감 잡기
라이브 방송은 지나간것은 다시 못보나요?
진도가 좀 늦어서 그러는데 라이브 방송은 나중에라도 다시 볼수 없나요? ㅠ
-
미해결초보자도 딱 10일만에 쿠버네티스 감 잡기
라이브 채팅 오류
안녕하세요!! 챌린지 참여하고 있는 수강생입니다! 오늘 라이브도 넘 유익했습니다! 제가 퇴근이 늦어져서 모바일로 참여했는데 이게 플랫폼 문제인지 채팅이 잘 전송이 안되더라구요ㅠㅠ (다른 참여하신 분들도 비슷한 문제를 겪고 채팅이 잘 안되지 않았을까 싶어요!) 라이브때 꼭 여쭤보고 싶은 질문이 있었는데 여기에 남겨봅니다 ㅎㅎ- 10일간의 챌린지 과정 이후에 어떤식으로 쿠버네티스 관련 학습을 이어나가면 좋을까요?- 현재 실무에서 AWS ECS 기반으로 컨테이너를 배포 및 관리하고 있는데 아직은 기초 부분만 배워서 그런걸 수 있지만 아직 가진 비슷한 기능 위주더라구요! 어느점이 가장 차이가 크고 (EKS 등의 쿠버네티스 기반과 비교해서) 그리고 어느 시점에 EKS로 마이그레이션이 필요해지는 시점이라고 생각하시는지 궁금합니다 :)
-
미해결실전에서 바로 써먹는 Kafka 입문
Kafka 음성메세지 브로커로도 적합한가요?
회사에서 realtime 음성 인식기 구현할 일이 생겼는데, 음성의 청크 단위 큐를 어떤식으로 관리하는지 찾아보다가 kafka 를 알게되어서요. 10~50명 정도의 동시접속자라고 한다면 어떤방식을 사용해야하는지 궁금합니다.
-
해결됨비전공자도 이해할 수 있는 CI/CD 입문·실전
섹션 4, 5와 6, 7은 유사한가요?
현재 스프링부트 프로젝트의 인프라와 CI/CD를 공부하고 있습니다섹션 4, 5와 6, 7이 프레임워크 (스프링부트 / Nest.js)의 차이만 있는것으로 보이는데6, 7 섹션을 우선 넘어가도 괜찮은지 궁금합니다
-
미해결비전공자도 이해할 수 있는 쿠버네티스 입문/실전
이미지가 없다고 에러가 계속 떠요
apiVersion: v1 kind: Pod metadata: name: spring-pod spec: containers: - name: spring-container image: spring-server ports: - containerPort: 8080 imagePullPolicy: IfNotPresentspring-pod.yaml파일을 작성을 한뒤 kubectl delete pod spring-pod 명령어로 pod를 삭제하고kubectl apply -f spring-pod.yaml 명령어를 입력했는데 계속 사진처럼 ErrImagePull이 됩니다.이미지를 pull로 당겨오지 못해서 발생하는 오류인것 같은데 이미지는 있는것으로 확인 됩니다. 뭐가 문제인걸까요?
-
미해결비전공자도 이해할 수 있는 Nginx 입문/실전
Nginx의 성능을 알고 싶으면 리눅스 위에서 실행 시켜야 하잖아요..
안녕하세요.제가 집에서 Nginx 성능 테스트를 진행해보았습니다.먼저,Windows 환경(로컬 컴퓨터) 에서 직접 Nginx를 설치 후 실행했고,WSL2 환경(리눅스 커널 기반) 위에서도 Nginx를 설치해 실행해보았습니다.그런데 ChatGPT에 문의해보니,Nginx의 sendfile()을 통한 커널 레벨 zero-copy 최적화를 제대로 체감하려면Windows가 아닌 리눅스 환경에서 실행해야 한다고 하더군요.Windows 커널에서는 해당 기능을 완전히 지원하지 않는다고 합니다.또한,WSL2 위에서 Nginx를 실행하고 Windows 브라우저로 접속할 경우,WSL2(리눅스 커널)와 Windows(호스트 OS) 간 통신 과정에서지연이 발생할 수 있다는 설명도 들었습니다. 그래서 “그럼 도커를 쓰면 되나?” 싶어서예전에 구매했던 강사님의 Docker 강의를 참고하려고 했습니다.마침 강의 내용 중 Nginx 설치 및 설정 실습 파트가 있어서 그대로 따라보려 했는데요,ChatGPT의 설명에 따르면 Docker도 결국 WSL2 위에서 동작한다고 합니다.즉, WSL2에서 직접 실행하는 것보다는 최적화되어 있지만,Windows 브라우저에서 요청을 보낼 때는 여전히 변환 과정이 존재해서원하는 수준의 “커널 레벨 I/O 성능 비교”를 얻기는 어렵다는 답변을 받았습니다.제가 확인하고 싶은 부분은 단순히Tomcat과 Nginx 간의 정적 콘텐츠 처리 성능 차이입니다.(참고로, Nginx는 이벤트 드리븐 I/O 모델(epoll 등)을 기반으로 동작하며,리눅스에서는 sendfile() 시스템 콜을 통해커널 수준에서 파일을 소켓으로 직접 전송하는 zero-copy 최적화를 지원한다고 합니다.이 기능은 리눅스 커널에서 가장 효율적으로 동작하며,Windows 환경에서는 동일한 수준의 최적화가 적용되지 않는다고 합니다.ChatGPT를 통해 얻은 정보이며, 이 부분을 실제로 테스트해보고 싶었습니다.)그래서 궁금한 점이 있습니다. 👉이러한 sendfile() 기반 zero-copy 최적화를 직접 체감하려면,강사님께서 강의에서 보여주신 것처럼 AWS 리눅스 서버(EC2) 위에서Nginx를 띄워 테스트하는 것이 가장 정확한 방법일까요?즉, Windows나 WSL2 환경이 아닌,AWS 리눅스 환경에서 Nginx를 실행해야만 커널 수준 I/O 성능을 정확히 확인할 수 있는지 궁금합니다 ㅠㅠㅠㅠ Nginx에 대해 공부해보고 싶은데 환경 세팅부터 막히니까 조금 답답합니다.. ㅠㅠ ㅠㅠ ㅠㅠ
-
미해결실전에서 바로 써먹는 Kafka 입문
재시도조차 실패한 메시지 사후 처리하기
재시도조차 실패한 메시지들은 dlt 로 이동하게 되고 이 메시지들에 대한 처리를 위해 @KafkaListner 를 사용해서 처리하는 방법을 보여주셨는데요. 리서치를 하다보니 @DltHandler 기능이 있는걸 알게됐습니다. dlt 를 처리한다는 부분에서 @DltHandler 가 좀 더 어울릴거 같은 느낌인데 @KafkaListener 로 처리하신 특별한 이유가 있으실까요?
-
미해결실전에서 바로 써먹는 Kafka 입문
retry 시 동작과정 질문
kafka @RetryableTopic 에 대해 알아보다보니 궁금한점이 생겨 질문 드립니다. @RetryableTopic 가 없어도 retry 는 기본적으로 진행하는거 같은데요. 제가 알아본 바로는 아래와 같은 차이점이 있는것 같았습니다. @RetryableTopic 을 사용하지 않으면 'dlt' 로 메시지가 이동되지 않는다.@RetryableTopic 을 사용하면 'dlt' 토픽이 없는 경우 자동으로 만들어주고 dlt 토픽으로 메시지를 이동시켜준다.@RetryableTopic 을 사용하지 않으면 재시도는 하지만 재시도동안에는 partition 을 blocking 한다 (= 블로킹).@RetryableTopic 을 사용하면 재시도 하기전에 retry 토픽으로 이동시키고 consumer 의 스레드를 blocking 하지 않고 별도 스레드에서 retry 를 진행한다. (= 논블로킹)강좌에서는 retry 중에는 partition 이 blocking 된다고 하셨는데, 그 부분과 좀 다른거 같아서 문의 드립니다..! 만약 @RetryableTopic 이 논블로킹으로 별도 스레드에서 진행이 된다면 순서보장이 안되는거라서 순서보장이 필요하다면 이걸 사용하면 안되는게 아닌가 싶습니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
JsonSerializer & JsonDeserializer
예제에서는 StringSerializer 와 StringDeserializer 를 사용하도록 설정하고 ObjectMapper 를 통해 직렬화/역직렬화를 해주셨는데요. 혹시 JsonSerializer 와 JsonDeserializer 를 사용하지 않는 이유가 있을까요? 그리고, JsonDeserializer 를 사용하든 StringDeserializer 를 사용하든 역직렬화를 할 때 실패하게 되면 offset commit 이 되지 않고 재시도를 하는동안 해당 message 의 partition 은 blocking 된다고 이해하고 있는데 맞을까요? 이 경우에도 retry 이후, 해결 안되면 dlt topic 으로 이동하는게 맞을까요?
-
미해결실전에서 바로 써먹는 Kafka 입문
auto.create.topics.enable=false 설정
리서치를 하다보니 실무에서는 auto.create.topics.enable=false 설정을 사용하는게 좋다는 글을 많이 보게 되었습니다. 네이밍 컨벤션이나 예상치 못한 topic 의 생성 등을 방지하기 위함으로 이해했는데요. 그럼, xxx.dlt 와 같은 topic 들도 직접 생성을 해줘야 하는지 궁금합니다. 그리고, 실제로 실무에서 해당 설정을 많이 사용하는지 또한 궁금합니다 🙂
-
미해결실전에서 바로 써먹는 Kafka 입문
email 발송 로직 관련
consumer 쪽에서 이메일 발송 로직 대신 Thread.sleep(3000) 을 써주셨는데요.이 말은, consumer 쓰레드 자체에서 이메일 보내는 로직을 실행한다고 가정해서 그런거라고 이해했습니다. 개인적으로 consumer 는 message 를 consume 만 하고, 실제 비즈니스 로직 (email send) 는 별개의 쓰레드로 async 하게 동작하는게 더 효율적이라고 생각이 되는데요. email 발송 로직을 별개의 쓰레드로 할 때와 현재처럼 consumer 쓰레드에서 할 때 차이점 및 주의해야할 점 (ex. offset 수동 커밋 등) 이 있을까요?
-
미해결실전에서 바로 써먹는 Kafka 입문
concurrency 설정 + 같은 groupId 내에 consumer 여러개
concurrency 관련하여 궁금한점이 있습니다. 하나의 topic (ex. email.send) 에 5개의 파티션이 있다고 가정. 같은 groupId 로 지정된 consumer 2 (A, B)개가 있고 각각 concurrency=3 으로 설정이 되어 있다고 가정 이런 경우, 같은 groupId 내의 컨슈머는 같은 partition 을 consume 할 수 없으니 1개의 thread 는 동작하지 않게 된다고 보면 될까요?A-1 thread ===> partition 1 A-2 thread ===> partition 2 A-3 thread ===> partition 3 B-1 thread ===> partition 4 B-2 thread ===> partition 5 B-3 thread (동작안함) ====> x추가로 실무에서는 일반적으로 concurrency 옵션을 사용하는지 궁금합니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
concurrency 동작 안됨
하나의 consumer 에서 concurrency 옵션을 통해 멀티 쓰레드로 동작이 되는지 테스트를 해봤는데 강좌화면에서처럼 consumer 가 멀티스레드로 동작하지 않는것 같습니다. partition : 3개concurrency : 3partitional.class: org.apache.kafka.clients.producer.RoundRobinPartitional 로그 : 로그를 봐서는 roundrobin 으로 설정을 했음에도 하나의 partition 으로 메시지가 들어가는것 같습니다. 그리고, consumer 도 하나의 스레드로 message 를 consume 하는것으로 보입니다.2025-10-15T16:01:15.466+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-4","price":4000} 2025-10-15T16:01:17.473+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:17.474+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-8","price":8000} 2025-10-15T16:01:19.480+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:19.481+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-16","price":16000} 2025-10-15T16:01:21.485+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:21.486+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-15","price":15000} 2025-10-15T16:01:23.491+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:23.491+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-5","price":5000} 2025-10-15T16:01:25.494+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:25.495+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-18","price":18000} 2025-10-15T16:01:27.499+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:27.501+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-3","price":3000} 2025-10-15T16:01:29.510+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:29.510+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-9","price":9000} 2025-10-15T16:01:31.514+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:31.515+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-13","price":13000} 2025-10-15T16:01:33.522+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:33.522+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-1","price":1000} 2025-10-15T16:01:35.527+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:35.529+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-11","price":11000} 2025-10-15T16:01:37.532+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:37.532+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-19","price":19000} 2025-10-15T16:01:39.538+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:39.538+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-7","price":7000} 2025-10-15T16:01:41.539+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:41.539+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-6","price":6000} 2025-10-15T16:01:43.543+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:43.544+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-20","price":20000} 2025-10-15T16:01:45.554+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:45.555+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-10","price":10000} 2025-10-15T16:01:47.560+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:47.560+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-14","price":14000} 2025-10-15T16:01:49.566+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:49.566+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-17","price":17000} 2025-10-15T16:01:51.568+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:51.568+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-2","price":2000} 2025-10-15T16:01:53.575+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:53.577+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-12","price":12000} 2025-10-15T16:01:55.581+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. github 소스코드 : https://github.com/writer0713/kafka-practice/blob/4cee9e560b2459c4bcbb6b183f3791d70cddd3d1/src/main/kotlin/com/writer0713/kafkapractice/service/OrderService.kt#L34
-
해결됨실무에서 꼭 필요한 서버 모니터링(Zabbix)
강의 소리가 너무 작아요.
강의 목소리가 너무 작아서 집중을 할 수가 없네요.무슨 말을 하는지 하나도 모르겠어요.
-
미해결대규모 트래픽 처리를 위한 부하테스트 입문/실전
부하 테스트 환경 구성에 대한 질문
부하 테스트를 스테이징 환경에서 진행하려고 합니다. 이때 정확하고 신뢰도 높은 결과를 얻기 위해서는 EC2, DB 스펙 등의 인프라와 데이터 규모까지 운영 환경과 완전히 동일한 조건에서 테스트해야만 하는지 궁금합니다. 만약 현실적인 비용 문제로 환경을 100% 동일하게 구성하기 어렵다면, 어느 수준까지 환경을 맞춰야 유의미한 데이터를 얻을 수 있을지 질문드립니다.