본문 바로가기

연구실

(8)
[TDD] 테스트 주도개발이란? 1) 개요 - 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 - Kent Beck이 개발 혹은 재발견 한 것으로 인정된다. 2) 목적 - 작동 가능한 깔끔한 코드(Clean code that works) - 끊임없이 발생할 버그에 대해 걱정하지 않고, 일이 언제 마무리될지 알 수 있다. - 코드가 가르쳐주는 모든 교훈을 학습할 기회를 갖게된다.(리팩토링) 3) 과정 - 빨강: 실패하는 작은 테스트를 작성한다. - 초록: 테스트가 통과하게끔 최대한 빠르게 코드를 수정한다. - 리팩토링: 빠르게 코드를 수정하는 과정에서 발생한 코드 중복을 제거한다.
프론트엔드 프레임워크(+라이브러리) React, Vue, Angular 비교하기 해당 포스팅은 주관적인 평가가 반영되어 있으며 장점 혹은 단점으로 평가된 내용이 사용자에 따라 정 반대로 바뀔 수도 있습니다. 이번에는 프론트엔드 프레임워크를 비교해봤습니다. 뷰랑 리액트는 신입 포트폴리오용 프로젝트에 도입해서 사용해봤고 앵귤러는 아주 살짝 맛만 봤습니다. 수집한 자료들과 경험을 기반으로 포스팅을 작성했습니다. 1. React 1) 개요 - 정의: UI 개발을 위한 자바스크립트 라이브러리 - 페이스북의 엔지니어 Jordan Walke에 의해 개발 되었으며, 2011년에 페이스북 뉴스피드에 적용한 게 시초 - Github Star: 130,000+ - 사용중인 기업: Facebook, Netflix, Uber, Heroku, Paypal, Atlassian, Airbnb, Microsoft..
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..
[JAVA 연구실] ENUM 파헤치기 안녕하세요 Wickies입니다.한동안 네이버 플랫폼을 이용했었는데 블로그 개편을 하면서 이사를 하게 되었습니다.그리고 이사 오는 과정에서 연구실 카테고리가 새로 생겼습니다. 아직은 부족한 부분이 많지만 차차 나아지리라 믿어봅니다. 개발 공부를 시작한 지 3개월 정도가 지났는데공부를 하다 보면 예상치 못한 부분에서 어려움을 느낄 때가 참 많습니다.하지만 어려움을 해결하는 순간 느껴지는 짜릿함이 있지요. 그 어려움을 나눠볼까 싶어서 연구실 카테고리를 만들어보게 되었습니다.해결된 부분은 나누고 해결하지 못한 부분은 함께 고민할 수 있기를 바래봅니다. 첫 번째 주제는 ENUM 입니다. 한창 자바 배울 때 이런 게 있구나 정도로 넘어갔던 부분인데우아한 형제들 기술 블로그를 보면서 관심이 생겨서 실습을 하게 되었습..