본문 바로가기

iOS/iOS21

CGRect, CGPoint, CGSize CGRect, CGPoint, CGSize는 iOS를 개발할 때 스토리보드를 사용하지 않고 코드로 View를 구현하다보면 자주 접할 수 있는 객체들입니다. 사용하다보니 무슨역할을 하는지는 감으로 알겠고, CGPoint랑 CGSize는 이름만으로도 무슨 객체인지 알 수 있겠는데 CGRect는 말로 설명하라그러면 딱 정의하기가 힘들더라구요?? 그래서 간단하게라도 CGRect가 무슨 객체인지 알아봤는데 정말정말 간단한 객체였습니다ㅋㅋ 그래도 머리로 아는 것과 말로 설명하는 건 또 다르니까 블로깅해볼게요! CGPoint와 CGSize 이름 그대로 CGPoint는 2차원 좌표계의 점을 나타내는 구조체이고, CGSize는 너비와 높이를 나타내는 구조체입니다. 사실 정말 이거 그대로예요. CGPoint는 좌표의 x값.. 2021. 4. 16.
UIResponder 모든 ViewController의 상위클래스는 UIViewController! UIViewController의 핵심적인 상위 클래스는 UIResponder! 네 그래서 이번엔 UIResponder를 공부해보려구요❗️ 먼저 UIViewController가 뭐냐 간단히 말하면, 앱에서 View 계층을 관리하는 객체입니다. ViewController의 주요 역할을 살펴보면 아래와 같습니다. 데이터의 변경에 대한 응답으로 View의 콘텐츠를 업데이트합니다. View들을 통해 유저와 상호작용합니다. View의 사이즈를 정의하고 전체적인 인터페이스 레이아웃을 관리합니다. 앱의 다른 ViewController 같은 다른 뷰 객체들과 상호작용합니다. 이런 UIViewController는 UIResponder 객체로써 .. 2021. 4. 16.
첫 테스트코드를 작성해보다. 제가 처음 테스트코드를 작성해보고 난 후의 개인적인 생각을 정리해보고 싶어서 이렇게 글을 쓰게 되었습니다. 아래 테스트코드의 장점이나 TDD에 대한 내용은 다른 블로그의 내용을 좀 더 참고해서 적었습니다! 이전에 TDD에 대해 알게 된 이후 언젠가는 TDD를 꼭 적용해보고 싶다는 생각이 있었습니다. TDD까지는 아니더라도 최소한 테스트코드는 한 번 작성해봐야지 생각했었어요. 하지만 시간에 쫓긴다는 핑계와 이것 말고도 할 게 많다는 핑계로 계속 미루고 미루고 있었습니다. 저는 최근 스타트업과 iOS 프로젝트 하나를 계약해서 하고있는 중인데, 지금 기획만 어느정도 되어 있는 상태고 디자인과 서버 개발은 아직 들어가지 않은 상태입니다. 서비스를 본격적으로 개발하기 전에 디자인과 서버 개발이 이루어져야 하는 현.. 2021. 4. 14.
키체인 (Key Chain) 아이폰 유저라면 한 번쯤은 키체인 로그인을 사용해봤을 것 같습니다. 저는 이번 동아리 프로젝트에서, 그리고 스타트업과 계약해서 진행하고 있는 다른 프로젝트에서 자동로그인 기능을 구현해야하는 상황이 생겼는데요! 사실 자동로그인이라길래 처음에는 로그인 후 받은 token을 저장하거나, 아이디와 비밀번호를 UserDefaults로 저장해서 사용하면 되는건가? 하고 생각했는데, 그렇게 하면 거의 뭐 보안이 💩..ㅋㅋㅋ UserDefaults는 데이터를 있는 그대로 저장하기 때문에 개인정보를 UserDefaults로 저장하게 되면 정말 보안이 취약해집니다!!! 그렇다고 개인정보를 직접 암호화해서 저장하기에는 많이 복잡해지죠ㅠㅠ 그래서 키체인을 사용하려합니다 키체인은 암호화된 데이터베이스로써, 사용자의 Mac, 앱.. 2021. 4. 13.
GCD (Grand Central Dispatch) iOS의 중요한 개념 중 하나인 GCD!! GCD가 뭘까요? GCD는 Grand Central Dispatch 의 줄임말입니다. GCD에 대해 자세하게 알아보기 전에 왜 GCD가 나오게 됐는지, 그 배경부터 살펴보겠습니다. 멀티 코어 프로세서에서는 프로그램의 동작을 멀티 프로세서에게 어떻게 잘 배분하는지가 중요합니다. GCD 이전에는 멀티 스레딩을 위해 Thread와 OperationQueue 등의 클래스를 사용했다고 하는데요, Thread는 복잡할 뿐만 아니라 임계 구역 (Critical Section) 등을 이용한 Lock을 관리하기 까다로웠습니다. 그리고 OperationQueue는 GCD에 비해 무겁고 Boilerplate Code들이 많이 필요한 문제가 있었죠. 그래서 Apple은 GCD를 내놓.. 2021. 3. 23.
XCTest tips and tricks that can level up your Swift testing iOS에서의 Unit Test를 위해 XCTest에 대해 알아보던 중 XCtest tips and tricks that can level up your Swift testing 이라는 블로그를 보게 되었습니다. XCTest에 대한 내용과 참고 게시물의 내용을 함께 번역 및 정리해보면 좋을 것 같았습니다. 중간중간 제가 이해가지 않는 tip들은 직접 예시코드를 작성해보면서 이해해보려고 노력해봤는데, 아직까지는 좀 더 학습이 필요한 것 같아요 :) 그럼 먼저 XCTest가 무엇인지부터 알아볼까요? What is XCTest? 먼저 애플에서는 XCTest에 대해 이렇게 말하고 있습니다. Create and run unit tests, performance tests, and UI tests for your X.. 2021. 3. 3.
Frame과 Bounds iOS 개발을 하다보면 거의 무조건 접하는 것 중 하나가 바로 frame과 bounds입니다. 저는 사실 frame과 bounds가 어떤 차이가 있는지 잘 모르고 사용했는데, 모르고 사용하니까 너무 답답하더라구요. 네, 그래서 알아봤습니다! 먼저 Frame과 Bounds가 애플에서는 뭐라고 정의되고 있는지 한 번 볼게요. Frame The frame rectangle, which describes the view's location and size in its superview's coordinate system. 👉Frame은 SuperView(상위뷰)의 좌표 시스템 안에서의 View의 위치와 사이즈를 나타냅니다. Bounds The bounds rectangle, which describes the .. 2021. 2. 26.
Data Binding in MVVM on iOS 본 게시물은 Data Binding in MVVM on iOS 라는 Medium 게시물을 기반으로 작성하였습니다. 다소 흥미로웠던 내용이라 제 블로그에 메모 및 정리해놓으면 좋을 것 같아 작성을 하게되었습니다. 영어로 된 본문을 제가 읽히는대로 번역을 해서 의역이 많고, 최대한 적절한 단어선택을 하긴 했으나 그래도 이해가 가지 않거나 잘못된 내용이 있다면 댓글로 알려주세요! 바로 수정하겠습니다 :) > Technique1. Observables > Technique2. Event Bus / Notification Center > Technique3. FRP Technique (RxCocoa / RxSwift) > Technique4. Combine 우리는 새로운 프로젝트를 할수록 View Controll.. 2021. 1. 7.
ARC (Automatic Reference Counting) iOS 개발을 공부하면서 꼭 알아야할 것 중 하나인 ARC (Automatic Reference Counting). 도대체 ARC가 뭘까요? 먼저, 앱의 성능을 유지하기 위해서는 메모리 관리가 필수적입니다. Stack 메모리에 저장된 데이터는 자동으로 제거되기 때문에 특별한 관리가 필요 없지만, Heap 메모리는 개발자가 동적으로 할당하는 메모리 공간이기 때문에 Heap 메모리에 저장된 데이터는 필요하지 않은 시점에 직접 제거해야만 합니다. 따라서 메모리 관리 모델은 Heap에 저장된 데이터를 관리합니다. [ 참고 ] Value Type은 Stack 메모리에, Reference Type은 Heap 메모리에 저장됩니다. Value Type: Structure, Enumeration, Tuple.. Refe.. 2020. 12. 22.