목록투케이 (1967)
투케이2K
[로직 정리] 정리 로직 : MOBILE (Ios) 상태 : [IOS] WkWebview 웹뷰 로딩 에러 (error) 상태 감지 및 앱 실행 초기화 로직 [설 명] [IOS : 앱 실행 초기화 로직] 1. 웹뷰 로딩 및 로그인 수행 후 자바스크립트 브릿지로 웹뷰 초기화 시간 (ex : 30분) 전달 받음 (디폴트 : 30분) 2. SceneDelegate 클래스 >> sceneWillResignActive (Scene 활성 상태 해제 및 사용자 이벤트 응답 중지) 부분에서 프리퍼런스에 백그라운드 전환 시간 저장 3. AppDelegate 클래스 >> didFinishLaunchingWithOptions, applicationWillTerminate , didDiscardSceneSessions ..
[환경 설정 및 설명] 언 어 : Java 설 명 : 문법 - try catch throws exception 예외 처리 및 예외 상황 리턴 실시 [소스 코드] package ex; public class MainActivity6 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("[Program Start]"); System.out.println(""); /* [요약 설명] * 1. throws exception : 프로그래머가 임의로 exception을 강제로 발생 시켜 예외 상황을 알려주는 것입니다 * 2. exception 을 정의한 메소드는 throws 키워드를 사용..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] 블루투스 SPP 통신 설정 및 데이터 송.수신 테스트 로직 [설 명] [안드로이드] 1. AndroidManifest.xml 파일에 블루투스 사용 퍼미션 등록 실시 2. A_Main 클래스 onCreate() 부분에서 블루투스 활성 여부 체크 3. 블루투스가 활성 된 경우 >> SPP 통신을 수행 하기 위한 UUID 설정 - UUID 설정이 중요한 것은 UUID 값 으로 [스마트폰 임베디드] , [스마트폰 스마트폰] 통신 수행 4. 근처 블루투스 기기 목록 스캔 수행 >> 연결하려는 장비 페어링 수행 실시 (페어링은 address 주소를 사용해서 다이렉트 연결 실시) 5. 정상적으로 connection 완료 시 ..
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 흔들기 (shake) 이벤트 수행 및 알림 전달 로직 [설 명] [안드로이드] 1. A_Main 클래스 onCreate() 부분에서 SensorManager 서비스 등록 및 디바이스가 가속도 센서를 사용할 수 있는 지 체크 실시 2. A_Main 클래스에 흔들기 이벤트를 감지할 수 있는 onSensorChanged 메소드 등록 >> 웹뷰 로드 수행 실시 3. 웹뷰 자바스크립트 브릿지로 흔들기 이벤트 사용 명령 전달 받음 (Y / N) - 디바이스가 가속도 센서를 사용할 수 없는 경우는 >> 알림 팝업창 표시 수행 4. 실제로 디바이스 흔들기 수행 실시 5. 정상적으로 흔들기 이벤트가 발생한 경우 >> 흔들기 ..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] TCP / IP 소켓 통신 버퍼 관리 및 데이터 검증 로직 [설 명] [안드로이드] 1. 사전 TCP / IP 소켓 통신을 수행하기 위해 데이터 포맷 프로토콜 정의 실시 (STX / 데이터 길이 / 데이터 / ETX) 2. STX 시작 비트를 확인하면 버퍼에 순차적으로 데이터를 쌓는다 3. 버퍼는 ETX 종료 비트가 들어올 때까지 계속해서 들어온 데이터를 추가한다 4. ETX 종료 비트까지 정상적으로 받은 경우는 >> 데이터 검증을 수행한다 5. 데이터 길이 확인 >> 실제로 데이터 길이 만큼 버퍼에 쌓인 데이터 LENGTH 확인 6. 정상적으로 데이터 길이 만큼 버퍼에 데이터가 쌓인 경우 >> 데이터 파싱 등 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cr0fB5/btrKYFj0nP4/SKczqT9KAO43c0ruOLhoPK/img.png)
[환경 설정 및 설명] 프로그램 : AndroidStudio 설 명 : 정책 - 데이터 보안 양식 잘못됨 : 데이터 보안 섹션 기기 또는 기타 ID 데이터 유형 위반 이슈 [에러 원인] 1. 구글 플레이스토어 앱 콘텐츠 >> 데이터 보안 정책 위반 이슈 - 앱의 데이터 보안 양식에 명시한 내용과 앱 동작이 일치하지 않음 [해결 방법] 1. 이메일로 받은 데이터 보안 위반 사항 확인 (기기 또는 기타 ID 데이터 유형) 2. 구글 플레이스토어 앱 콘텐츠 >> 데이터 보안 양식 수정 >> 해당 기능 (기기 또는 기타 ID 데이터 유형) 사용 체크 - 앱의 데이터 보안 양식에 명시한 내용과 앱 동작이 일치하도록 변경 필요 3. 해당 기능 사용 목적 선택 >> 저장 수행 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dUckdY/btrKWAJVIYM/a0LtrVuQmEM8NSE6W4qsOk/img.png)
[환경 설정 및 설명] 언 어 : Java 설 명 : 패턴 - 프록시 패턴 (Proxy Pattern) 구현 실시 [클래스 구조] [요약 설명] /** * // ----------------------------------------- * TODO [프록시 패턴 설정] * // ----------------------------------------- * 1. 프록시 (Proxy) : 대리인이라는 뜻으로 무엇인가를 대신 처리하는 의미입니다. * // ----------------------------------------- * 2. 프록시 패턴 (Proxy Pattern) : 클라이언트가 타깃에 접근하는 방식을 중간에서 변경해주는 역할을 합니다 * // --------------------..
[로직 정리] 정리 로직 : MOBILE (Ios) 상태 : [Ios] 블루투스 (bluetooth) 출입 신호 활성 로직 [설 명] [IOS] 1. info plist 파일에 블루투스 및 위치 사용 권한을 등록 실시 2. A_Intro 수행 시 블루투스 및 위치 권한 사용 동의 팝업창 표시 실시 3. A_Main 클래스에서 자바스크립트 브릿지로 블루투스 신호 활성 명령 전달 받음 / 이미 블루투스 신호가 활성 중인 경우는 먼저, 종료 처리 4. A_Main 클래스에서는 블루투스 및 위치 사용 권한 부여 상태 확인 실시 5. 권한이 정상적으로 부여되지 않은 경우 >> 권한 동의 알림 팝업창 표시 >> 설정 클릭 시 >> 애플리케이션 설정 이동 6. 권한이 모두 정상적으로 부여 된 경우 >> 블루투..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] NFC 시스템 설정 및 동작 수행 로직 (HCE 통신 / AID 사용) [설 명] [안드로이드] 1. AndroidManifest.xml 파일에서 NFC 퍼미션 등록 실시 2. AndroidManifest.xml 파일에서 Nfc_Service 등록 및 서비스 내에 meta-data 로 aid_list xml 파일 등록 실시 3. aid_list xml 파일에서 하드웨어와 통신을 주고 받기 위한 AID 설정 실시 (AID 값이 다르면 하드웨어로 부터 신호를 받지 못함) - aid 값은 aid-group 그룹 내에서 aid-filter 로 등록 (aid-filter 로 다중 등록 가능) 4. A_Main 클래스 on..
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 비콘 (beacon) 신호 활성 및 신호 스캔 로직 [설 명] [안드로이드] 1. A_Main 클래스 자바스크립트 브릿지에서 비콘 신호 스캔 명령 전달 받음 (uuid, major, minor) / (이미 기존에 수행 중인 경우 먼저, 종료 실시) 2. 필수 데이터 널 체크 방어 로직 확인 3. 정상적으로 key , value 값이 모두 부여되어 있는 경우 >> 사용자 디바이스 블루투스 , 위치 권한 부여 상태 확인 - 위치 권한 : [디바이스] 자체 위치 권한 체크 및 [애플리케이션] 위치 및 근처기기 권한 체크 필요 4. 만일, 권한이 부여되지 않은 경우 팝업창 알림 표시 수행 >> 팝업창 확인 버튼 클릭..
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 앱 숏컷 아이콘 (ShortcutIcon) 생성 및 삭제 로직 [설 명] [안드로이드] 1. A_Main 클래스 자바스크립트 브릿지에서 초기 웹뷰 로딩 시 앱 숏컷 사용 여부 값 전달 받음 (Y / N) 2. 안드로이드 A_Main 클래스 onStop() 또는 onPause() 부분에서 앱 숏컷 사용 여부에 따라서 앱 숏컷 아이콘 생성 실시 3. 사용자가 앱 숏컷 아이콘 클릭 접속 시 >> A_ShorCut 숏컷 클래스에서 A_Intro 로 다시 인텐트 이동 실시 4. A_Intro 클래스에서는 앱 숏컷으로 접속 시 A_Main 인텐트 이동 시 FLAG_ACTIVITY_NEW_TASK 새로운 태스크로 이동 (..
[로직 정리] 정리 로직 : MOBILE (Ios) 상태 : [Ios] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직 [설 명] [IOS] 1. SceneDelegate 클래스 sceneDidBecomeActive (Scene 활성화 및 사용자 이벤트에 응답 실시) 부분에서 Application_Run 프리퍼런스 값 저장 실시 (TRUE) 2. AppDelegate 클래스 applicationWillTerminate , didDiscardSceneSessions 부분에서 Application_Run 프리퍼런스 값 초기화 실시 3. A_Main 클래스 viewDidLoad , 포그라운드 부분에서 A_Main_Run 실행 프리퍼런스 값 저장 실시 (TRUE) ..
[로직 정리] 정리 로직 : MOBILE (Android) 상태 : [Android] 푸시 (push) 알림 포그라운드 , 백그라운드 , 앱 kill 상태 클릭 이벤트 로직 [설 명] [안드로이드] 1. Application 클래스에서 onCreate() 시작 부분에서 A_Main_Run 실행 프리퍼런스 값 초기화 , Application_Run 프리퍼런스 값 저장 (TRUE) 실시 2. ProgramTaskService 프로그램 태스크 관리 서비스 클래스에서 onTaskRemoved 작업 목록 삭제 감지 부분에서 A_Main_Run , Application_Run 프리퍼런스 값 초기화 실시 3. A_Main 클래스 onCreate() 부분과 onResume() 부분에서 A_Main_Run 실행 ..
[환경 설정 및 설명] 프로그램 : AndroidStudio / Xcode 설 명 : 모바일 웹뷰 (webview) 사용 시 userAgent 접속 환경 체크 이슈 [에러 원인] 1. Android 및 Ios 웹뷰 (webview) 에서 특정 주소 접속 시 자바스크립트에서 userAgent 로 접속 환경 체크 부분에서 정상적으로 구분되지 않는 이슈 발생 [해결 방법] 1. Android 및 Ios 웹뷰 (webview) 에서 특정 주소 로드 시 커스텀 userAgent 값 을 설정해 자바스크립트에서 구분할 수 있게 수정 https://kkh0977.tistory.com/2433 333. (AndroidStudio/android/java) 웹뷰 (webview) 에서 userAgent..
[환경 설정 및 설명] 언 어 : Android (Java) / Ios (Swift) 설 명 : 테스트 - 유닛 테스트 (unit test) 수행 방법 정리 - junit, espresso, unit [수행 방법] https://kkh0977.tistory.com/2429 332. (AndroidStudio/android/java) 유닛 테스트 (Unit Test) 수행 방법 설명 [개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : java [유닛 테스트 설명] /** * // ----------------------------------------- * TODO [유닛 테스트 설명 및 사용 이유] * // -------------------.. kkh0977.tis..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cl4unU/btrKSgQ637o/1Nc41upXKLmkOP27viwAh1/img.png)
[개발 환경 설정] 개발 툴 : AndroidStudio 개발 언어 : java [유닛 테스트 설명] /** * // ----------------------------------------- * TODO [유닛 테스트 설명 및 사용 이유] * // ----------------------------------------- * 1. 유닛 테스트는 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다 * // ----------------------------------------- * 2. 유닛 테스트는 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차입니다 * // --------------------------------------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pLCsl/btrKMGCsZpR/5dxi5mvaJ71xfzLyBgWnS1/img.png)
[환경 설정 및 설명] 프로그램 : AndroidStudio 설 명 : 빌드 에러 - error package does not exist 패키지명 에러 [에러 원인] 1. 설정한 패키지 (Package) 명 시작 부분이 대문자로 되어있는 경우 발생하는 에러 (ex : DataBind) [해결 방법] 1. 패키지 명 소문자로 리팩토링 수행 실시 (ex : databind)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/osLml/btrKF03jz03/nkwy7x1Pfki8LhhdPO4Gu0/img.png)
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - MVVM (Model , View , ViewModel) 형태 로직 구현 실시 [클래스 구조] [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. MVVM 패턴 동작 수행 클래스 * // ----------------------------------------- * 2. MVVM 구성 : * - M (모델) : 데이터 조작 (저장, 호출) 관련 클래스 * - V (뷰) : 사용자에게 표시되는 화면 및 액티비티 클래스 * - VM (뷰 모델) : 뷰 를 나타내주기 위한 [모델 + 뷰] 의 로직 담당 * // --------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EB4zN/btrKFfeJLrh/rwIaYvBSrePuikYkWmFrk1/img.png)
[로직 정리] 정리 로직 : MOBILE (ANDROID / IOS) 상태 : [모바일] 웹뷰 (webview) 사용 시 로딩 (loading) 속도 향상 및 디스크 캐시 사용 실시 [설 명] [사전 설정] 1. 웹에서는 해시 값을 사용해 css 파일 명칭 지정 2. 웹에서는 해시 값을 사용해 js 파일 명칭 지정 [안드로이드] 1. 웹뷰 초기 설정에서 앱 캐시 사용 설정 지정 main_webview.getSettings().setAppCacheEnabled(true); // 앱 내부 캐시 사용 여부 설정 main_webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 웹뷰 캐시 모드 설정 2. 필요에 따라 모든 데이..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bGchim/btrKuVzqwA0/5IMpZn92PlkyqIcv4zHoCk/img.png)
[환경 설정 및 설명] 언 어 : Android (Java) 설 명 : 패턴 - 팩토리 패턴 (Factory Pattern) 구현 실시 [클래스 구조] [요약 설명] /** * TODO [클래스 설명] * // ----------------------------------------- * 1. 팩토리 패턴 정의 클래스 * // ----------------------------------------- * 2. 팩토리 패턴 : * * 다수의 자식 클래스를 가진 슈퍼 클래스가 있을 경우 매개 변수 값에 따라서 해당 자식 클래스의 인스턴스를 반환해줍니다 * * 팩토리 패턴 구현에 필요한 슈퍼 클래스는 인터페이스, 추상 클래스, 일반 클래스 모두 가능합니다 * * 팩토리 패턴은 클라이언트와 구현 ..