본문 바로가기
728x90

분류 전체보기286

level 3 회고 회고 작성하는 걸 미루다가 방학 마지막날에 쓰게 되네. 지금까지 했던 레벨 중에서 가장 빨리 지나간 레벨이다. 정신차려보니 그냥 지나가있다. 좋은 팀원들을 만나서 원하던 팀 프로젝트를 해볼 수 있었다. 팀 프로젝트를 하면서 힘들었던 기억을 없었던거 같다. 오히려 즐거웠던 기억들만 떠오른다. 그나마 제일 힘들었던 거는 금연 초반에 금단현상 정도? 팀 프로젝트 하면서 많은 AWS EC2 인스턴스를 사용한거랑 DB backup, 모니터링, CI/CD 처럼 이전에는 해보지 못한 것들을 해볼 수 있었다. 혼자 프로젝트하면 서버 한대로 다해야 되서 잘 해봐야 도커로 실험정도만 할텐대.. 레벨3 기간 동안 팀원들과 데일리 미팅을 하면서 감정을 솔직하게 말해보라는 피드백을 받았었다(맨날 괜찮다고만 했더니..). 근대 .. 2022. 8. 29.
Chapter10. 스프링 MVC 프레임워크 동작 방식 스프링 MVC 핵심 구성 요소 스프링 MVC의 핵심 수성 요소와 그들의 관계를 정리하면 다음과 같다. 이 관계도는 API가 아닌 페이지를 응답하는 기준으로 작성되었다. 위 그림에서 "이 붙은 요소는 빈 등록을 요구하는 요소다. JPS, Controller는 사용자가 직접 구현해야 한다. 1. 요청 전송 DispatcherServlet은 클라이언트로 부터 요청을 받고 모든 연결을 담당한다. 2. 요청 URL과 매칭되는 컨트롤러 검색 HandlerMapping 빈 객체에게 컨트롤러 검색을 요청한다. 그러면 HandlerMapping은 클라이언트의 요청 경로를 이용해 이를 처리한 컨트롤러 빈 객체를 DispatcherServlet에 전달한다. 이 때, 스프링에서 컨트롤러를 구현할 수 있는 방식은 다음과 같이 .. 2022. 8. 21.
[번역] Thread Pools in NGINX Boost Performance 9x! Nginx가 비동기, 이벤트 드리븐을 사용한다. 따라서 전통적인 서버 아키텍처처럼 매 요청마다 그에 상응하는 프로세스나 스레드를 생성하는 대신 여러 커넥션과 요청들을 하나의 워커 프로세스에서 처리한다. 이런 동작 과정을 위해 Nginx는 non-blocking 형태의 소켓과 epoll, kqueue와 같은 효율적인 방법을 사용한다. Nginx는 프로세스 갯수가 적고 정적이기 떄문에 메모리 낭비가 적고 CPU 주기가 컨텍스트 스위칭으로 낭비되지 않는다. 이러한 접근법의 이점은 Nginx로 증명되었다. Nginx는 수백만개의 동시 요청과 스케일을 무리없이 감당한다. 하지만 비동기, 이벤트 드리븐 방식도 문제가 존재한다. 바로 blocking이다. 안타깝게도 많은 서드파티 모듈들은 blocking call을 .. 2022. 8. 14.
[번역]Inside NGINX: How We Designed for Performance & Scale Nginx는 설계 방식 덕분에 우수한 웹 퍼포먼스를 보이고 있다. 수 많은 WS와 WAS가 스레드 또는 프로세스 기반 아키텍처를 사용하는 반면, nginx는 접속을 수백 수천개의 동시 접속으로 확장할 수 있는 정교한 event-driven 아키텍처를 사용하고 있다. Inside NGINX 는 고수준 프로세스 아키텍처부터 저수준으로 내려가면서 Nginx가 여러개의 커넥션을 싱글 프로세스로 처리하는 과정을 서술하고 있다. 이 글은 한발 더 나아가 더 디테일하게 Nginx의 동작 과정을 서술하려 한다. Setting the Scene - The NGINX Process Model Nginx의 설계를 이해하기 위해선 Nginx가 어떻게 동작하는지 알아야 한다. Nginx는 하나의 마스터 프로세스와 워커프로세스,.. 2022. 8. 11.
728x90