2025/08 3

[Architecture] 클린 아키텍처와 앱 아키텍처(Google)

전부터 작성하려고 했는데 이제서야 작성하는 아키텍처 글....이번 글에서는 우선 전체적인 틀에 대해서 작성하려고 한다 1. 클린 아키텍처란? 필요성? 위의 그림을 굉장히 많이 보았을 텐데, 먼저 아키텍처에 대해서 이야기를 해보자면코드를 작성할때, 구조에 대해서 크게 신경쓰지 않아도 동작하는 프로그램을 만들 수 있지만 그렇게 한다면 점차 코드 개발이 힘들어지거나또는 유지보수하기 힘들어진다. 그렇게 되는 가장 큰 이유중 하나가 코드 서로가 서로에게 큰 영향을 주기 때문인데,예를 들어서 A코드를 동작하는데 B코드가 사용되고 필요하다면 B코드를 수정하면 자연스럽게 A코드의 수정이 필요한 경우가 많다.이는 어쩔 수 없는 현상이지만 A코드를 동작할때, B,C,D..... 코드가 모두 사용된다고 하면, 굉장히 복잡하..

개발/아키텍처 2025.08.12

[Architecture] 데이터 모델과 아키텍처

우리가 개발을 하다보면 굉장히 짜증나고 위험한 문제 중 하나는 연쇄적인 코드의 수정일 것이다.이를 방지하기 위해서 우리는 아키텍처를 사용한다. 그런데 이렇게 아키텍처를 구상하고 나름 잘 짜고 있다고 생각했는데.... 연쇄적인 코드의 수정이 필요한 이유 중 하나가 데이터 모델이 수정되니깐 다 수정해야하네... 이라면 꼭 이 글을 읽어보길 바란다. 우리가 아키텍처를 구성하는데 중요하게 보는것 중 하나는 관심사 분리이다.클린 아키텍처의 경우 동심원 안쪽으로 들어갈 때, 자신의 안쪽에 있는 하나의 레이어에만 의존해야한다. 여기서 우리는 주목해야하는 점이 있다. 그것은 바로 데이터 모델은 왜 여기에 포함하지 않는가 이다. 처음 프로젝트에 들어가고 코드를 작성하다보면 흔히 하는 실수중 하나이다(적어도 나는 그랬었다..

개발/아키텍처 2025.08.12

[Android] 순수 코틀린 모듈 추가하기

개발을 할 때, 안드로이드 뿐만 아니라 서버나 웹같이 다른 플랫폼도 고려한다면 안드로이드에 종속되지 않는 모듈을 만들어야할 때가 있다. 코틀린 같은 경우에는 스프링부트와 같이 다른 곳에서도 쓰이는 언어기 때문에 범용적으로 쓸 수 있는 기능인 경우 안드로이드 모듈 말고 코틀린 모듈로 만들면 유용할 때가 있다. 이번 프로젝트를 하면서 AI 도슨트 어플을 만드는데, 이러한 경우를 고려해서 코틀린 모듈을 만들기로 했다. 이렇게 New Module이 나타나는데 눌러주면 왼쪽에서 Java or Kotlin Library를 선택해주면 된다. 그러면 이렇게 lib 모듈이 생성된다. 여기서 test코드를 작성하려고 test에 대고 우클릭을 하면 이렇게 파일을 추가하는 항목이 안나오는데 일부러 그렇게 만든건지 아니..