Kotlin 2

[안드로이드] 클린 아키텍처(Clean Architecture) Mapper 클래스 그게 필요해?

Mapper 클래스란? 클린 아키텍처 3 계층 중에 데이터 계층에 속한 클래스로 서버나, Room과 같은 로컬에서 받아온 데이터 모델과 UI/UX에 맞는 데이터 모델로 매핑하는 클래스 클린 아키텍처(Clean Architecture)를 프로젝트에 적용하면서 mapper 클래스의 기능, 사용성, 정의 등에 대해 고민을 한 적이 있다. 팀 내에서 반대 의견은 데이터 계층에 데이터 모델을 두지 말고 도메인 계층에 데이터 모델을 두면 되는데 왜 관리포인트 두 개를 만들면 오히려 유지보수 측면에서 비효율적이지 않은가였다. 처음에는 어?! 그런가..?라고 생각했지만 클린 아키텍처 협의 세미나 때 다음 아래와 같은 장점 및 정의를 제시하고 이에 팀원들이 동의해서 mapper 클래스 사용을 하기로 하였다. 프로젝트가 ..

[안드로이드] 귀찮니즘이 만들어 준 contains() 함수 응용

이번 프로젝트에서 웹에서 내려주는 link, url, scheme, javainterface을 가지고 앱에서 동작을 분기하거나 특정 페이지를 보내야 하는 작업을 하였다. param, host, scheme 같은 경우에는 Uri.parse()를 통해서 getQueryParmeter, scheme, host를 사용하면 되지만 단순 문자열 포함 체크 시에는 contains()를 사용한다. 하지만 각 웹 팀마다 대문자, 소문자 규칙이 달라서 contains() 함수에서 분기 처리가 잘못되는 버그가 발생하였다. 따라서 각 팀끼리 합의하에 모두 대문자로 치환 후 포함 체크를 하자고 해서 uppercase()를 사용하였다. 대문자 치환을 위해서 반복되는 uppercase() 함수 사용은 귀차니즘을 발동시켰다. 귀차니..

개발 이모저모 2022.12.20