최근에는 대부분 API 응답이 JSON 형식으로 다양한 데이터를 전달합니다. Rest API 통신 Data로 다양한 형태를 받을 수 있습니다.하나의 예시를 들어보겠습니다. 만약, API 응답이 다음과 같은 형태로 주어진다면 이를 어떻게 처리할 수 있을까요[ { "type": "TRUCK", "waterCannon": true }, { "type": "PLANE", "wingsSpanInMeters": 20 } ] Response Dto 를 다음과 같이 구성해서 받을 준비는 하고 있지 않은지 묻고 싶습니다.class Veichle { type : String waterCannon : Boolean wingsSpanInMeters : Int} ..
클린아키텍처라고 들어보셨나요? 그렇다면 DI 도 들어보셨나요? 이번 포스트는 클린아키텍처에 대한 내용보다 DI을 중심으로 외부 라이브러리를 소개하려고 합니다. DI를 사용하는 목적이 다양하겠지만 객체의 생성 시 의존성을 줄이기 위해서 DI 를 활용을 한다고 생각합니다. 이번 포스트는 DI 라이브러리인 Koin과 Hilt 의 차이를 알아보며 DI에 좀더 가까워지겠습니다. Koin 과 Hilt 사용법에 대한 포스트는 정식 사이트 소개로 대체하겠습니다. DI을 왜 사용할까?Android 공식 사이트에서는 DI을 사용하는 목적에 대해서 1) 클래스 재사용 가능 및 종속 항목 분리 2)리팩터링 편의성 3)테스트 편의성 으로 말합니다. ► 클래스 재사용 가능 및 종속 항목 분리: 종속 항목 구현을 쉽게 교체할 수 ..
들어가며 Google에서 Kotlin를 Android 공식 언어로 추가함에 따라 많은 개발자들이 Java에서 Kotlin으로 변경했을 것입니다. 단순히 Google에서 Kotlin을 Android 공식언어로 추가했다고 Java 을 Kotlin으로 변경하였을까요? Java의 단점 보완한 Kotlin는 Java와 호환도 잘되어 Java로 구현된 오픈소스 라이브러리를 그대로 사용할 수 있어서 많은 개발자들이 Java에서 Kotlin으로 변경하였을 것입니다. Kotlin 으로 변경하였을 때 가장 큰 장점이 무엇이라고 생각되시나요? 필자는 비동기 처리 방식으로 생각합니다. Java에서 비동기 처리는 대표적으로 RxJava을 활용해서 처리하였을 것입니다. Kotlin을 사용하는 대부분의 개발자들은 Coroutine..
Kotlin Lamda Return 가능한가? Kotlin 에서 Lamda 안에서 return 이 가능할까요? ‘당연히 Return 다 되는거 아니야?’ 라고 생각 할 수 있습니다. 그렇지만 모든 경우 Lamda의 return을 제공하고 있지 않습니다. 그럼 어느경우 가능하고 어느경우 안되는 것인지 알아보겠습니다. Lamda는 무엇인지부터 살펴 봐야겠습니다. Lamda Expression란? Lamda는 Java SDK 1.8부터 추가되어 자바의 큰 변화를 주었습니다. 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었습니다. 위키에서는 람다를 어떻게 정의하고있을까요? 람다식, 또는 람다 함수라 부른다. 프로그래밍서 사용되는 개념으로, 익명 함수(匿名函數, Anonymous funct..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 플라이웨이트 패턴이라고 들어보셨나요? 이미 해당 패턴인지 모르고 사용하는 분들도 많을거 같습니다. 이번 시간은 플라이웨이트 패턴에 대해서 알아보겠습니다. 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 ‘가상 인스턴스’ 를 제공할 때 플라이웨이트 패턴을 사용하면됩니다. 그럼 바로 UML 을 보면서 어떤 패턴인지 감을 잡겠습니다. 예시를 통한 플라이웨이트 알아보기 조경 설계 애플리케이션에서 나무 객체를 추가해야 할 시나리오를 갖고 생각해보겠습니다. 우리는 나무 객체를 랜덤한 x.y 을 받고 객체를 생성할 것입니다. 그렇게 되었을 많은 객체를 생성하게 되면 한달 빠르면 일..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 역할 사슬 패턴이라고 들어보셨나요? 역할 사슬은 한 요청을 두 개 이상의 객체에서 처리하고 싶을 때가 있습니다. 개발자의 성향상 if 문을 클래스 내에서 길게 사용하는 것을 지양하는 분이 계시다면 역할 사슬 패턴에 대해서 알아두면 좋을거 같습니다. 역할 사슬 패턴이란? 역할 사슬 패턴은 행위패턴으로 한 요청을 두 개 이상의 객체에서 처리할 때 사용하는 패턴입니다. ◆ 장점 ‣ 요청을 보낸 쪽하고 받는 쪽을 분리 할 수 있습니다. ‣ 사슬의 구조를 몰라도 되고 그 사슬에 들어있는 다른 객체에 대한 레퍼런스를 가질 필요가 없습니다. ‣ 사슬에 들어가는 객체 변경 및 순서 변..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 레거시코드를 보다보면 한번쯤은 보셨을 패턴인 빌더 패턴에 대해서 이번 시간 이야기하겠습니다. 빌더패턴이란?? 제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계들을 캡술화하고 싶다면 빌더 패턴을 활용하면 됩니다. ◆ 장점 ‣ 복합 객체가 생성되는 과정을 캡술화 합니다. ‣ 제품의 내부 구조를 클라이언트로부터 보호 할 수 있습니다. ‣ 여러 단계와 다양한 절차를 통해서 객체 생성가능합니다. ◆ 단점 ‣ 팩토리를 사용하는 경우에 비해 객체를 만들기 위해서 클라이언트에 대해 더 많이 알아야합니다. 예제를 통한 빌더패턴을 알아보기 손님마다 휴일 일자와 숙소가 달라지게 됩..
알고리즘을 캡슐화해서, 서브클래스에서 언제든 필요 할때마다 사용할 수 있는 방법을 고민하신다면 디자인 패턴 중 하나인 템플릿 메소드 패턴을 제안드립니다. 이번 포스트는 템플릿 메소드 패턴에 대해서 간단히 알아보겠습니다. * Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 템플릿 메소드 패턴 메소드에서 알고리즘의 골격을 정의합니다. 알고리즈의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는그대로 유지하면서 서브클래스에서 특정 단계를 재정의할 수 있습니다. 후크 추상 클래스에서 선언되는 메소드긴 하지만 기본적인 내용만 구현되어 있거나 아무 코드도 들어있지 않은 메소드입니..
- 안드로이드
- RXjava
- 코틀린
- 스코어헬퍼
- MCC
- 디자인패턴
- 선교
- Android
- IOS
- 미션차이나센터
- 고시문헬퍼
- view
- 임용고시
- Android Studio
- 고시문
- push
- IT
- issue
- missioon
- missionchina
- DI
- java
- swift
- Kotlin
- 알고리즘
- 탁구
- flutter
- 점수판
- 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |