[Clean Architecture] 아키텍처 (2)
·
Reference/Clean Architecture
1. Clean Architecture 📌 아키텍처의 목적헥사고날 아키텍처, DCI(Data, Context and Interaction), BCE(Boundary-Control-Entity)와 같은 수많은 시스템 아키텍처가 존재한다.백엔드를 주로 다루는 이들은 헥사고날 아키텍처를 마치 궁극적으로 달성해야 하는 목표점으로 여기지만, 모든 아키텍처는 관심사의 분리(separation of concerns)를 핵심 가치로 서로 다른 형태를 지닐 뿐이다. 프레임워크 독립성, 테스트 독립성, UI 독립성, 데이터베이스 독립성, 외부 Agency에 대한 독립성.우리가 알아야 하는 것은 헥사고날 아키텍처가 아니라, 바로 이러한 것들의 중요성이다. [iOS] Clean Architecture 쉽게 이해해보기📕..
[Clean Architecture] 아키텍처 (1)
·
Reference/Clean Architecture
아니, 안 그래도 이번 건 내용이 너무 길어서 분리했는데 왜 이렇게 많은 거지.임시저장은 내용이 길어지면 뒷 내용이 잘려버리는 이슈가 있어서 그냥 게시해버렸다.1. 아키텍처란? 📌 들어가며잘 모르겠지만, 소프트웨어 아키텍처는 기술적 성취의 정점에 서 있다고 한다."젊고 야심 찬 소프트웨어 개발자라면 한 번쯤은 소프트웨어 아키텍트가 되고 싶다고 꿈꿔 보지 않았을까?"라고 하지만, 옛날에 쓰여진 책이라 그런 걸 수도...요새는 잘 못 본 것 같기도 하고, 기술적 정점에 서 있다는 느낌을 주진 않는 것 같다. 여튼 소프트웨어 아키텍트가 되더라도 여전히 프로그래머(여야 한)다.아키텍트를 바라보기 위해 코드를 벗어나 고수준의 문제에 집중해야 한다는 말을 하지만, 현실은 직접 경험해보지 않는다면 올바른 아키텍처를..
[Clean Architecture] 컴포넌트 원칙
·
Reference/Clean Architecture
1. 컴포넌트 📌 컴포넌트의 간략한 역사컴포넌트는 배포 단위다.이번 장은 말 그대로 "독립적 배포 단위"가 가능해진 역사에 대해 설명해준다. 나도 잘 모르겠지만, 먼 옛날 옛적 c언어 개발자들을 "요즘 개발자 놈들"이라 부를 정도의 선조 시대에는 프로그램이 차지할 메모리 위치와 레이아웃을 프로그래머가 직접 제어를 했다고 한다.즉, 절대 주소 바이너리 값을 사용했다는 말인데, 컴파일러에게 메모리 주소에 로드할 코드를 생성하라고 컴파일러에게 알려줬다고 한다. 이런 환경에서 라이브러리 함수에 접근하려면?소스 코드는 애플리케이션으로 가져와서 단일 프로그램으로 컴파일해야만 했다.그런데 그 시절의 HW를 고려했을 때 이건 노역에 가까운 행위임이 뻔했다.메모리도 엄청 작은데, 라이브러리도 매번 함께 컴파일을 한다고..
[대규모 시스템 설계] 9장. 웹 크롤러 설계
·
Reference/대규모 시스템 설계
진짜 크롤링을 할 일이 있어서 공부한 거였는데, 공부하다 보니 더 쉽게 해결할 방법들이 떠올라서 실제 코드로 구현해볼 지는 고민 중이다.일단 공부한 게 아까우니 기록은 해두는 걸로. 💡 해당 내용은 "가상 면접 사례로 배우는 대규모 시스템 설계 기초"를 참조하여 작성하였습니다.1. Introduction 📌 Purpose이 책의 목차를 처음 본 게 거의 2년 전이었을 텐데, 당시에는 '무슨 웹 크롤러 따위에 대규모 설계까지 필요한 거지' 싶었다.지금이라고 뭘 더 알고 읽은 건 아니다만, 적어도 크롤링이 가장 까다롭다는 것은 적당히 알고 있었다. 크롤링은 여러 목적으로 이용된다.검색 엔진 인덱싱 (search engine indexing)Donald J. Patterson, Web Crawling pd..