전체 글(61)
-
[Android A..Z] DI Dependency Injection 한 방에 끝내기
Denpendency Injection(DI)는 개발을 하면 한 번쯤은 들어보고 무엇인지 찾아보게 되는 개념입니다. 안드로이드를 개발하면서 공부한 DI 개념을 정리하도록 하겠습니다. 1. Dependency Injection(DI) 1-1 Dependency Dependency는 의존성이라는 뜻입니다. 개발에서의 의존성은 하나의 클래스가 다른 하나의 클래스에 의존하는 것을 의미합니다. A 클래스가 B 객체를 만드려면 어떻게 할까요? class A { val B = B() } 이런식으로 만드는 방법이 있습니다. 이렇게 되면 B는 A의 의존의 대상이 됩니다. B()라는 클래스가 다음과 같이 바뀐다면 어떻게 될까요? class B(context: Context) { } A클래스에서는 B클래스를 객체화 하기 ..
2022.10.20 -
[Kotlin Flow] 예제를 활용해 쉽게 Flow에 대한 개념 익히기 -1-
개념 Coroutine에서 Flow는 suspend func(정지 함수)와는 다르게 여러 값을 순차적으로 내보낼 수 있는 유형입니다. 이렇게 말하면 어떤말인지 잘 모를 수 있습니다.(저도 그랬거든요..ㅎㅎ) 간단한 예를 보겠습니다. Coroutine suspend Function val intList = ArrayList() val job1 = lifecycleScope.launch { (1..99).forEach { intList.add(it) delay(10L) } } lifecycleScope.launch { job1.join() intList.forEach { Log.d("TAG", it.toString()) } } // result 빌드 후 약 1초 후에 모든 값이 한 번에 찍힙니다. 위 코드를..
2022.07.29 -
TDD란? - Test-Driven-Development
TDD란? 테스트 주도 개발(Test-driven development TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. TDD는 단순한 설계를 장려하고 자신감을 불어 넣어 준다. 프로그래밍 순서 빨강 - 실패하는 작은 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다. 초록 - 빨리 테스트가 동과하게끔 만든다. 이를 위해 어떤 죄악을 저질러도 좋다. 리팩터링 - 일단 테스트를 통과하게만 하는 와중에 생겨난 모든 중복을 제거한다. 원칙 1. 실패하는 단위 테스트를 작성할 때까지 구현 코드(production code)를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행히 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정도로만..
2022.01.28