스팀 앱 개발기 #30 - 진도를 더 나가기 전에 리팩토링 고려 중
개인적인 스팀 앱을 만들면서 클린 아키텍처를 적용하고 있습니다. 회사에서도 동일한 구조를 사용하기 때문에 참고하고 있습니다. 그런데 문제는요. 회사에서 사용 중인 클래스 네이밍 방식이 다른 인터넷 자료와 상이합니다. 이 때문에 리팩토링을 고려하고 있습니다. 차이점이 무엇인지 이번 포스트에서 이야기해 보겠습니다.
회사에서 사용 중인 클래스 네이밍 방식
- 데이터 모듈에 속하는 모델 클래스의 이름: Entity로 끝남
- 도메인 모듈에 속하는 모델 클래스의 이름: DTO로 끝남
위 규칙대로 스팀 앱의 모델 클래스 이름들을 정했습니다. 그런데 문제는요. 인터넷의 다른 자료들을 보면, 네이밍 방식이 다른 것입니다.
인터넷으로 파악한 클래스 네이밍 방식
- 데이터 모듈에 속하는 모델 클래스의 이름: DTO로 끝남
- 도메인 모듈에 속하는 모델 클래스의 이름: 특별히 사용하는 Postfix 없음
- 이 클래스들이 VO(Value Object) 패턴에 해당되는지는 알아볼 필요 있음
어떤 네이밍 방식이 맞는 건가?
둘 중 어떤 방식이 맞는지 모르겠습니다. 제가 이해하기로는 데이터 모듈에 속하는 모델 클래스의 이름을 DTO로 하는 것이 맞는 것 같습니다. DTO는 Data Transfer Object의 약자이구요. 서버로부터 직접 받은 데이터 객체가 이에 속하는 것으로 파악됩니다. 반면, Entity로 끝나는 네이밍 방식을 회사에서는 왜 사용했는지를 지금은 알 수 없습니다. 주말이라서 동료에게 물어볼 수 없으니까요.
현재로서는 회사에서 사용 중인 네이밍 방식이 어떻게 정해졌는지를 알아봐야 한다는 것입니다. 클린 아키텍처를 적용한 경험이 있는 동료에게 내일 이를 물어볼 예정입니다. 이를 참고하여 리팩토링을 할지 말지를 결정할 예정입니다.
지난 스팀 앱 개발기
- #29 - 뷰모델, Repository 패턴 그리고 Use Case 패턴의 관계
- #28 - Use Case 패턴 적용
- #27 - Repository 패턴 적용
- #26 - condenser_api.get_accounts API로 받은 계정 자료를 SteemitWalletDTO 타입으로 변환하기
- #25 - SteemClient, SteemService 잘 작동하는지 유닛 테스트
- #24 - API 실행을 담당할 SteemService 인터페이스 정의
- #23 - condenser_api.get_accounts API 연동에 필요한 데이터 클래스 정의
- #22 - API 연동에 필요한 라이브러리 추가
- #21 - 사용자 지갑 정보를 담을 SteemitWallet 클래스 정의
- #20 - 클린 아키텍처를 위한 모듈 구성 (2)
- #19 - 클린 아키텍처를 위한 모듈 구성 (1)
- #18 - VEST로부터 STEEM POWER를 계산하는 방법
- #17 - VEST를 STEEM POWER로 변환하기 위해 필요한 get_dynamic_global_properties API
- #16 - 지갑 내용을 읽기 위해 필요한 API
- #15 - 지갑 서브화면(WalletFragment) 레이아웃 구성해 보기
- #14 - 지갑 서브화면(WalletFragment)에서 계정 인식하기
- #13 - 프로파일 서브화면(ProfileFragment)에서 계정 인식하기
- #12 - 태그 서브화면에서 태그 인식하기
- #11 - 검색 레이아웃을 메인 화면에 적용
- #10 - 태그 및 계정 검색 레이아웃 만들기
- #9 - BaseActivity 클래스 정의 그리고 MainActivity 클래스에 적용
- #8 - BaseFragment 클래스 정의 그리고 기존 프래그먼트들에 적용
- #7 - ProfileFragment 그리고 WalletFragment에 데이터 바인딩 적용
- #6 - 태그별 검색 내용을 보여줄 TagsFragment에 데이터 바인딩 적용
- #5 - GitHub에 소스 올리기
- #4 - 하단 내비게이션의 탭 관련 클래스 이름 수정
- #3 - 하단 내비게이션 바의 아이콘, 텍스트 수정
- #2 - 프로젝트 생성
- #1 - 시작하며...
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.