반응형

전체 글 94

[Android] 클래스 생성 시, 변수 개수에 따라 센스있게 처리해주기

// parameter 2개만 있을 떄 처리해줌 public Note(@Nullable String title, @Nullable String description){ this(title, description, null); } public Note(@Nullable String title, @Nullable String description, @Nullable String imageUrl){ mId = UUID.randomUUID().toString(); mTitle = title; mDescription = description; mImageUrl = imageUrl; } 변수가 2개만 있을 때 위의 메소드가 받아주고, 맨마지막 변수에 null 값을 넣어서 변수 3개까리 메소드가 처리해준다감동적ㅋㅋ

Programming 2016.08.23

[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
반응형