연구실/간단 이론 정리 (6) 썸네일형 리스트형 [TDD] 테스트 주도개발이란? 1) 개요 - 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 - Kent Beck이 개발 혹은 재발견 한 것으로 인정된다. 2) 목적 - 작동 가능한 깔끔한 코드(Clean code that works) - 끊임없이 발생할 버그에 대해 걱정하지 않고, 일이 언제 마무리될지 알 수 있다. - 코드가 가르쳐주는 모든 교훈을 학습할 기회를 갖게된다.(리팩토링) 3) 과정 - 빨강: 실패하는 작은 테스트를 작성한다. - 초록: 테스트가 통과하게끔 최대한 빠르게 코드를 수정한다. - 리팩토링: 빠르게 코드를 수정하는 과정에서 발생한 코드 중복을 제거한다. RxJava, Manifest.xml RxJava - Reactive Extensions를 JVM에서 구현한 라이브러리 - 끊임없이 요청/변경되는 데이터에 반응하기 위해 사용 - 명령형 프로그래밍을 지양하고 선언형 프로그래밍을 지향 - 즉 명령어의 나열 순서에 따라 연산하는게 아닌 데이터의 흐름에 따라 비동기적인 연산을 수행 - 함수형 프로그래밍을 활용 Manifest.xml - 어플리케이션의 이름, 버전, 구성요소, 권한 등의 필수 정보가 담겨있는 파일 - 어플리케이션 구조에 맞게 XML 형식으로 구조화되어있음 안드로이드 스튜디오의 테스트 1) 로컬 단위 테스트(/src/test/java) - JVM에서 실행되는 로컬 단위 테스트 - Android 프레임워크에 대한 종속성이 없거나 모의 객체를 생성할 수 있는 경우에 사용 - final 한정자가 삭제된 수정된 버전의 andorid.jar에 대해 실행 - Mockito와 같은 모의 라이브러리 사용 가능 2) 계측 테스트(/src/androidTest/java) - 하드웨어 기기 혹은 에뮬레이터에서 실행되는 계측 테스트 - 사용자 상호작용을 자동화하는 테스트를 작성하거나 로컬 단위테스트가 불가능한 경우 사용 - Instrumentation API에 액세스 가능 - 앱의 Context와 같은 정보에 대한 액세스 권한 제공 3) 의존성 - 아래와 같이 의존성을 추가해야 한다.(프로젝트 생성시 기본.. 안드로이드 액티비티의 상태 및 생명주기 액티비티의 상태 1) Created: 액티비티 생성 2) Started(visible): 액티비티 시작 3) Resumed(visible): 액티비티 Focus 4) Pause: 액티비티 일시 정지(다른 액티비티 Focus) 5) Stopped: 액티비티 정지(다른 액티비티에 의해 완전히 가려져서 hidden상태가 될 때) 6) Destroyed: 액티비티 제거 안드로이드 액티비티의 생명주기 1) oncreate(): 액티비티 생성 이전에 1회 호출 2) onStart(): 액티비티 생성 후 출력되기 전에 호출(Stopped 상태에서 다시 출력될 때도 호출) 3) onResume(): 액티비티 출력 후 Focus시 호출(Pause 상태에서 다시 Focus시에도 호출) 4) onRestart(): 액티비티.. 직렬화(Serialize)란? 직렬화(Serialize) - 객체 혹은 데이터를 외부에서 사용 가능하도록 바이트 형태로 변환하는 기술 - 반대되는 작업인 역직렬화(Deserialize)까지 아울러서 통칭하는 단어 - 시스템적으로 JVM의 메모리에 상주된 객체 데이터를 바이트 형태로 변환하거나 그 반대로 바이트 형태의 데이터를 JVM에 상주시키는 형태 - 자바의 기본 타입 혹은 java.io.Serializable 인터페이스를 상속받은 객체는 직렬화 가능 - 안드로이드에서 액티비티간 데이터 전송시 Intent의 putExtra 메소드를 사용하는데 객체를 전송할 때는 반드시 Serializable 인터페이스를 상속 받아야 한다. *참조 http://woowabros.github.io/experience/2017/10/17/java-ser.. 제네릭이란? 1. 제네릭(Generic) - 클래스 내부에서 사용할 데이터의 타입을 외부에서 지정하는 기법으로 JDK 1.5에서 도입되었다. - 타입 안정성을 제공한다. - 객체의 타입 체크와 형변환이 생략 가능하며 컬렉션 클래스 사용시 매우 유용하다. - 와일드카드를 사용해서 특정 객체의 부모 혹은 자손의 타입으로 제한할 수 있다.(는 의 축약형) - 복수의 제네릭을 함께 사용할 수 있다. - 기본형 타입에는 사용이 불가능하다(참조형 타입, 즉 객체에만 사용 가능) - 타입이 추론 가능한 경우에는 생략 가능하다. *참조 https://yaboong.github.io/java/2019/01/19/java-generics-1/ https://onsil-thegreenhouse.github.io/programming/j.. 이전 1 다음