Tech(24)
-
[Unity]코루틴(Coroutine)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 유니티에서 빼놓을 수 없는 요소중 하나는 코 루틴을 이용한 비동기 처리입니다. 사실 진정한 의미의 비동기 처리는 아니지만, 그렇게 작동하는 것처럼 보입니다. 이번 글에서는 이러한 코 루틴에 관하여 간단히 알아보려 합니다. 코루틴(Coroutine) 여러 개의 입구를 허용하여 실행 재개가 가능한 것 yield return으로 멈춘 시점에서 다시 시작 이전 상태를 기억하고 있다가 재호 출시 해당 위치에서 시작 유니티에서 협력형 멀티태스킹을 구현하는 용도로 사용(시분할) CPU를 나눠 쓰는 방식 리소스를 사용하는 도중에 강제로 CPU를 뺏거나 하지 않아 임계 영역을 보호하기 위한 락이나 세마포어등 동기화 불필요 특정 작업을 단계적으로 발생하게 함 ..
2022.04.12 -
[Unity]Unity Monobehaviour 생명주기(life cycle)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 Unity를 다뤄본 사람이라면, 스크립트를 작성할 때 Awake() 함수나 Update() 함수 등을 본 적이 있을 것입니다. 이러한 함수들은 호출하지 않아도 자동으로 호출되는 함수들이며, 이들의 호출되는 순서를 생명주기(Lifecycle)이라고 합니다. Unity 코드 작업을 할 때 많은 부분이 Monobehaviour와 연관이 깊습니다. 엔진 쪽의 코어 기능이나, 심지어 렌더링 쪽도 연관이 깊기에 생명주기를 알지 못한다면 곤란하지 않을까 싶습니다. 오늘은 어찌 보면, Unity 코딩의 기본인 Monobehaviour의 생명주기에 관해 다뤄보려 합니다. Unity Monobehaviour life cycle 아래는 플로우를 그림으로 표현한 ..
2022.04.12 -
[Mobile]Deeplink
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 웹페이지에서 특정 링크나 버튼을 눌렀을 때 앱이 실행된 걸 본 적이 있나요? 게임 같은걸 하다가 다른 앱을 실행한 적은? 모바일에서 이와같은걸 가능하게 해 주는 것이 바로 Deeplink입니다. 이번 글에서는 이러한 Deeplink에 관해 적어보려 합니다. Deeplink 일반적으로 Deeplink란, 특정위치까지 도달하기 위해 파고드는(Deep) 링크(Link)를 말합니다. 모바일에서는 앱을 실행시키기 위한 Link를 뜻합니다. URL과 같은 Link이기 때문에 앱을 실행시키기 위한 주소는 물론, 앱을 실행하면서 query를 이용하여 특정 정보를 함께 전달할 수 있습니다. 이로 인해, 앱을 실행하고 특정 씬이나 페이지에 도달하거나 팝업을 별..
2022.04.11 -
[iOS]iOS 의존성(Dependency ), cocoapods (코코아팟)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 해당 포스팅은 cocoapods의 사용법에 관한 포스팅이 아닌, 개념에 관한 내용이며, 사용법은 추후 포스팅할 예정입니다. cocoapods iOS 개발을 하는 사람들, 조금이라도 iOS 개발에 관련되는 사람들이라면 필수적인 녀석이 있습니다. 바로 cocoapods이라는 의존성 관리 매니저입니다. cocoapods 공식 홈페이지에 소개된 내용(2020년 12월 기준) CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 79 thousand libraries and is used in over 3 million apps. CocoaPods ..
2022.04.11 -
[iOS]iOS 앱 간 데이터 공유 키체인 쉐어링(Keychain sharing)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 이전에 [Android] Android 앱 간 데이터 공유(ContentProvider와 ContentResolver)에 관해서 글을 쓴 적이 있습니다. 그럼 iOS에서는 어떻게 앱 간 데이터 공유를 할까요? 당연히, iOS 앱들끼리도 데이터를 공유할 일이 있습니다. 이 글에서도 코딩보다는 간단한 개념을 주로 다루려 합니다. 키체인(Keychain) 키체인(Keychain) 이라는 것은 iOS 장치상에서 암호화 정보를 저장하기 위해 제공되는 Framework입니다. 일반적인 로컬 데이터는 앱이 삭제되면 같이 삭제되지만, 이 Keychain에 저장된 정보는 앱의 삭제와 상관없이 저장이 됩니다. 유지가 된다는 말이죠. 여러 정보들이 저장되는 키체..
2022.04.11 -
[Android]가비지 컬렉터(Garbage collector)
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다. 서론 C/C++을 주로 쓰던 시절, 메모리 관리를 수동으로 해주어야 했습니다. 할당을 해주면, 사용이 끝난 후 적절한 시점에 해제를 해주어야 했죠. Native 언어다 보니 개발자가 관여하는 부분이 많았습니다. 이에 반해, C# 같은 Managed 언어를 사용하면서 메모리 관리 방식이 바뀌게 되었습니다. 정확히는 신경 쓰는 방식이 바뀌었다는 게 맞겠네요. C#, Java 같은 Managed 언어는 메모리를 자동으로 관리해 줍니다. 바로 가비지 컬렉터를 통해서 말이죠. 본래 저는 Unity를 주력으로 사용하여 C#이 메인 언어이지만, C#의 가비지 컬렉터에 관해서 글을 쓰기 전에 Java/Android의 가비지 컬렉터에 대해 먼저 살펴보려 합니다. ..
2022.04.11