앱잼을 시작하기 전, 가장 먼저 하는 것이 있다면 단연 기술스택이죠. 어떤 라이브러리를 사용할 것인지, 어떤식으로 구조를 잡을지 많이 생각하게 됩니다.

명확한 기준이 있어야 하며, 단순히 "아~ 저게 좋더라, 이게 좋더라"가 아닌 자신만의 주관이 있어야 좋은 구조를 잡을 수 있다고 생각합니다.

물론 프로젝트 초기에 모든 상황을 가정하여 오랫동안 공들일 수 있지만, 앱잼이라는 단기간에 기획분들이 원하는 규모와 방향, 디자인 분들이 추구하는 인터페이스와 사용자 경험, 그리고 메이커스들의 경험과 지향하는 바를 잘 조합해서 이상적인 구조를 가져가는 게 프로젝트를 위한 좋은 구조라고 생각합니다.

그렇기에, 여러 스택을 정할 텐데, 제가 이번에 쓸 아티클은 아키텍처에 대한 내용입니다.

세미나 때도 정답이 없다고 배우기도 했고, 사실 직접 프로젝트를 세팅하다 보면 여러 가지 상황과 마주할 수 있기 때문에 상황에 맞게 구조를 잡아야 한다고 생각합니다.


이건 제가 합숙 하기전에 혼자 공부하면서 작성한 내용이 일부 추가 됐습니다

사실 저번 앱잼 떄 구글 권장 아키텍쳐를 프로젝트에 적용해 보았는데요, 아직도 구권아를 마스터(?) 했다고 생각하진 않지만, SOPT 에서 규모있는 프로젝트를 경험할 일이 많지 않다보니, 클린 아키텍쳐를 한 번 경험해 보고 싶었습니다.

먼저 클린 아키텍쳐에 대해서 공부를 해봤는데요. 가장 이해도가 떨어지는 부분은 Domain 계층과 Usecase 였습니다.

Domain 이 뭔데, UseCase 가 뭔데

Android에서 Domain Layer와 UseCase: 언제 필요하고 언제 생략할까?

아키텍처를 적용할 때 data, domain, UI layer를 각각 나눠서 패키지를 관리하는 경험을 많이 하셨을 겁니다. 특히 서버 통신을 진행해보았으면 때 Data layer, UI layer에 대한 개념은 어느 정도 잡혔을 거라 생각합니다.

하지만 Domain Layer는 좀 애매합니다. Architecture를 공부하다 보면 Domain Layer와 UseCase를 반드시 사용해야 하는 것처럼 느껴지는데요, 실제 경험했던 앱잼 프로젝트들을 살펴보면:

Domain Layer는 언제 필요할까요? Google 권장 아키텍처와 Clean Architecture의 차이를 비교하고, 어떤 기준으로 Domain을 설계해야 할지 알아보겠습니다.

Domain이란?

7차 세미나 중…