일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Failed to register bundle identifier
- 독후감
- View Life Cycle
- 스위프트
- contentInset
- human interface guidelines
- IOS
- @available
- roundingMode
- delegation
- SWIFTUI
- Codegen
- 독서후기
- xcode
- 야곰아카데미
- NumberFormatter
- NotificationCenter
- 책후기
- 스타트업주니어로살아남기
- SWIFT
- Structures and Classes
- UIResponder
- mvvm
- viewcontroller
- 아이폰
- Navigation
- Info.plist
- Mock
- 부트캠프
- Modality
- Today
- Total
목록분류 전체보기 (144)
호댕의 iOS 개발

최근 10월 초부터 시작하여 4월 1일에 6개월 동안의 야곰 캠프가 마무리되었다. 진짜 시작할 때에는 6개월 동안 잘할 수 있을까 걱정과 고민이었는데 시간이 정말 후딱 지나간 것 같다. 그래서 캠프를 마무리한 시점에서 6개월 동안의 생활을 회고해보고자 한다. 🏃🏻 캠프의 시작 (나에 대해서) ⚠️ 캠프에 대해 궁금하시다면 넘어가셔도 좋습니다! (TMI가 많습니다) 일단 나는 비전공자로 이과도 아니었다. 부동산학과를 졸업하며 정말 주변에 개발을 하고 있는 사람, 공부하는 사람이 1도 없었다. 그렇게 21년 2월에 졸업을 하고 취업 준비를 하다가 우연히 다른 부트캠프에서 운영 매니저를 하며 인사(HR) 관련 업무를 담당하게 되었다. 자연스럽게 부트캠프에서 근무를 하게 되며 비전공자인데도 개발을 공부하는 사람..

Swift Programming LauguageGuide를 보고 작성한 글입니다. Extensions — The Swift Programming Language (Swift 5.7) Extensions Extensions add new functionality to an existing class, structure, enumeration, or protocol type. This includes the ability to extend types for which you don’t have access to the original source code (known as retroactive modeling). Extensions docs.swift.org 📖 Extension은 뭘까? Extension은..

3장에서는 타입과 추상화의 개념에 대해 중점적으로 설명을 하고 있다. 💭 추상화 추상화의 경우 지하철 노선도의 예를 들어 설명하고 있다. 사실 지하철 노선도의 경우 실제 지형적 특징이나 거리를 반영하지 않고 단순히 다음 역이 어떤 역이고 특정 역까지 가려면 몇 정거장이 남아있는지를 보여준다. 지하철 노선도가 필요한 경우는 지형적 특징이 궁금할 때가 아니라 지하철을 타고 얼마나 이동해야할 지 확인해야 할 때이기 때문이다. 따라서 불필요한 지형적 특징은 제거하고 단순화하는 것이다. 이는 추상화에서 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거하고 단순화한 것이다. 이외에도 추상화는 사물 간 공통점을 취하고 차이점은 버리는 방식으로 이뤄질 수도 있다. 그럼 추상화는 어떻게 정의해볼 수 있을까? 일단 ..

2장에서는 객체 지향 패러다임과 객체에 대해 조금 더 자세히 이야기를 한다. 이 책의 표지에서도 토끼가 그려져 있고 책의 대부분의 예시에서도 이상한 나라의 앨리스를 예를 들고 있다. 이는 이상한 나라의 앨리스가 객체 지향 프로그래밍이 가지고 있는 오해를 가장 잘 해소시켜줄 수 있는 예시이기 때문이라고 생각한다. 이전 1장에서도 언급되었지만 이 책에선 객체 지향이 단순히 현실을 모방한 것이 아니라고 하고 있다. 각각의 객체들은 상태를 가지고 있고 이런 상태를 변경할 수 있는 행동을 통해 각각의 상태를 자율적으로 관리하게 된다. 만약 음식을 먹는다고 했을 때 음식을 먹는 사람 객체가 있고 음식 객체가 있다고 생각해보자. 실제 세계에선 음식을 먹는 사람이 있고 음식은 단순히 사람에 의해 먹히며 줄어들 뿐이지만..

보통 개발을 하면서 객체(Object)라는 말을 자주 듣게 된다. 실제 내가 사용하고 있는 Swift도 객체지향 프로그래밍 언어이기도 하고 말이다. 하지만 스스로 “그럼 객체가 정확히 뭔데?”라고 물었을 때 이를 명확히 정의하긴 어렵다고 생각했다. 물론 사전적으로 정확히 “객체는 ~다” 라고 정의하긴 어렵겠지만 스스로 객체가 뭔지 정의는 할 수 있어야 하기 때문에 다시 【객체지향의 사실과 오해】를 다시 읽게 되었다. 객체지향의 사실과 오해 - YES24 『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 www.yes24.com 오늘부터 1장씩 읽으면서 객체, 추상화 등 어렴풋이..

CoreData의 공식 문서를 살펴보면 CoreData에 대해 이렇게 정의를 하고 있다. Persist or cache data on a single device, or sync data to multiple devices with CloudKit. Data를 단일 기기에 저장하거나 데이터를 캐시하거나, CloudKit을 사용하여 다양한 기기에서 동기화를 할 때 사용되는 프레임워크이다. 즉, 단순히 local 데이터를 저장하는 데이터베이스 역할을 하는 것이 아니라 저장, 캐시, 동기화 등의 기능을 제공하는 프레임워크인 것이다. 이외에도 Undo / Redo Manager를 통해 변화를 감지하여 쉽게 Undo와 Redo를 구현할 수 있도록 하기도 한다. 물론 Local에 저장을 할 때 즉, 온라인 / 오프..

🤔 문제상황 1️⃣ Info.plist Info.plist를 따로 폴더를 두려고 관리하기 위해 폴더 내부에 해당 파일을 넣어놨으나, Failed to register bundle identifier 컴파일 에러가 발생하는 문제가 있었다. 다른 부분은 변한 것이 없었고, 단순히 파일의 위치를 변경하기만 했기 때문에 이 때문에 발생한 에러라고 판단했다. 2️⃣ GoogleService-Info Firebase를 사용하면서 추가해야 하는 파일인데 이 또한 위치를 변경하려다 보니 문제가 발생했다. `FirebaseApp.configure()` could not find a valid GoogleService-Info.plist in your project. 🤓 해결 방법 1️⃣ Info.plist Targets..

🔔 야곰아카데미 토요 스터디에서 진행한 내용입니다. 최근 앱을 사용하다보면 Google / Naver / Kakao / Facebook을 통한 소셜 로그인 기능을 자주 볼 수 있다. 이런 소셜 로그인이 어떻게 구현되는지 간단하게 살펴보고 직접 카카오를 통한 소셜 로그인 기능을 구현해보자. 일단 직접 구현하는 방법을 살펴보기 전에 OAuth가 어떤 기능인지 살펴보자. 🪢 OAuth 📚 정의 사용자(개발자 및 회사)들이 제 3사의 서비스를 사용하기 위해 사용하는 개념으로 위임 / 인가 / 허가 프로토콜이다. 이는 단순한 인증 프로토콜이 아니기 때문에 단순히 `소셜 로그인 = OAuth`라고 보기에는 무리가 있다. 다만 누군가에게 허가 / 위임 / 인가를 하기 위해선 본인을 증명해야 다른 사람에게 본인의 권한..