2019년 10월 30일 수요일

시퀀스맵으로 유저스토리를 만들어 TDD 까지 연계해보자

문서와 설명으로만 프로젝트를 진행하는 경우가 있다. 다들 머리속에는 같은 것을 그리고 있는데 아무도 그걸 구체화 시키지 않는다. 특히나 프로그래머는 뭐든지 로직으로만 생각하는 경우가 있는데, 그렇게 하다보면 로직->테스트코드작성 순으로 생각하게되는경향이 있다. 따라서 로직은 개발자한테 맡기되 고객/기획/디자이너/개발자가 공통된 하나의 스토리를 기반으로 같은 상상을 하게 해주는 좀더 구체화된것이 필요하다. DDD 의 유비쿼터스언어 또한 언어라는 한계에서오는 제한으로 쉽게 진행되지 못하는경우가 있다. 이것을 애초부터 순서도로 만드는...

2019년 10월 21일 월요일

IOS 의 GCD ( Grand Central Dispatch) 로 쓰레드처리를 편하고 안전하게.

쓰레드의 락, 동기화 이런거 신경쓰지 않고 GCD를 사용하여 메인 쓰레드에 단순히 dispatch 하면 걍 실행된다능. 헤더파일에서 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ba2da2; background-color: #ffffff} span.s1 {color: #ba2da2} span.s2 {color: #703daa} @interface SingleToneSample : NSObject + (instancetype) sharedInstance; @end 처럼...

Cocoa Touch Framework 을 이용해서 공통모듈 만들기

안드로이드에서 aar 화일을 만들어 쓰듯이, Xcode 6 부터는 개발자가 Framework 프로젝트를  만들어서 여러프로젝트에 공통으로 사용할수 있도록 되었다. 1.일단 워크스페이스부터 따로 만든다. 2.새 프로젝트를 만들어야 하는데 [cocoa touch framework] 를 선택해서 새로 만든다.  맨 마지막 프로젝트 폴더 선택하는 부분에서  add to 와 group 선택박스를 아까 생성한 워크스페이스로 선택한다. 3.프로젝트 구성을 보면 프레임헤더화일, 테스트 , 프로덕트가 있고 안에 .framework 파일이 있는데 아직 빌드를 안해서 빨강색이다. 4.프레임헤더를 열어보면 맨마지막줄에 public , 공개로 사용할 헤더를 적어주면 외부에서 해당 기능을 사용할수 있게된다라고...

2019년 10월 12일 토요일

Android NDK 작성법 CMakeLists.txt 사용 -2

1 . Native c++ 프로젝트로 시작하면 CMakeLists, cpp 폴더 등 자동 설정된 채로 프로젝트를 시작할수있다. 2 . CMakelist.txt 의 설명은 여기를 참고 *https://crmn.tistory.com/80     굳이 CMake 를 배우려면 https://www.tuwlab.com/ece/27234 3 . CMakelists 에 사용할 라이브러리 추가 add_library( hello-libs SHARED hello-libs.cpp) 4 . Activity 에서는 // Used to load the 'native-lib' library on application startup. static...

Android NDK 작성법 -1

C 소스와 연동하기 위해서는 NDK 연동해야 되는데 걍 귀찮네.. 일단 고전적인 방법  1. 액티비티 클래스에서 먼저 static 으로 만들고자 하는 ndk 모듈을 로딩한다. JniTwo 라는 이름은 C++ 모듈이름으로 Android.mk 에 [ LOCAL_MODULE := jniTwo ] 라고 나중에 똑같이 적으면 된다. static { System.loadLibrary("jniTwo"); } 2. 모듈을 로드했으면 액티비티 클래스에서 쓸 함수를 이름만 정의한다. ...

2019년 10월 11일 금요일

Android Decompile 해서 다시 apk 로 만들어보기

-1 apktool 명령어로 해보기 1.java -jar apktool_2.4.0.jar d 앱이름.apk 2.압출풀린 폴더가 생긴다. 3.Manifest.xml 에 application 태그에  android:debuggable="true"  을 추가함. 4.java -jar apktool_2.4.0.jar b 앱이름폴더 5.임시키를 만듬 "C:\Program Files\Java\jre1.8.0_191\bin\keytool.exe" -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 6.그 키로 jar 싸인 "C:\Program Files\Java\jdk1.8.0_191\bin\jarsigner.exe"...

2019년 9월 29일 일요일

cocoapods 아이폰 라이브러리관리 프로그램

 gradle 처럼 라이브러리 관리툴이 있었네. 1.sudo gem install cocoapods 2.pod setup 해서 초기설정한후에 3.일단 해당 프로젝트 폴더에서 pod init 하면 pod file 이 생성됨 4.pod 파일을 열고   # Pods for withpods2   pod 'Alamofire', '5.0.0-rc.2' 식으로 입력 5.pod install 하면 라이브러리 설치됨 6.하얀 프로젝트 파일을 열어서 작업하면됨 참고 : https://blog.yagom.net/534?category=4129...

2019년 9월 28일 토요일

모놀로식 아키텍쳐 vs 마이크로 아키텍쳐

최근 Docker , React 등의 새로운 것들을 보면 컨퍼넌트 라는 개념으로 구성하도록 강제하고 있다. 예전에는 하나의 시스템은 하나의 아키텍쳐 라는 개념이었는데, 최근에는 하나의 시스템은 여러 서비스로 나뉘고 곧 여러 아키텍쳐가 모여서 구성한다는 개념이 유행이다. 아래는 아키텍쳐의 비교이다. 참조 : https://jins-dev.tistory.com/entry/MicroService%EB%9E%80-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC?category=760149 https://ji...

2019년 9월 27일 금요일

Smoke Test 란

새로 추가된 기능으로 인해 기존의 핵심기능에 영향을 미치는지 개발팀내부에서 한번 쭉 돌려보는 테스트를 말함. 개발자가 각자 단위 테스트를 끝낸후에  개발팀내에서 QA 팀에 넘기기 전에 미리 간단하게 테스트해봐서 문제가 없는지 검증하는 단계이다. QA 가 결합테스트를 통해 문제점을 발견하기 전에 개발팀에서 미리 문제점을 인지하고 빠르게 고쳐내서 QA 의 인력과 자원 낭비를 줄일수 있도록 한다. 테스팅이 프로젝트의 90%가 아닐까 생각해본다. 참조 : https://angel927.tistory.com/77?category=222018 https://translate.google.com/translate?hl=ja&sl=ko&tl=ja&u=https%3A%2F%2Fjins...

2019년 9월 3일 화요일

Android Enterprise Experience 안드로이드 엔터프라이즈 모드를 간단하게 경험해보게 해준다

일단 자세한 설명은 https://qiita.com/garupon/items/844770b1eb48ac004ced 여기서 참고. 최근 안드로이드에 기업용 솔류션이 따로 있었다는것을 알게되었다. 지금까지는 안드로이드는 그냥 사용자들이 사용하는거고, 원격제어 솔류션들은 자체적으로 뭔가 해서 모바일 기기를 원격제어(?)를 한다고 막연하게만 생각하고 있었는데, 구글에서는 예전부터 안드로이드를 제한된 리소스를 통해 특정 기업,단체 등이 보안에 신경쓰면서 사용할수 있도록 기능을 제공해주고있었다. 모바일 장치 제어 솔류션은...