2022-10-17-TIL TIL 2022-10-17-TIL Today I Learned RESTful API REST(Representational State Transfer)는 Roy Fielding이 박사 논문에서 정리한 아키텍처 스타일이다. 클라이언트-서버 분리, 무상태(stateless), 캐시 가능, 균일한 인터페이스, 계층화된 시스템, 선택적인 code on dema... 2022/10/17 2022-TIL
2022-10-15-TIL TIL 2022-10-15-TIL Today I Learned 클린 아키텍처 클린 아키텍처는 로버트 C. 마틴이 정리한 아키텍처 원칙으로, 핵심은 의존성 규칙이다. 소스 코드 의존성은 바깥(프레임워크, DB, UI)에서 안쪽(유스케이스, 엔티티)으로만 향해야 하고, 안쪽 원은 바깥 원의 존재를 몰라야 한다. DB 접근처럼 안쪽이 바깥 기능을 써야 할 때... 2022/10/15 2022-TIL
2022-10-14-TIL TIL 2022-10-14-TIL Today I Learned Read Timeout HTTP 클라이언트의 타임아웃은 보통 두 가지로 나뉜다. 연결 타임아웃(connect timeout)은 상대 서버와 연결을 맺기까지 기다리는 시간이고, 읽기 타임아웃(read timeout)은 연결이 맺어진 뒤 데이터를 읽을 때 다음 데이터가 올 때까지 기다리는 시간이... 2022/10/14 2022-TIL
HTTP 웹 기본 지식 8: 표현과 협상, 인증과 쿠키를 헤더로 연결하기 Lecture 일반 헤더 섹션의 표현·협상·전송·인증·쿠키를 요청과 응답의 역할로 나누어 복습한다. 2022/10/13 HTTP HTTP 웹 기본 지식 8편
2022-10-11-TIL TIL 2022-10-11-TIL Today I Learned Pagination with Cursor 오프셋 페이지네이션은 LIMIT 20 OFFSET 100000처럼 건너뛸 행 수를 지정한다. 문제는 DB가 건너뛸 행을 실제로 읽은 뒤 버린다는 점이다. 뒤 페이지로 갈수록 읽고 버리는 행이 늘어서 느려진다. 또 페이지를 넘기는 사이 앞쪽에 새 행이 ... 2022/10/11 2022-TIL
2022-10-10-TIL TIL 2022-10-10-TIL Today I Learned Apache POI로 대용량 엑셀 쓰기 대용량 엑셀 다운로드가 느리거나 메모리를 많이 쓰는 문제를 다룬 자료를 모았다. 원인은 대부분 같다. XSSFWorkbook은 시트의 모든 행과 셀을 객체로 메모리에 올리기 때문에, 행 수가 많아지면 힙 사용량과 GC 시간이 함께 늘어난다. 해결책은 ... 2022/10/10 2022-TIL
HTTP 웹 기본 지식 7: 상태 코드가 클라이언트의 다음 행동을 정한다 Lecture 성공·리다이렉션·오류 상태를 구별하고 PRG와 재시도 설계의 한계를 정리한다. 2022/10/07 HTTP HTTP 웹 기본 지식 7편
2022-10-06-TIL TIL 2022-10-06-TIL Today I Learned Pagination with cursor in MySQL MySQL에서 흔히 쓰는 페이지네이션은 LIMIT offset, row_count다. 첫 번째 인자는 몇 번째 행부터 돌려줄지(0부터 시작), 두 번째 인자는 최대 몇 행을 돌려줄지를 뜻한다. LIMIT 5, 10은 6번째부터 15번째... 2022/10/06 2022-TIL
2022-10-05-TIL TIL 2022-10-05-TIL Today I Learned Web Server Architecture 확장 가능한 웹 서비스 구조를 다룬 자료를 모았다. NAVER D2의 “확장성 있는 웹 아키텍처와 분산 시스템”은 『The Architecture of Open Source Applications』의 “Scalable Web Architecture ... 2022/10/05 2022-TIL