Polynomeer

Chapter 2. Architectural Thinking

아키텍처 사고란, 단순이 ‘아키텍처를 생각하는 것’이 아니라 아티텍처적인 눈으로 아키텍처 관점에서 사물을 바라보는 것이다. 아키텍처와 설계의 차이를 이해하고 아키텍처 작업을 진행하려면 개발팀과 어떻게 협력해야할 지 아는 것 어느 정도 기술 깊이를 유지하면서 폭넓은 기술 지식을 확보하는 것 다양한 솔루션과 기술 간의 트레이드 오프를 이해하고...

헬퍼 클래스는 안티패턴일까?

실무에서는 도메인 객체가 너무 비대해지는 걸 막기 위해 Helper 클래스가 자주 사용된다. 하지만 어느 순간부터 로직이 섞이고, 도메인 책임과 기술 책임이 뒤섞이면서 코드 유지보수가 어려워진다. 객체 지향 프로그래밍의 SOLID 원칙을 기준으로 하면 헬퍼 클래스는 존재 자체가 안티패턴이라고도 주장할 수 있으나, 실질적으로 도메인과 전혀 관련없는 정적...

백엔드 개발자: 데이터 흐름의 설계자

1. 백엔드는 왜 중요한가? 웹 사이트나 앱에서 버튼을 클릭했을 때 어떤 일이 일어날까? 화면에는 무언가가 나타나지만, 그 이면에는 수많은 처리 과정이 있다. 버튼에 의해 요청되는 데이터를 수신하고, DB에 저장하며 필요한 데이터를 응답하는 일련의 과정이 백엔드 시스템에서 동작한다. 바로 그 보이지 않는 세계를 설계하고 책임지는 존재가 백엔드다. ...

CPU부터 CDN까지: 모든 계층에서의 캐싱

캐싱(Caching)은 데이터 요청 시 반복적인 연산을 줄이고 응답 속도를 높이기 위해 데이터를 미리 저장해 두는 기술이다. 이는 시스템의 모든 계층에서 활용될 수 있으며, 캐싱 전략이나 문제 해결전략의 컨셉이 대부분 비슷한 방식을 따른다. 따라서 낮은 단계에서부터 캐싱의 원리와 전략을 잘 이해하는 것이 중요하다. 1. CPU 캐시 개요: ...