스프링

Java & Spring

Spring Cache Abstraction

웹 애플리케이션의 성능을 위해 고려해야할 부분은 정말 많습니다. WS 관점에선 이중화, 로드밸런싱, 캐싱, 커넥션 등, WAS 관점에선 스레드풀, 커넥션, 억셉트카운트, DB커넥션풀 등, DB 관점에선 커넥션 수와 인덱스 등이 있습니다. 그 중에서도 가장 드라마틱한 성능 개선을 만들어주는 것은 바로 캐시입니다. 가장 큰 병목을 유발하는 지점에 대해 수행하지 않고 재사용하거나, 수행하더라도 아주 짧은 시간 내에 처리될 수 있게 개선해주기 때문입니다. 캐시도 CPU에서부터 WAS, WS까지 정말 여러 영역에 걸쳐있는데요 첫번째로 WAS에서 사용되는 로컬 캐시에 대해 이해해보고자 합니다. 거기서도 다시 좁혀서 스프링에서 캐싱이 어떻게 제공되는지 살펴보겠습니다. 이를 위해 스프링 공식 문서를 통해 스프링이 제공..

우아한테크코스 4기

@Transactional 테코톡 완료!

테코톡 발표를 마쳤습니다. 2년 전 이맘때쯤, 국비 수강 과정중에 테코톡을 처음 접했었는데.. 그 트랙룸에서 제가 발표를 하는 날이 오다니 아직도 믿기지가 않네요. (정말? 내가? 왜? 우테코? 실화냐..) 영상으로 전해지던 우테코만의 분위기를 저도 경험할 수 있었습니다. 원하지만 이루어지지 않을거라 생각하며 그러나 또 원하는 ㅋㅋ 그런 마음이었는데 이런 날도 오네요.. 발표를 들어주시고 격려해주고 응원해주신 모든 분들 정말 감사드립니다. 더 많이 학습하고 준비해서 더 양질의 발표를 하고 싶었지만 그러지 못해서 정말 아쉬운 마음이 크고 실망스러운 생각입니다. 그러나 마쳤다는 기쁨이 너무 크네요 ㅋㅋ 준비할 땐 몰랐는데.. 끝나고 나니 정말 홀가분합니다.

Java & Spring

의존이 복잡하게 얽힌 Bean들은 어떻게 생성될까?

new A(new B(new C())) 위와 같이 A, B, C가 의존관계에 있고 셋 모두 스프링 빈에 등록되어야 할 대상일 때, 스프링 컨테이너에서는 어떻게 인스턴스를 만들까요? 실제 구현 내용을 모른다면, 직접 구현한다면 어떻게 구현하실지 말씀해주시겠어요? 위 질문은 얼마 전 진행됐던 레벨 인터뷰에서 브라운이 인터뷰이에게 했던 질문입니다. 옵저버로서 해당 인터뷰를 관찰하면서도, 뜻밖에 질문에 저 또한 속으로 대답을 떠올려보고 있었습니다. 제 속에 떠올랐던 대답은 "현재 생성할 수 있는 인스턴스를 생성하는 사이클을 반복한다" 였습니다. 아래처럼요. 1) A는 B가 아직 생성 안되었기에 넘어가고, B도 마찬가지입니다. 그러면 C를 생성하고 mark 합니다. 2) A는 여전히 B가 없으니 넘어가고, B는 ..

Java & Spring

🌱 Spring에 Handler가 등록되는 과정

이전 포스팅에서는 HTTP 메시지와 Servlet의 등장, 그리고 Front Controller 패턴까지 알아봤습니다. 이번 포스팅에서는 스프링의 Front Controller인 DispatcherServlet에 handler들이 어떻게 등록되는지 살펴보겠습니다. 요약 최초의 스프링은 핸들러 인터페이스를 구현한 클래스를 스프링 빈으로 등록하여 핸들러로 등록했습니다. @Component("/urlPattern") 식으로 스프링 빈을 등록하는 것이죠. 이들을 BeanNameUrlHandlerMapping 이 탐지해서 등록해뒀다가 탐색 시 사용됐습니다. 요즘에는 RequestMapping 애너테이션 기반 핸들러 등록 방법이 많이 사용됩니다. RequestMappingHandlerMapping은 @Control..

Java & Spring

🖋 Servlet부터 DispatcherServlet까지 (Front Controller 패턴)

스프링 MVC 가 어떤 문제를 해결하기 위해서, 어떤 과정을 거쳐서 지금의 모습을 갖추게 되었는지 이해한 내용을 기록해보고자 합니다. 너무 방대하고 어려워서 DispatcherServlet 말만 들어도 스트레스였는데 이게 이해되다니 정말 기쁘네요 ;ㅅ; 멋진 강의 제작해주신 김영한님, 함께 대화하며 학습해준 칙촉, 멋진 테코톡 발표해주신 3기 코기 감사드립니다. HTTP Message 이미지 출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Messages HTTP 요청과 응답 메시지는 위와 같은 형식으로 이루어진 문자열입니다. 서블릿은 위와 같은 문자열을 파싱해서 HttpServletRequest, HttpServletResponse를 만들어줍니다. 사실 이것..

리차드
'스프링' 태그의 글 목록