전체 글

Hello World!😀 Hi, I'm Judy🐰(Junior Developer)
최근 한 프로젝트에서 HTTP 요청/응답을 로깅을 구현하게 되어 해당 글을 쓰게 되었습니다!    ✔️ 프로젝트에 로깅을 도입하게 된 계기 운영서버에서 개발자가 발견하지 못한 엣지케이스 같은게 있을 수도 있는데, 이러한 경우에 대한 대비가 전혀되고 있지 않았던 상황이라는 생각이 들었어요. 따라서 로깅 시스템을 구축하여, 실제 운영상황 및 QA시에 버그가 발생했을때, 추적을 용이하게 하기 위해서 도입을 결정하게 되었습니다!  이전에 다른 프로젝트 했을때도, 사실 로깅을 신경을 많이 쓰지 못했기에 에러가 나는 상황에서 불편함이 종종 있었어요. 예를 들어, 클라에서 에러난다고 하면 원인을 찾고 빠르게 대응하기가 어려웠다거나... 그래서 지금처럼 실제 운영되고 있는 서비스에서는 더더욱 있으면 좋겠다 싶었습니다!..
· CS/Database
정규화 (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번 ..
예를 들어, 사용자에게 게시글 목록을 조회한다고 했을 때 한 화면에 10개씩 데이터를 보여주려고 한다.그런데 이때 클라이언트가 서버에게 DB에 존재하는 모든 게시글을 받아온다면 어떻게 될까?  성능이 매우매우 떨어질 것이다. 게시글 개수가 수백만,, 더 나아가 여러 사용자가 동시에 게시글 목록을 조회한다면DB에 많은 부하가 걸릴 것이다.. 이렇게 부하와 데이터 로딩 속도를 효율적으로 조절해주기 위해 등장한 것이 페이지네이션! 🪽 페이징(Paginatinon)데이터를 쪼개서 일부만 가져오는 기법 크게 offset 기반 페이징과, cursor 기반 페이징이 있다. 🪽 offset 페이징offset : 어디부터 시작해서 가져올것인지?limit : 몇개의 데이터를 가져올 것인지?SELECT *FROM pro..
주디(Junior developer)
주디는 언제나 당근을 원해🥕