프론트엔드 아키텍쳐 스터디 - Seperation of Concerns is Great BTW

created:
last-updated:

Frontend At Scale에 게시된 프론트엔드 아키텍쳐 포스트를 읽고 정리합니다.

최근 팀 내 코드가 거대해지고 10명의 엔지니어가 같은 코드를 수정, 개발하게 되면서 아키텍쳐 설계에 대한 고민이 많아졌습니다. 개인적으로도 어느덧(?) 3년 정도 프론트엔드 개발을 하면서 기본적인 기능 개발 능숙도는 올라갔지만, 유지보수하기 좋고 긴 생명력을 가진 코드를 가꾸어 나가고 싶다는 욕망이 커졌습니다.

컴포넌트 단위가 아니라 넓은 시야로 전체적인 코드 흐름, 구조를 설계할 수 있는 지식과 아이디어가 부족한 찰나에 동료가 Frontend At Scale라는 좋은 사이트를 발견해 소개해주었습니다. 프론트엔드 아키텍쳐와 관련된 다양한 주제의 포스트가 있고 동영상 코스도 있습니다. 당분간 천천히 보고 정리하고, 좋은 내용이 있다면 동료들과 공유하는 시간을 가질 것 같습니다.


How to care about anything without caring about everything.
모든 것에 신경 쓰지 않고 모든 것에 신경 쓰는 방법.

"제 취향에 따라 모든 지적 사고의 특징이 무엇인지 설명해 보겠습니다. 즉, 자신이 한 가지 측면에만 몰두하고 있다는 것을 항상 알고 있는 상태로, 일관성을 위해 자신의 주제의 한 측면을 분리하여 깊이 연구하고자 하는 것입니다. [...] 제가 가끔 '관심사 분리'라고 부르는 이 방법은 완벽하게 가능하지는 않지만, 제가 아는 한 생각을 효과적으로 정리할 수 있는 유일한 기술입니다. '어떤 측면에 주의를 집중한다'는 것은 다른 측면을 무시한다는 뜻이 아니라, 이 측면의 관점에서 다른 측면은 무의미하다는 사실에 집중하는 것입니다. 원트랙과 멀티트랙을 동시에 염두에 두는 것입니다."

Screenshot 2025-01-12 at 7.11.09 PM.png

That's Not an Abstraction, That's Just a Layer of Indirection
그것은 추상화가 아니다, 간접 레이어일 뿐

추상화를 평가하는 데 유용한 경험 법칙은 스스로에게 질문해보기입니다 : 내부 구현을 얼마나 자주 들여다봐야 하나요? 하루에 한 번? 한 달에 한 번? 일 년에 한 번? (환상을 깨는) 횟수가 적을수록 추상화가 더 잘 이루어집니다.

다음에 추상화를 시도할 때는 스스로에게 물어보세요: 이것이 진정으로 시스템을 단순화하는 것인가요? 아니면 또 하나의 간접적인 레이어일 뿐인가요? 추상화를 현명하게 사용하고, 진정으로 복잡성을 숨기는 것이 아니라면 복잡성을 더하는 것일 뿐이라는 사실을 기억하세요.

Headless, boneless, skinless & lifeless UI