목록투케이 (1959)
투케이2K
[로직 정리] 정리 로직 : MOBILE (Android / Ios) 상태 : [모바일] 웹뷰 (webview) 로드 시 사전 캐시 초기화 로직 [설 명] [모바일] 1. A_Main 클래스 시작 부분에서 네트워크 연결 상태 체크 실시 2. 모바일에 네트워크가 연결 된 경우 >> appVersionHttpRequest 앱 버전 확인 http 요청 실시 (커넥션 타임 5초) 3. 정상적으로 onSuccess 응답을 받은 경우 body 쪽에서 데이터 읽음 - onFail 인 경우 : 커넥션 타임 아웃인 경우는 디스크 캐시 사용해 웹뷰 로드 / 그 외는 캐시 초기화 로직 사용해 웹뷰 로드 4. onSuccess 인 경우 body 쪽에서 읽은 데이터 널 체크 수행 >> 널이 아닌 경우 >> 기존에 저장된..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/er7Sob/btrMgmJLukK/DkqVRDigclvQEpmUPFbZIK/img.png)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 빌드 에러 - Developer Mode disabled 개발자 모드 비활성 이슈 [에러 원인] 1. 아이폰 OS 업데이트 이후 개발자 모드가 풀림 현상 이슈 [해결 방법] 1. 휴대폰 설정 >> 개인정보 보호 및 보안 >> 하단에 [보안] >> 개발자 모드 [켜기]
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbpg9c/btrL9ZONvDU/hpeEE2BNpgAN277mxG7zCk/img.png)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 빌드 에러 - Compiling IB documents for earlier than iOS 7 is no longer supported. [12] [에러 원인] 1. 스토리 보드 및 xlb 레이아웃 화면 버전이 올바르지 않아서 발생하는 이슈 [해결 방법] 1. 스토리 보드 및 xlb 레이아웃 선택 >> Interface Builder Document Target 버전 명시된 (ex:12) 버전으로 변경 실시
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2cyZW/btrMafctq41/tLwYTwpkIkArkwNGSIhLG0/img.png)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 빌드 에러 - Compiling for iOS 10.0, but module library has a minimum deployment target of iOS 11.0 버전 호환 에러 [에러 원인] 1. 프로젝트 빌드 설정에 등록된 최소 iOS 지원 버전과 라이브러리 지원 버전이 맞지 않아서 발생하는 이슈 [해결 방법] 1. Build Settings >> iOS Deployment Target 버전을 명시된 버전으로 업데이트 실시 (ex: iOS 11.0)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : Only run on the main thread error for app - UI 스레드 동작 에러 [에러 원인] 1. 일반 스레드에서 UI 관련 로직 처리를 수행할 때 발생하는 이슈 [해결 방법] 1. DispatchQueue.main.async 를 사용해 해당 UI 로직 처리 수행 실시 DispatchQueue.main.async { // [UI 로직 처리 수행 실시] }
[환경 설정 및 설명] 프로그램 : AndroidStudio / Xcode 설 명 : http 요청 시 캐싱 (cache) 된 응답 값이 내려오는 이슈 - okhttp , URLSession [에러 원인] 1. http 요청 시 요청 헤더 값에 Cache-Control 이 캐싱으로 설정되어 있어서 발생하는 이슈 [해결 방법] 1. http 요청 헤더 값에 Cache-Control no-cache 설정 실시 [안드로이드] // [OK HTTP 객체 선언 실시] //OkHttpClient client = new OkHttpClient(); OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) ..
[투케이2K - 공지 사항] - 투케이2K의 개발블로그입니다. - 2022.09.07 기준 게시물 2500 개 작성을 완료했습니다. - 아직 부족한 부분이 많지만, 들어오신 분들이 더 많은 자료를 확인할 수 있게 노력하겠습니다. - 개발 관련 궁금한 사항은 쪽지든, 메일이든, 댓글이든 어디든 남겨주시면 최대한 성실히 답변을 보내드리겠습니다. - 마부작침 (磨斧作針) : 도끼를 갈아서 바늘을 만든다 : 아무리 어렵더라도 포기하지 않고 노력하면 언젠가는 반드시 목적하는 바를 이룰 수 있다
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 화면 잠금 상태에서 푸시 알림 배너 (push banner) 표시 되지 않는 이슈 발생 [에러 원인] 1. UIApplication applicationIconBadgeNumber 사용해 앱 아이콘 뱃지 0 초기화 로직에서 푸시 알림 배너가 사라지는 이슈 확인 [해결 방법] 1. 애플리케이션 포그라운드 상태에서는 푸시 알림 뱃지를 초기화 시키지 않고 >> 백그라운드 전환 시 만 푸시 알림 뱃지 0 으로 초기화 수행 (applicationDidEnterBackground) // [applicationDidEnterBackground 부분 >> 푸시 알림 뱃지 0 으로 변경] [UIApplication sharedApplication]...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZhcL2/btrLvJ58vVA/EC4GvXwvGwpBQPHOQEqk5K/img.png)
[설 명] 프로그램 : Android / Ios 설 명 : 파이어베이스 푸시 토큰 (firebase push token) 유효성 검증 방법 - http tester [참고 사이트] https://kkh0977.tistory.com/1027?category=990095 176. (AndroidStudio/android/java) Talend API Tester (http 통신 테스터) 사용해 파이어베이스 푸시 (push) 알림 [ 개발 환경 설정 ] 개발 툴 : AndroidStudio 개발 언어 : java [사전 작업 사항] [소스 코드] [POST 요청 주소] https://fcm.googleapis.com/fcm/send [Authorization 헤더 값 추가 및 서버..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eIkoew/btrLnsrpQS0/Mf9KxG4EAyVAvz0gF72oTK/img.png)
[환경 설정 및 설명] 언 어 : Java 설 명 : 신규 아이디 추천 - regExp 정규식 , 삼항식 , substring , charAt [소스 코드] // TODO [solution 메소드 정의 실시] public String solution(String new_id) { /** * //------------------------------- * [신규 아이디 추천] * //------------------------------- * 1. 설명 : 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다 * //------------------------------- * 2. 규..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/plI0g/btrLh9rPFNL/AWd0EXojVrVBspqnChPxI0/img.png)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 빌드 에러 - library not found for -lPods-AFNetworking 라이브러리 참조 에러 [에러 원인] 1. 코코아팟에 포함 된 라이브러리 빌드 시 찾을 수 없음 에러 발생 이슈 [해결 방법] 1. 코코아팟 정상적으로 설치 되었는지 확인 실시 2. 터미널 실행 >> 프로젝트 경로 이동 >> 코코아팟 다시 install 설치 수행 실시 3. 코코아팟이 포함된 프로젝트 (xcworkspace) 파일 열기 >> 빌드 셋팅 >> Build Active Architecture Only 를 Yes 로 수정 실시
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bnM2DQ/btrLjiVYU34/s2Okow8abRzWgsMLw3xbP1/img.png)
[환경 설정 및 설명] 프로그램 : Xcode 설 명 : 빌드 에러 - 코코아팟 빌드 에러 iOS deployment target versions is 9.0 to 15.5.99 [에러 원인] 1. 코코아팟 Podfile 팟 파일에 설정 된 iOS 타켓 버전이 지원 버전과 맞지 않아서 발생하는 이슈 The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.5.99. [해결 방법] 1. 코코아팟 Podfile 수정 실시 (iOS 9.0 지원) # Uncomment this line to define ..
[로직 정리] 정리 로직 : 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. 권한이 모두 정상적으로 부여 된 경우 >> 블루투..