웹 백엔드 4기

Database

MySQL의 트랜잭션 격리 수준

Real MySQL 5장 트랜잭션과 잠금을 읽고 스터디한 내용을 정리해봅니다 😃 InnoDB를 통한 트랜잭션 격리 제공 트랜잭션 격리는 데이터베이스의 핵심 기능 중 하나입니다. 트랜잭션 격리는 여러 트랜잭션이 동시에 수정을 일으키는 쿼리를 요청했을 때, 신뢰성, 일관성을 유지하면서도 높은 성능을 유지하는 균형에 대한 이야기입니다. 트랜잭션 격리를 하지 않고 신뢰성을 낮추는 대신 성능을 높일 수도 있고, 트랜잭션 격리를 극단적으로 가져가며 신뢰성을 높이는 대신 성능을 다소 포기할 수도 있습니다. 트랜잭션이 안전하게 수행된다는 것을 보장하는 ACID 중 I가 바로 이 격리, Isolation의 약자입니다. 이전 포스팅에서 알아봤듯이, MySQL의 스토리지 엔진 가운데 InnoDB 만이 트랜잭션을 지원하기 때..

IDE

더 쉬운 테스트코드 작성을 위한 IntelliJ Live Template

더 쉬운 테스트 코드 작성을 위한 Live Template을 공유해봅니다 😃 지루한 작업을 덜 지루하게 선배 기수 분들께서 작성해주신 귀한 테코블 포스팅을 볼 때마다 놀라는 것은 기술적 내용을 다루는 포스팅은 모두 테스트 코드로 귀결된다는 점입니다. 정말 개발자로서 본받아야 할 자세라고 생각합니다. 개발자로서 떳떳한 건 아니지만 솔직히 그렇습니다. 정말 테스트 코드 중요한데. 정말 귀찮습니다. 소프트웨어 장인이란 정말 그 귀찮은 것, 지루한 것을 이겨내고 묵묵히 소프트웨어 품질을 위해 나의 작품이라는 혼을 담아 코드를 작성하는 것도 포함되는 것 같습니다. 하지만 개발자라면 동시에 중복을 참을 수는 없죠! 귀찮은 일의 반복도 그렇습니다. 최대한 테스트 코드 작성이 어렵거나 귀찮지 않게 느껴지도록 만들어야 ..

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를 만들어줍니다. 사실 이것..

우아한테크코스 4기

💿 Response Header 와 브라우저를 이용한 캐싱

김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강했습니다. 강의 내용 중 캐시에 대해서만 다시 한 번 정리해보고자 합니다. 함께 이야기하며 메타인지에 도움을 준 칙촉과 필즈에게 감사를 !! 🤗🙏 요약 응답 헤더를 사용한 캐싱의 기준은 최종수정시간과 버전 중 한 가지를 선택해서 사용할 수 있습니다. 시간은 Last-Modified 와 If-Modified-Since로, 버전은 ETag 와 If-None-Match 로 사용됩니다. 기본적이 프로세스는 다음과 같습니다. 서버에서 정적 리소스 응답 시 Last-Modified 또는 ETag 헤더를 포함해서 응답합니다. 브라우저는 같은 리소스를 재요청할 때, If-Modified-Since 또는 If-None-Match에 이전에 Last-Modif..

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