| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 백엔드
- JPA
- devops
- 프론트엔드
- java
- AbstractAggregateRoot
- 네트워크
- 웹개발
- 인증
- Spring
- DEVIEW2023
- 보안
- interceptor
- 클린코드
- SnowFalke
- 세션
- 데이터베이스
- 백엔드개발
- db
- spring event
- 백엔드기초
- 백엔드개발자
- Spring Boot
- 웹성능최적화
- 캐시
- redis
- http
- 인프라
- 성능최적화
- CS
- Today
- Total
목록CS (7)
이것저것 개발기록
"미국에 있는 사용자가 한국 서버의 이미지를 보려면 왜 느릴까요?" 물리적 거리의 한계를 극복하고 사용자에게 가장 가까운 곳에서 콘텐츠를 전달하는 CDN의 핵심 원리를 정리합니다. 1. CDN이란 무엇인가? CDN은 지리적으로 분산된 여러 서버의 네트워크입니다. 사용자가 웹사이트에 접속할 때, 메인 서버(Origin)까지 가지 않고 가장 가까운 곳에 위치한 에지 서버(Edge Server)에서 캐싱된 데이터를 받아오게 함으로써 로딩 시간을 획기적으로 단축합니다. 2. CDN의 주요 장점 응답 시간 단축: 물리적 거리가 가까워지므로 레이턴시(Latency)가 줄어듭니다. 서버 부하 분산:..
"내가 짠 코드가 어떻게 실제 화면이 될까요?" 성능 좋은 웹사이트를 만들기 위해 반드시 알아야 할 브라우저의 내부 동작 원리, 주요 렌더링 경로(Critical Rendering Path)를 정리합니다. 1. 렌더링의 5단계 과정 DOM 트리 생성: 서버로부터 받은 HTML을 파싱하여 객체 모델인 DOM(Document Object Model)을 만듭니다. CSSOM 트리 생성: 스타일시트(CSS)를 파싱하여 CSSOM(CSS Object Model)을 만듭니다. 렌더 트리(Render Tree) 결합: DOM과 CSSOM을 합쳐 실제로 화면에 보일 요소들만 골라 렌더 트리를 구성합니다. ..
"이미지가 100개인 페이지, 예전보다 왜 훨씬 빨리 뜰까요?" 웹의 속도 한계를 극복하기 위해 등장한 HTTP/2. 기존 1.1 버전의 고질적인 문제들을 어떻게 해결했는지 정리했습니다. 1. HTTP/1.1의 한계: HOL Blocking HTTP/1.1은 기본적으로 한 번에 하나의 요청만 처리할 수 있었습니다. 만약 크기가 큰 이미지를 받는 요청이 앞서 있다면, 뒤에 있는 작은 텍스트 데이터들은 앞의 요청이 끝날 때까지 기다려야 했죠. 이를 HOL(Head-of-Line) Blocking이라고 부릅니다. 이를 해결하기 위해 스프라이트 이미지(이미지 합치기) 같은 편법을 써야 했습니다. 2. HTTP/2가 가져온 혁신 ..
"테이블 하나에 다 때려 넣으면 안 되나요?" 데이터 중복을 제거하고 이상 현상(Anomaly)을 방지하는 데이터베이스 정규화. 왜 해야 하고, 어디까지 해야 할지 실무 관점에서 정리해 드립니다. 1. 정규화는 왜 하는가? 정규화의 가장 큰 목적은 데이터의 중복을 최소화하고 데이터 무결성을 보장하는 것입니다. 정규화가 안 된 테이블에서는 데이터를 수정할 때 일부만 바뀌는 수정 이상, 데이터 삭제 시 엉뚱한 정보까지 날아가는 삭제 이상 같은 문제가 발생합니다. 2. 꼭 알아야 할 1~3 정규화 (1NF, 2NF, 3NF) 제1정규형(1NF): 모든 속성 값은 원자 값(Atomic Value)이어야 합니다. ..