반응형

Programming 61

[Android] Testing #1. ATSL (Android Testing Support Library)

TDD?Test Driven Development의 줄임말로 중구난방식의 개발과 설계 지향적인 개발에서 벗어나 기능단위의 실용적인 코드를 만들 수 있도록 도와주는 개발 방법론이다.Android와 iOS 두 플랫폼 모두 이와 같은 방법론을 적용하고 있는 개발자들이 있다는 것을 알게되었다.Android Sutdio와 Xcode에서 Testing하기 쉽게 기능을 제공해주고 있는 것 같다.TDD의 장점은 직접 코드를 짜보면서 체험해보는 것이 좋을 듯 하다. Android Testing Support Library (ATSL)?안드로이드에서 Robolectric 3.0 이라는 테스팅 라이브러리를 써왔는데 진화하는 안드로이드를 따라잡지 못했다고 한다.그래서 Android Testing Support Library ..

Programming 2016.08.22

[GDG devcamp 2016] Tensor Flow

머신 러닝 기본 이론 이번 세션 Regression Linear, Logistic Regressionsupervised : a = b 라는 답이 있는데 이것을 학습시켜서, 예측함수 만들기"경험으로부터 학습하는 알고리즘" 데이터 마이닝 기본 이론 배경예측함수를 통한 예측값과 실제값의 차이를 최소화하는 세타 값을 찾는 것이 목표이다.그래프로 그려보면 볼 형태로 나옴, 가운데 있는 cost가 가장 적은 것을 선택해야 한다.이러한 그래프에서 가장 작은 것을 추적하기 위해서 gradient descent를 사용한다. 기울기의 음수, 양수를 보면서 가운데에 있는 기울기 0에 가깝게 다가간다. 텐서 플로우에서는 이 과정을 내부 함수로 제공해준다. 하지만 매틀랩같은 곳에서는 직접 작성해줘야한다. 개발환경pycharm ..

Programming 2016.08.20

[GDG DevCamp 2016] Unit Test : ATSL을 이용한 유닛테스팅

GDG devcamp 2016 : 김종찬 발표자 Develop TestingGo language 안드로이드에 MVP 패턴을 사용하는 이유 : 개발한 기능들을 테스팅하기 위함 개발자의 테스트란 : 객체에서 일어날 수 있는 상황 가정, 테스트 로직을 만들어서 코드로 구현유닛 테스트 = 코드를 짜서 확인하는 것유닛 테스트에서 Mock이라는 것이 중요함 = 외부 의존성의 상태에 상관없이 테스트해야 할 대상에 집중 가능 유닛 테스트 코드를 짜는 것이 옳은 것일까?매번 빌드시마다 작성된 테스트들을 자동으로 수행수정한 기능으로 인해 다른 영역에 결함이 생기지 않았는지 확인 ATSL : 구글에서 제공하는 테스팅 라이브러리 구글이 직접 안드로이드 테스팅 라이브러리를 제공함AndroidJunitRunner (유닛테스트) ..

Programming 2016.08.20

[GDG DevCamp 2016] MVP(Model - View - Controller)

https://tomyrhymond.wordpress.com/2011/09/16/mvc-mvp-and-mvvm/http://tosslab.github.io/android/2015/03/01/01.Android-mvc-mvvm-mvp.html MVC패턴의 변형된 버전 View : 사용자 입력, 화면 갱신, Activity, FragmentPresenter : 뷰와 모델의 연결체, Data binding, data displayingModel : Data 저장, Business Logic MainContract public interface MainContract { interface View{ void setText() interface UserAction{ 기능별로 패키지화 View:Presenter =..

Programming 2016.08.20

소프트웨어 기능명세

다른 기업들과 협업할 때 우리가 원하는 제품이 무엇인지 공유하는 것이 쉽지 않다는 것을 알게되었다.기능 명세서를 작성해서 공유하면 된다는 말에 생각하는 기능들을 나열해보았는데 그것도 좋은 방법은 아닌 것 같다는 생각이 들었다.명확한 기준이 없고 훌륭한 기능 명세에 대한 예시를 본 적이 없기 때문일 것이다. 구글링을 통해 얻을 수 있는 몇 가지 글들을 참고하여 다시 내 언어로 소화해 보려고 한다. Software Requirements Specification(이하 SRS)로 검색해서 가장 처음 등장하는 글을 읽어봤더니 유용한 정보가 많이 있었다[1].이글에서 참고하는 사이트는 IEEE 라는 곳에서 고민한 SRS 이다. http://standards.ieee.org얼핏봐도 SRS뿐만 아니라 프로젝트의 시작..

Programming 2016.08.13

안드로이드 Bluetooth LE 수신

public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic, boolean enabled) { if (mBluetoothAdapter == null || mBluetoothGatt == null) { Log.w(TAG, "BluetoothAdapter not initialized"); return; } mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); // UUID_INIT_NOTI_RECV 수신 설정 // callback method 등록하는 것 처럼 // 이 부분이 반드시 있어야 함 // --------중요 시작-------- if ..

Programming 2016.08.09

[SVC] #1. SourceTree를 이용한 Git 관리

조엘 테스트를 통해 Source Control이 필요함을 실감했다.SourceTree를 사용하면 Git을 시각적으로 관리할 수 있다. Step1 : Git을 설치한다https://git-scm.com에서 쉽게 다운받을 수 있다 Step2 : Source Tree를 설치한다 Step3 : Repository 생성하기Github 계정을 생성하면 원격 repository를 생성할 수 있게된다 Step4 : SourceTree에서 클론하기 Step5 : 클론된 목적지에 프로젝트 파일 생성파일을 생성, 또는 수정하게 되면 SourceTree에서 확인할 수 있다224개의 항목이 변경되었음을 보여준다 스테이지에 올라가지 않은 파일을 체크하면, 스테이지로 올라간다이렇게 올라간 파일들은 이제 커밋(코멘트 추가 개념)할 ..

Programming 2016.08.09

MVC 디자인 패턴

얼마전 네이버 iOS 개발자 컨퍼런스에서 단위 테스트에 대한 내용을 듣고 적지 않은 충격을 받았다기능과 UI의 분리만으로도 테스트의 효율이 급상승하고 지금까지 ViewController에 모든 기능, UI, 데이터를 다 넣었던 코드가 부끄러워졌다물론 테스트에도 많은 시간이 소요되었다 깔끔하지 않은 코드를 바라고 코딩하는 개발자는 없을 것이다근본적인 원인은 조급함 때문이다나의 경우 전체 설계를 하지 않고 단위 기능 개발을 우선시 했기 때문에 이러한 결과가 나왔다 iOS 교육 앱을 기획하면서iOS에 적합하게 MVC패턴을 사용하는 법을 익혀야할 필요를 느꼈다 시간이 좀 지난 강의인것 같지만 기본 개념을 익히기에 부족함이 없어보인다http://theopenacademy.com/content/lecture-1-m..

Programming 2016.07.11
반응형