🍀 서블릿이란?- Java에서 HTTP 요청과 응답을 처리해주는 클래스이다. 개발자가 HTTP 요청이 올때마다 해당 요청을 파싱하고, 또 HTTP 스펙에 맞게 응답 메세지를 생성하는 것은 어려울 것이다..!서블릿은 개발자가 비즈니스 로직에 집중할 수 있도록 도와주는 역할을 한다.Servlet을 이용해 동적으로 웹페이지를 만들 수도 있고, json 형식으로 데이터를 클라이언트에게 보내줄 수도 있다. 스프링 프로젝트에서 말하는 서블릿은 거의 "javax.servlet.http.HttpServlet" 을 말한다고 한다. 이는 Servlet 인터페이스를 구현한 구현체 중 하나이다.즉, HTTP 응답과 요청을 처리하는 서블릿은 HttpServlet 이라고 볼 수 있다. public interface Serv..
최근 한 프로젝트에서 HTTP 요청/응답을 로깅을 구현하게 되어 해당 글을 쓰게 되었습니다! ✔️ 프로젝트에 로깅을 도입하게 된 계기 운영서버에서 개발자가 발견하지 못한 엣지케이스 같은게 있을 수도 있는데, 이러한 경우에 대한 대비가 전혀되고 있지 않았던 상황이라는 생각이 들었어요. 따라서 로깅 시스템을 구축하여, 실제 운영상황 및 QA시에 버그가 발생했을때, 추적을 용이하게 하기 위해서 도입을 결정하게 되었습니다! 이전에 다른 프로젝트 했을때도, 사실 로깅을 신경을 많이 쓰지 못했기에 에러가 나는 상황에서 불편함이 종종 있었어요. 예를 들어, 클라에서 에러난다고 하면 원인을 찾고 빠르게 대응하기가 어려웠다거나... 그래서 지금처럼 실제 운영되고 있는 서비스에서는 더더욱 있으면 좋겠다 싶었습니다!..
정규화 (Normalization)정규화는 데이터베이스 설계 과정에서 데이터를 효율적으로 분리하여 중복을 줄이고, 무결성을 유지하기 위한 방법입니다. 정규화의 목표는 데이터 중복을 없애고 데이터 일관성을 보장하는 것. 중복 데이터를 허용하지 않음으로써, 무결성을 유지하고, DB 저장 용량도 줄일 수 있다.정규화는 여러 단계로 나뉘며, 각 단계는 정규형 (Normal Form)이라고 부릅니다. 가장 일반적으로 사용하는 정규형은 1~3 정규형이다. 1. 제 1 정규형 (1NF)제 1 정규형은 "각 컬럼이 원자값(Atomic Value)을 가져야 한다"는 규칙.즉, 각 열의 값은 더 이상 나눌 수 없는 단일 값이어야 하며, 복합적인 값이나 리스트, 집합 등을 컬럼에 저장할 수 없다. 예시:학생ID 학생이름 수..
오늘은 유명한 유형 중 하나인 LIS 유형에 대해 정리해보고자 한다. 해당 유형을 안 지 얼마 되지 않았지만, 유형이 어느정도 정형화 되어있는 느낌이다. 해당 유형을 풀이하는 방법은 DP, 이분탐색 2가지가 있다. DP로 풀이할 경우 O(N^2)의 시간복잡도를, 이분탐색으로 풀이할 경우 O(NlogN)의 시간복잡도를 가진다. 따라서 문제에 나와있는 조건을 잘 보고 시간복잡도를 따져서 알고리즘을 선택하는 것이 중요하다. 해당 유형은 가장 긴 증가하는 부분 수열의 길이까지만 구하거나, 더 나아가 부분 수열 자체를 출력해야하는 문제들이 있다. 해당 유형은 1,2편으로 나누어 작성하고자 하며, 해당 글(1편)에서는 가장 긴 증가하는 부분 수열의 길이까지만 구하는 문제를 다뤄보고자 한다. 우선 백준 12015번 ..