헥사고날 아키텍처 – adapter 다른 폴더
헥사고날 아키텍처의 핵심은 **”다양한 외부 기술(어댑터)을 포트를 통해 연결할 수 있다”**는 유연성에 있습니다. 따라서 어떤 외부 기술과 연동하느냐에 따라 어댑터 폴더의 이름과 종류는 다양해집니다. adapter/in 하위 […]
더 보기 →헥사고날 아키텍처의 핵심은 **”다양한 외부 기술(어댑터)을 포트를 통해 연결할 수 있다”**는 유연성에 있습니다. 따라서 어떤 외부 기술과 연동하느냐에 따라 어댑터 폴더의 이름과 종류는 다양해집니다. adapter/in 하위 […]
더 보기 →port와 service는 헥사고날 아키텍처에서 application 계층의 가장 핵심적이고 필수적인 구성 요소이지만, 애플리케이션의 복잡성과 설계 결정에 따라 다른 폴더를 추가하여 구조를 더 명확하게 만들 수 있습니다. application 패키지 내에 추가될 […]
더 보기 →주문(Order) 기능의 흐름 “사용자(Web)가 책을 주문(place order)한다.” 라는 하나의 유스케이스가 어떻게 각 계층을 통과하는지 따라가 보겠습니다. 1. 인바운드(Inbound) 흐름: 외부 요청이 비즈니스 로직으로 들어오는 과정 외부 […]
더 보기 →헥사고날 아키텍처의 폴더(패키지) 구조 예제 전통적인 계층형 아키텍처(controller, service, repository, domain 패키지가 나란히 있는 구조)와 달리, 헥사고날 아키텍처는 기능 또는 도메인 중심으로 패키지를 구성합니다. “온라인 서점”의 “주문(Order)” 기능을 예로 들어보겠습니다. […]
더 보기 →결론부터 말씀드리면, View Binding이나 Data Binding을 사용하면서 Kotlin의 특정 기능을 활용하면 Butter Knife와 매우 유사한 직관성을 얻을 수 있습니다. 하지만 순수 Java 환경에서는 그와 동일한 수준의 직관성을 […]
더 보기 →과거: Butter Knife 사용법 (Java) Butter Knife는 어노테이션(@BindView, @OnClick)을 사용하여 findViewById와 setOnClickListener를 대체했습니다. 1. build.gradle 설정
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<span class="line"><span>// build.gradle (Module: app)</span></span> <span class="line"><span></span></span> <span class="line"><span>// Java에서 어노테이션 프로세서를 사용하기 위해 필요</span></span> <span class="line"><span>apply plugin: 'com.android.application'</span></span> <span class="line"><span>apply plugin: 'kotlin-android' // 예시를 위해 추가, Java만 사용시 불필요</span></span> <span class="line"><span>apply plugin: 'com.jakewharton.butterknife'</span></span> <span class="line"><span></span></span> <span class="line"><span>android { ... }</span></span> <span class="line"><span></span></span> <span class="line"><span>dependencies {</span></span> <span class="line"><span> implementation 'com.jakewharton:butterknife:10.2.3'</span></span> <span class="line"><span> annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'</span></span> <span class="line"><span>}</span></span></code><code class="whitespace-pre-wrap break-words"><span class="line"><span></span></span> |
2. MainActivity.java 예시 activity_main.xml에 아래와 같은 뷰가 있다고 가정합니다. TextView (id: textView_title) Button (id: button_submit) […]
더 보기 →결론부터 말씀드리면, Butter Knife는 현재 공식적으로 개발이 중단(Deprecated)되었으며, 새로운 프로젝트에서는 사용을 권장하지 않습니다. 물론 기존 프로젝트에서는 여전히 동작하지만, 더 이상 유지보수나 업데이트가 지원되지 않습니다. 왜 더 이상 […]
더 보기 →1. 변수 선언: val vs var Java에서는 변수의 타입을 먼저 명시했지만, Kotlin은 변수가 ‘변경 가능한지’ 여부를 먼저 결정합니다. 구분 Kotlin Java 설명 변경 불가능 (Immutable) val name: String […]
더 보기 →