공부방/알아두면 좋은 지식2019. 7. 12. 16:40JIT Compiler, AOT Compiler

1. JIT Compiler 는 Just-In-Time 의 약자로 런타임시 바이트 코드를 기계어로 번역한다는 의미로 해석을 할수 있다. JIT Comiler 는 JRE(Java RunTime Environment) 안에 속해 있으며, 실행할때마다 매번 기계어로 번역하는것이 아니라, 처음 코드를 실행시에는 기계어로 번역하여 캐시에 저장해두고, 두번째 실행부터는 캐시에서 불러와 사용하므로, 반복되는 코드는 실행속도가 빠르다. 반대로의 경우는 오히려 성능이 떨어질수 있다. 2. AOT Compiler JIT이 동적 컴파일러 라면 AOT(ahead-of-time)는 정적 컴파일러 이다. JIT이 런타임에서 실행될때 추가 메모리및 CPU 싸이클이 필요하기때문에 이를 보완하는게 AOT 이다. 실행시간 전에 컴파일을..

공부방/알아두면 좋은 지식2019. 7. 12. 15:52String vs StringBuffer vs StringBuilder

String, , Stringbuffer , Stringbuilder 의 성능 차이에 대해서 알아보자 1. String 먼저 String 같은 경우는 immutable 하다. 이는 변하지 않는다는 뜻인데, 예를 들어 우리가 + 연산자를 이용해서 문자열을 더할때 String str1 = "Hello" ; String str2 = "World"; str 1 = str1 + str2; 를 할경우 실질적으로 str1 의 값이 str1 + str2 로 합쳐진 값이 바로 저장되는 것이 아니라. new String(str1 + str2 ) 의 형태로 새롭게 인스턴스가 생성되어 저장된다. 따라서 반복문 안에서 String의 값을 변경할때 위처럼 사용하면, 성능이 떨어지게 된다. 2. Stringbuffer, Strin..

Using iOS crashlytics method (crashlytics 함수 사용법)
공부방/iOS2019. 7. 12. 15:07Using iOS crashlytics method (crashlytics 함수 사용법)

Crashlytics custom error 를 만들어 보겠습니다. 먼저 같이 사용하면 좋은 유용한 Crashlytics Method를 정리해 보겠습니다. 1. User Info Crashlytics.sharedInstance().setUserIdentifier("123456789") Crashlytics.sharedInstance().setUserEmail("person@domain.com") Crashlytics.sharedInstance().setUserName("Awesome AppUser") User Info 를 설정하는 Method 입니다. 위 처럼 설정하면 에러 이벤트 발생시 User Info 가 포함되어 보여집니다. Crashlytics 에 그림 1과 같이 User의 정보가 노출 됩니다. ..

iOS fabric crashlytics install (Step2)
공부방/iOS2019. 7. 11. 14:28iOS fabric crashlytics install (Step2)

이어서 fabric crashlytics install 과정을 시작하겠습니다. 일단 상단 메뉴에서 XCode -> Preferences 를 열어 줍니다. 다음으로 그림 1 처럼 Locations를 선택하고 Advanced 버튼을 클릭 해 줍니다. 그림 2 처럼 Custom 을 설정한후 Done 을 클릭후 설정창을 빠져 나옵니다. Xcode의 프로젝트 Navigator에서 프로젝트를 선택하고 그림 1처럼 보기 설정을 All, Combined 를 선택해 준후 Debug Information Format 를 검색하여 DWARF with dSYM File 로 설정을 변경해 준후 빌드를 해줍니다. 그럼 그림 2에 설정해보이는 Products 경로에 폴더가 생기는데 (-> 버튼을 눌러주면 Finder 가 열립니다 ..

iOS fabric crashlytics install (Step1)
공부방/iOS2019. 7. 10. 21:36iOS fabric crashlytics install (Step1)

2019년 7 월 10일 기준으로 작성 되었습니다. 기본적으로 Fabric에 회원가입은 완료가 되어 있다고 가정하고, 진행 하겠습니다. 회원가입을 진행하고, 로그인을 하면 플랫폼을 선택하는 화면이 나올건데, iOS를 선택 합니다. 그럼 Fabric-latest.zip 파일을 다운 받을수 있는데, 압축을 해제하고, 프로그램을 설치 해 줍니다. 그림 1 과 같은 화면이 나오면 왼쪽(코코아 팟 )이미지를 선택해 줍니다. 그림 2 처럼 Podfile 에 pod 'Fabric' pod 'Crashlytics' 를 추가해주고, 터미널에서 프로젝트 폴더로 이동하여 pod install 을 실행해 줍니다. 그림 3 에 2. Command를 Copy를 눌러 클립보드에 복사해 둡니다. Xcode로 돌아가서 프로젝트 네비케..

iOS local notification divide (iOS Local Notification 분리)
공부방/iOS2019. 7. 9. 20:46iOS local notification divide (iOS Local Notification 분리)

iOS local Notification 알림을 받으면, 알림을 받을때마다 한개씩 덮어씌어져 보이는 경우가 있고, 낱개로 분리되어 나타나는 경우가 있는데 이는 let request = UNNotificationRequest(identifier: "test", content: nContent, trigger: trigger) identifier 부분 차이 입니다. 이부분이 값이 동일하면 계속해서 한개의 푸쉬에 덮어 씌어져 보여지게 되고, 값이 다르면 나뉘어져 보이게 되는데 이부분은 푸쉬가 올때마다 기능에 맞게 다른 값으로 넣어주어 설정하게 되면 푸쉬가 분리 되어 보이게 됩니다. 예를 들어 Badge Number를 가지고 값을 바꾼다 하면 소스 코드는 아래와 같습니다. Swift Code let pushMe..

공부방/iOS2019. 7. 3. 21:00Tip of Firebase cloud Message payload

Android 와 iOS 는 Notification의 payload(Push 전송 데이터)에 따라 어떤식으로 동작하는지 간단하게 적어 보았습니다. 1. iOS와 Android 에서 기본 형식으로 Notification 을 노출 시키기 위해서는 { "notification": { "title": "테스트입니다.", "body": "메시지 테스트 내용" } } 형식으로 구성을 하면 됩니다. 하지만 이방식으로 Message를 보내면 Notification을 제대로 활용 하기 힘듭니다. 우리가 일반적으로 Push 기능을 사용하는것은 사용자에게 단순하게 Message를 전달하는 목적 뿐만 아니라, 사용자의 편의성을 위해 기능을 담기 때문입니다. 따라서 사용자가 Notification을 활용할 수 있게 하기 위해서..

공부방/iOS2019. 7. 2. 13:45iOS Notification Function 기능 정리

UNUserNotificationCenterDelegate //Foreground Notification 처리 func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { completionHandler([.alert,.sound, .badge]) // completionHandler 호출을 해주어야 Notification 노출 } //Background Notification 처리 func userNot..

공부방/iOS2019. 6. 28. 15:06wkwebview native function call from javascript(WKWebView Javascript에서 iOS 함수 호출)

swift Code 자신의 ViewController에 기본 Webview Setting은 자신에게 맞게 하고 녹색 부분을 추가해 주면 된다 override func viewDidLoad() { super.viewDidLoad() initView() wkWebView.load(YOUR UrlRequest) } func initView() { wkWebView = WKWebView(frame: contentView.frame, configuration: getWebViewConfiguration()) wkWebView.uiDelegate = self wkWebView.navigationDelegate = self } func getWebViewConfiguration() -> WKWebViewConfigu..

iOS Firebase Push Notification Setting
공부방/iOS2019. 6. 13. 14:12iOS Firebase Push Notification Setting

기본 셋팅은 잘 정리된 아래의 사이트를 참고 하고 https://medium.com/@NovaWoo/ios-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EB%B0%8F-%ED%94%84%EB%A1%9C%EB%B9%84%EC%A0%80%EB%8B%9D-%ED%94%84%EB%A1%9C%ED%8C%8C%EC%9D%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0-97355848b823 iOS 인증서 및 프로비저닝 프로파일 만들기 iOS 앱을 개발하고 배포할때, 인앱결제를 할때 인증서와 프로비저닝 프로파일이 필요합니다. 이 글에서는 앱ID 를 등록하고, 인증서를 만들고, 이 인증서를 통해 프로파일을 만들어봅니다. medium.com 위의 과정을 마치고나서 FireBase Cloud Message ..

image