본문 바로가기
728x90

전체 글110

동적 계획법 (DP, Dynamic Programing) & 메모이제이션(Memoization) 모 회사의 개발자 분과 밥을 먹었는데 요즘 시니어 개발자 구하기가 힘들다며 한탄 섞인 말을 하셨고 그 회사의 면접관이기도 하셨다. 나는 "시니어 개발자 기술면접 때 뭘 중점적으로 질문하는가?" 대한 질문을 하였고 알고리즘 설계에 대한 질문과 시스템에 트래픽이 몰려 부하가 걸리는 것을 대비하는 아키텍처에 대해 질문을 하신다고 한다. 시스템 아키텍처에 대해서는 다들 경험이 있다 보니 다양한 방식으로 구성을 하는데 알고리즘 설계 질문 때 DP와 메모이제이션에 대한 질문을 하면 개념을 모르는 사람이 많다고 하셨다. 그래서 블로그에 정리해가며 공부해보려고 한다. 동적 계획법(DP, Dynamic Programming)이 대체 뭐야? 주어진 큰 문제를 여러 개의 작은 문제 단위로 나누어 풀려고 하위 작은 문제들의 .. 2022. 11. 13.
[Spring] Dispatcher Servlet 이전 글인 HttpReqeust부터 HttpResponse까지 동작 과정을 살펴보다 Spring Framework에서 동작되는 과정도 정리할 필요성이 있어서 Dispatcher Servlet에 대한 내용도 기록해 보려고 한다. Dispatcher Servlet Servlet Request에 특정 Controller로 매핑하기 위해 Front Controller 패턴을 적용한 Servlet이다. Front Controller 패턴은 웹 애플리케이션에서 주로 사용되는 디자인 패턴으로 컨트롤러에서 중복으로 처리해야 하는 사항을 공통 기능을 한 곳에서 관리하는 입구 역할을 하는 컨트롤러의 개념이다. 다수의 Servlet이 아닌 하나의 Servlet으로 클라이언트로부터 요청을 받을 수 있고 Http 요청에 대한 .. 2022. 11. 13.
[Spring] HttpRequest부터 HttpResponse까지 동작 과정 어느 분의 기술 블로그를 보게 되었는데 글 제목이 클라이언트 요청부터 서버 응답 흐름에 대한 설명이었다. 그때 엇?!! 나는 스프링으로 서버 개발하는데 설명을 제대로 풀어나가지 못할 것 같았다. 프레임워크에 너무 의존한 탓도 있었고 필요한 부분만 구글 검색해서 알아보는 습관이 생활화되었기 때문인 것 같다. 숲을 봐야 하는데 나무만 본 느낌이랄까? 아무튼 내 머릿속을 정리할 겸 기억할 겸 공부할 겸 기록장에 정리하는 시간을 가져보자. 출발지는 클라이언트 목적지는 Spring Framework의 @RequestMapping Controller Method가 될 것이다 이것이 편도이고 왕복을 하는 과정을 정리해보려고 한다. 출발해보자! 1. 가까운 DNS(Domain Name System) 서버를 통해 호스트.. 2022. 11. 12.
[JPA] N+1 문제 1. N+1 문제란? JPA에서 요청이 1개의 쿼리로 처리되길 기대했는데 N개의 추가 쿼리가 발생하는 현상으로 1:N 또는 N:1 관계를 가진 Entity 조회할 때 발생하게 된다. 이 문제는 서버와 DB 간의 악영향을 끼치는 큰 문제인데 10만, 100만 개 등의 많은 양의 데이터를 N+1의 DB 조회가 일어난다고 가정해보면 분명 서비스의 큰 문제가 발생하게 될 것이다. 정말 무섭다. 예전에 N+1 문제로 한참을 고생했던 기억이 있어서 다시 되새길 겸 N+1문제에 대해 다시 정리해보려고 한다. (그만큼 중요하다고 생각되는 문제) 2. Test 설정 테스트 위해 table 2개를 만들었다. note와 memo table이고 두 table에 관계는 1:N 관계로 간단하게 설정하였다. note table i.. 2022. 11. 12.
300x250