아키텍처에 대한 고찰
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
아키텍처 패턴
대상자
소프트웨어 개발자, 아키텍처 설계자, 중간 이상 규모 프로젝트 담당자
핵심 요약
- 아키텍처는 유지보수를 위한 수단이며, 목적 없이 무지성으로 적용하지 말아야 한다.
- SOLID 원칙 기반의 아키텍처 설계는 관심사 분리와 코드 예측성을 높인다.
- 아키텍처는 개념과 지침에 가까워, 플랫폼/언어별로 유연하게 적용해야 한다.
섹션별 세부 요약
1. 아키텍처의 필요성과 목적
- 작은 앱에서는 아키텍처가 필수적이지 않지만, 규모가 커질수록 유지보수와 확장성에 영향을 주는 구조적 설계가 필요하다.
- 아키텍처의 주요 목적은 유지보수성 향상으로, 코드가 스파게티화되지 않도록 역할 분담을 유도한다.
- 비즈니스 목표와 유저 가치 우선으로, 코드 구조만을 강요하는 접근은 서비스 성장에 방해가 될 수 있다.
2. 아키텍처 적용의 핵심 원칙
- SOLID 원칙을 기반으로 설계하면, 관심사 분리와 유연한 확장이 가능해진다.
- 코드 예측성은 팀원 간 협업과 리뷰, 디버깅 효율성에 직접적인 영향을 준다.
- 명확한 룰과 철학 정립이 필요하며, 아키텍처는 팀 레벨에서 공유되어야 한다.
3. 아키텍처의 유연성과 변화
- 코드는 생명체처럼 성장하며, 기능 추가에 따라 아키텍처도 최적화해야 한다.
- 아키텍처는 절대적인 정답이 없고, 서비스 특성과 팀의 컨센서스에 따라 유연하게 수정/재설계 가능하다.
- 테스트 코드 작성, 서버드라이브 UI 등 요구사항 변화에 따라 MVI나 클린 아키텍처 적용을 고민 중이다.
결론
- 아키텍처는 유지보수와 성능 향상을 위한 도구로, 목적에 맞게 유연하게 적용해야 하며, 서비스와 유저 가치를 우선시해야 한다.
- SOLID 원칙과 명확한 룰 정립을 통해 팀 내 협업 효율성을 높이고, 필요시 아키텍처 재설계를 통해 최적화하는 것이 중요하다.