웹 백엔드 4기

Java & Spring

🙌 쓰레드풀을 이용해 두 비동기 작업 처리 완료 후 후속 처리하기

전체 코드는 여기에서 확인하실 수 있습니다 :) 두 곳에 Ajax 요청을 보낸 뒤, 결과를 취합해 후속 작업을 해야 한다면? 언제 처리가 완료될지 정확히 알 수 없는 두 가지 작업이 있고, 그 작업들이 모두 완료된 이후에 취합하여 후속작업을 처리해야 한다고 가정해보겠습니다. 가령 서비스 레이어에서 두 곳의 엔드포인트에 요청을 보내고, 응답 값을 취합해서 결과에 따른 분기처리가 필요한 상황이라고 생각해볼 수 있을 것 같아요. 요청한 클라이언트에게 즉시 결과를 응답해야 한다면 두 요청을 쓰레드 풀 작업 큐에 넣고, 두 Future 객체의 get() 메서드를 이용해 기다린 후 응답한다 이 방법의 장점은 하나의 요청이 응답될 때까지 기다렸다가 다음 요청이 나가는 것이 아니라, 동시에 두 가지 요청이 호출된다는 ..

Java & Spring

🥄 쓰레드풀 한 스푼

쓰레드라는 키워드는 정말 무수히 뻗어나가는 가지를 지닌 나무 같습니다. 무수히 많은 가지만큼, 아래로 뻗어있는 뿌리도 아주 깊고 넓습니다. 서버 성능 측정 및 튜닝 관련하여 쓰레드풀, 커넥션풀 등의 키워드가 떠오르고 CPU의 쓰레드, OS의 쓰레드까지 하나의 단어가 여러 맥락에서 사용되기도 하고.. 결국 한 스푼 한 스푼 떠먹는 수밖에 없는 것 같습니다! 조금씩 조금씩 쌓아가보죠~! 쓰레드 풀(Thread Pool)이란? 쓰레드 풀은 제한된 수 만큼의 쓰레드를 미리 생성해두는 곳을 말합니다. 이를 통해 아래와 같은 장점을 취할 수 있습니다. 향후 새로운 처리를 위해 스레드 생성 비용을 매번 발생시키지 않게 된다 스레드의 과도한 증폭으로 인한 CPU, 메모리 사용에 따른 성능 저하를 방지한다 요청이 많아져..

Server & Infra

AWS 의도하지 않은 요금 환불받기

CloudWatch를 구성하고 몇 주가 지난 뒤, 카드 결제 알림을 받게 되었습니다. 5만원 정도의 비용이었는데요, 의도하지 않은 사용 및 비용이었기에 환불 신청을 진행해보았습니다. Cost Explorer 확인 Cost Explorer 를 처음 접속한다면 구성하기 위한 24시간 가량의 시간이 필요하다는 안내와 함께 비용에 대한 안내가 바로 나오지 않습니다. 24시간 정도 기다린 뒤 다시 접속하면 일별 청구 요금과 서비스별 청구 요금을 확인할 수 있습니다. 정확히 연습삼아 CloudWatch를 구성했던 날부터 거의 동일한 금액이 청구되고 있었네요. 환불 문의 전 사전 조치 연습용으로만 프리티어를 사용하고 있었기에 큰 부담 없이 모든 서비스를 제거했습니다. CloudWatchAgent가 설치되어있던 EC2..

Server & Infra

AWS CloudWatch 구축기 (EC2를 On-Premise로)

AWS CloudWatch 를 이용해 여러 서버의 로그 기록을 한 곳에서 모니터링해봅시다! 이번 포스팅에선 대시보드, 시각화, 경보 등은 다루지 않습니다. 또한, CloudWatch 구성 관련 권한을 부여받지 못해 우테코 EC2 인스턴스에 Agent를 설치하여 On-Premise로 활용하고, 개인 AWS CloudWatch를 중앙 모니터링 서버로 활용하는 상황을 가정하고 있으니 이점 참고부탁드립니다! 통합 모니터링 시스템의 필요성 팀 프로젝트를 진행하며, 다른 요구사항을 구현하는 데 쫓기다보니 로그를 통합 관제할 수 있는 시스템을 구축해두지 않아 불편함을 느낀 적이 많았습니다. 매번 로그를 확인하려면 서버에 접속해서 log파일을 열어봐야만 했었어요. 특정 버그를 해결하기 위해 nginx, 개발서버, 운영..

우아한테크코스 4기

RestDocs 시작하기

API 문서 자동화를 위한 RestDocs 적용 방법에 대해 알아봅시다! API 문서 자동화는 정말 중요한 일입니다. 사람이 손으로 해서는 결국 한계가 있고, 규모가 커질수록 걷잡을 수 없게 됩니다. 가령 문서 파일로 API를 관리하고, 이를 공유하고 업데이트 하는 식으로 사용하게 될 경우, 형상관리를 하더라도 분명 이슈가 발생하게 됩니다. 코드에 반영을 했는데 문서에 반영을 하지 않는다던가, 최신화되지 않은 문서를 참조하고 있다거나, 변형된 파일이 공유된다거나.. 정말 많은 이슈가 생길 수 있습니다. 그래서, 프로덕트가 배포되는 시점에 문서도 자동화되어 배포될 수 있게 구성할 수 있다면, 그리고 프로덕션 코드에는 영향이 없다면, 정말 좋겠습니다. 초기 설정이 다소 까다로워서 그렇지 한 번 구축을 완료하..

리차드
'웹 백엔드 4기' 태그의 글 목록 (2 Page)