Software Engineering
-
많은 사람들이 싱글턴은 안티 패턴이라는 얘기를 한다. 그 이유로 가장 많이 이야기하는 것이 testability이다. 맞는 말이다. 싱글턴 객체는 스터빙할 수 없기 때문에 테스팅을 어렵게 만든다. 최근 TDD와 Unit 테스팅을 강조하는 개발 조직이 많아졌기 때문에 이 부분이 가장 크게 두각되는 것 같다. 하지만 Unit 테스팅을 하지 않는다면? 그리고 또 많이 이야기하는 부분이 SOLID 원칙을 위반한다는 이야기다. 이 역시 맞는 말이다. 하지만 so what? 그게 실제로 어떤 문제를 발생시킨다는 건가? 또 상속을 할 수 없다는 이야기도 한다. 하지만 굳이 상속을 할 필요가 없다면? Unit 테스트를 작성하지도 않고 SOLID 원칙도 무시하며 상속도 굳이 사용할 필요가 없는 경우라면 싱글턴을 쓰지 말..
싱글턴의 진짜 문제점많은 사람들이 싱글턴은 안티 패턴이라는 얘기를 한다. 그 이유로 가장 많이 이야기하는 것이 testability이다. 맞는 말이다. 싱글턴 객체는 스터빙할 수 없기 때문에 테스팅을 어렵게 만든다. 최근 TDD와 Unit 테스팅을 강조하는 개발 조직이 많아졌기 때문에 이 부분이 가장 크게 두각되는 것 같다. 하지만 Unit 테스팅을 하지 않는다면? 그리고 또 많이 이야기하는 부분이 SOLID 원칙을 위반한다는 이야기다. 이 역시 맞는 말이다. 하지만 so what? 그게 실제로 어떤 문제를 발생시킨다는 건가? 또 상속을 할 수 없다는 이야기도 한다. 하지만 굳이 상속을 할 필요가 없다면? Unit 테스트를 작성하지도 않고 SOLID 원칙도 무시하며 상속도 굳이 사용할 필요가 없는 경우라면 싱글턴을 쓰지 말..
2024.01.30 -
지난 3년 여 간의 경험을 토대로 두 가지 개념에 대해 정리를 해보고자 한다. MVVM 먼저 한동안 모바일 애플리케이션 아키텍쳐에 큰 바람을 일으켰던 MVVM부터 리뷰를 해보자면 View를 사용자의 action을 입력받으면 ViewModel로 전달되고 ViewModel은 Model에 변경사항을 저장한다. 그러면 Model에 생긴 변화는 다시 ViewModel에게 전달되어 ViewModel의 state에 변화를 일으키고 이에 바인딩되어 있는 View가 다시 렌더링되어 사용자에게 보여진다. ViewModel이 Model에 데이터를 저장하고 변경된 데이터를 받아오는 과정은 데이터가 실제 물리적으로 어디에 저장되는지를 감추는 Repository라는 추상화된 데이터 저장소 객체를 사용하는 경우가 최근 일반화되고 ..
MVVM과 Clean Architecture지난 3년 여 간의 경험을 토대로 두 가지 개념에 대해 정리를 해보고자 한다. MVVM 먼저 한동안 모바일 애플리케이션 아키텍쳐에 큰 바람을 일으켰던 MVVM부터 리뷰를 해보자면 View를 사용자의 action을 입력받으면 ViewModel로 전달되고 ViewModel은 Model에 변경사항을 저장한다. 그러면 Model에 생긴 변화는 다시 ViewModel에게 전달되어 ViewModel의 state에 변화를 일으키고 이에 바인딩되어 있는 View가 다시 렌더링되어 사용자에게 보여진다. ViewModel이 Model에 데이터를 저장하고 변경된 데이터를 받아오는 과정은 데이터가 실제 물리적으로 어디에 저장되는지를 감추는 Repository라는 추상화된 데이터 저장소 객체를 사용하는 경우가 최근 일반화되고 ..
2023.12.05 -
https://amara.org/ko/videos/0AtjY87egE3m/url/1216370/?tab=video Robert C. Martin - Clean Architecture and Design | Amara Robert C. Martin - Clean Architecture and Design | Amara amara.org Summary Rails 프레임워크로 애플리케이션을 작성하면 디렉토리 구조가 항상 동일하게 만들어진다. 프레임워크가 얼마나 중요하길래 최상위 디렉터리 구조를 결정지어 버리는 걸까? The Web is a delivery mechanism! (I/O Channel) 웹 자체는 아키텍처적으로 중요하지 않다. 단지 데이터 전달 채널일 뿐이다. 웹 어플리케이션을 작성한다는 말은 이..
Robert C. Martin의 Architecturehttps://amara.org/ko/videos/0AtjY87egE3m/url/1216370/?tab=video Robert C. Martin - Clean Architecture and Design | Amara Robert C. Martin - Clean Architecture and Design | Amara amara.org Summary Rails 프레임워크로 애플리케이션을 작성하면 디렉토리 구조가 항상 동일하게 만들어진다. 프레임워크가 얼마나 중요하길래 최상위 디렉터리 구조를 결정지어 버리는 걸까? The Web is a delivery mechanism! (I/O Channel) 웹 자체는 아키텍처적으로 중요하지 않다. 단지 데이터 전달 채널일 뿐이다. 웹 어플리케이션을 작성한다는 말은 이..
2019.12.05