스마트하게 확장하라: 소프트웨어 아키텍처에 대한 강력한 견해
개발자들은 종종 웹 앱을 과하게 설계(overengineer)하곤 합니다. 마이크로서비스나 서버리스 트렌드를 쫓으며, 복잡함이 곧 확장성이라고 생각합니다.
이것은 실수입니다.
단순하고 모듈화된 설계가 복잡한 설정보다 더 잘 작동하는 경우가 많습니다. 핵심 기능에 집중하십시오. 먼저 탄탄한 기반을 구축하십시오. 실제 수요에 따라 확장하십시오.
확장성은 단순히 사용자를 수용하는 것 이상의 의미를 갖습니다. 앱의 응답성을 유지하는 것이며, 사용자를 만족시키는 것입니다. 좋은 아키텍처는 사용자 행동이 변화할 때 빠르게 대처할 수 있게 해줍니다.
다음 원칙을 따르십시오:
- 유지보수성을 우선시하십시오.
- 린(lean)한 접근 방식을 사용하십시오.
- 합리적이라면 모놀리스(monolith)로 시작하십시오.
- 꼭 필요할 때만 마이크로서비스로 리팩터링하십시오.
필요하기 전에는 복잡성을 추가하지 마십시오. 불필요한 무게를 더하지 말고 성장을 위해 구축하십시오.
중요한 것에 집중하십시오. 단순함을 유지하십시오.