본문 바로가기

분류 전체보기56

[iOS] 비전공자 이대생의 야곰 아카데미 수료 후기(비전공자 iOS개발자 되기, 새싹, 포스텍 애플 디벨로퍼 아카데미) 오늘은 조금 색다른 포스팅을 해보려고 한다. 야곰 아카데미 수료에 관한 포스팅이다. 나는 야곰 아카데미 커리어 스타터 과정을 수료했고, 그 과정에서 많은 성장을 하였기때문에 이런 포스팅을 작성하게 됐다. 야곰 아카데미란 야곰 아카데미란 iOS 개발자로서 첫 도약을 할 수 있는 부트캠프이다. https://www.yagom-academy.kr/ 야곰 아카데미 - 이유있는 코드가 시작되는 곳 이유있는 코드가 시작되는 곳, 야곰 아카데미입니다. 개발자 커리어를 시작하기 위한 부트캠프를 운영하고 있습니다. www.yagom-academy.kr 자세한 것은 이 링크를 참고해보면 좋다. 코드 스타터와 커리어 스타터 두 가지 과정으로 나뉜다. 코드 스타터는 5주, 커리어 스타터는 6개월의 과정이다. 나는 두 가지 과.. 2023. 6. 19.
[TIL] 20230515: CoreData/SQLite/Realm 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. CoreData/SQLite/Realm CoreData iOS 플랫폼 단에서 지원하는 관계형 데이터베이스 라이브러리 object형식으로 저장하고 관리할 때 사용하기 좋음 SQLite보다 많은 메모리를 사용하고, 더 많은 저장공간이 필요하며, 더 빠르게 저장된 기록을 가져옴 thread-safe하지 않음 @FetchRequest라는 프로퍼티 랩퍼를 사용해 편리하게 쓸 수 있음 위젯 등을 개발할 때 데이터 연동이 편리함 SQLite 전세계적으로 많이 사용되는 오픈소스 기반 데이터 베이스 엔진 서버가 필요 없는 SQL 데이터 베이스 엔진을 구현 MacOS, iOS, Android, Linux, Window에서 접근 가능 매우 작고.. 2023. 5. 17.
[TIL] 20230508: Mirror 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Mirror 모든 유형의 인스턴스에 대한 하위 구조 및 표시 스타일의 표현 iOS 8.0+ iPadOS 8.0+ macOS 10.10+ Mac Catalyst 13.0+ tvOS 9.0+ watchOS 2.0+ Declaration struct Mirror Overview mirror는 인스턴스의 저장 프로퍼티, 컬렉션이나 튜플 요소들 혹은 active enumeration case와 같은 특정 인스턴스를 구성하는 부분을 설명한다. Mirror는 또한 이 mirror가 렌더링 될 수 있는 방법을 제안하는 “display style” 프로퍼티를 제공한다. Playgrounds와 debugger는 Mirror 타입을 사용하여 모.. 2023. 5. 9.
[TIL] 20230509: Core Location, Getting the current location of a device 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Core Location 디바이스의 지리적 위치와 방향을 얻는다. iOS 2.0+ iPadOS 2.0+ macOS 10.6+ Mac Catalyst 13.0+ tvOS 9.0+ watchOS 2.0+ Overview Core Location은 디바이스의 지리적 위치, 고도, 방향 또는 근처의 iBeacon 디바이스와 관련된 위치를 결정하는 서비스를 제공한다. 이 프레임워크는 Wi-Fi, GPS, Bluetooth, 자력계, 기압계, 그리고 셀룰러 하드웨어를 포함한 디바이스의 모든 가능한 요소들을 사용하여 데이터를 수집한다. CLLocationManager 클래스의 인스턴스를 사용하여 Core Location 서비스를 구성, .. 2023. 5. 9.
[토요스터디A반] 20230408: KeyChain 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 실험 1: 각 View 역할 이해 및 UserDefault를 활용한 Password의 저장 import UIKit class LogInViewController: UIViewController { @IBOutlet weak var pwTextField: UITextField! var diaryViewController: DiaryViewController? override func viewDidLoad() { super.viewDidLoad() diaryViewController = self.storyboard?.instantiateViewController(withIdentifier: "diary") as? DiaryVie.. 2023. 4. 14.
[TIL] 20230411: URL Loading System 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. URL Loading System Overview URL Loading System은 https와 같은 스탠다드 프로토콜 혹은 사용자가 만드는 커스텀 프로토콜을 사용하여 URL로 식별되는 리소스에 대한 접근을 제공한다. 로딩은 비동기적으로 수행되기 때문에, 앱이 응답성을 유지하고 데이터나 에러가 도착할 때 처리할 수 있다. 하나 혹은 그 이상의 URLSessionTask 인스턴스를 만들기 위해 URLSession 인스턴스를 사용하는데, 이 URLSessionTask는 데이터를 가져와서 앱으로 반환하고, 파일들을 다운로드하고, 혹은 데이터와 파일들을 원격 장소로 업로드할 수 있다. 세션을 구성하기 위해서는, 어떻게 캐시와 쿠키.. 2023. 4. 14.
[TIL] 20230404: URLSession 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. URLSession URLSession 클래스와 관련된 클래스는 URL로 표시된 데이터를 다운로드하고 업로드하기 위한 API를 제공한다. 앱이 실행되고 있지 않을 때, 혹은 iOS에서 앱이 일시 중단 되었을 때에도 역시 백그라운드 다운로드를 수행하기 위해 이 API를 사용할 수 있다. URLSessionDelegate와 URLSessionTaskDelegate를 이용해 인증을 지원하고 리디렉션 및 작업 완료와 같은 이벤트를 수신할 수 있다. 앱은 하나 혹은 그 이상의 URLSession 인스턴스를 생성하며, 각각의 인스턴스는 관련된 데이터 전송 작업 그룹을 조정한다. 예를 들어서, 만약 웹 브라우저를 만든다면, 앱은 탭이나 .. 2023. 4. 5.
[TIL] 20230330: Escaping closure/Defer 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Escaping closure/Defer 둘의 차이를 잘 모르겠어서 조금 공부해봤다. 알아보니 완전 다른 것인..ㅎㅎ^^ escaping closure는 언제 실행될지 확신이 없는 것이고, defer는 함수 종료를 하면서 문 닫고 나가면서 실행하는 것이다. escaping closure는 언제 실행될지 모르지만 언젠가 불린다는 것이다. escaping closure 어떤 클로저가 메서드의 인자로 전달 되지만, 메서드가 반환된 후에 불릴 때 이것을 메서드를 escape한다고 말한다. 매개변수로 클로저를 취하는 메서드를 정의할 때, 그 클로저가 escape하게 만들기 위해서 @escaping을 매개변수의 앞에 쓴다. 클로저가 e.. 2023. 4. 4.
[TIL] 20230327: class/struct, 네트워크 통신 없이 Test하는 이유 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. class/struct 클래스와 구조체를 구별해서 구현하는 것은 아직까진 영원한 숙제일 것 같다. 박스오피스 프로젝트를 하면서 NetworkManager라는 타입을 구조체로 구현하였다. 이 구조체는 URLSession을 사용하여 URL이 주어졌을 때, 그에 해당하는 data를 가져오는 역할을 하는 구조체이다. 이에 대해 지성께서 struct로 구현한 이유가 있냐고 물었고 나는 다음과 같이 답했다. class는 다음과 같을 때 사용합니다: 1. 복사보다는 참조가 필요할 때 2. 상속해주거나 상속받을 일이 필요할 때 3. mutable한 값들을 가질 때 4. object-C와 상호 운용성을 가질 때 저희는 NetworkManag.. 2023. 3. 28.