전체 글 7

[NC1] 꽤 고생했던 혼자만의 여정

MC1을 지나 어느덧 2주간의 NC1 여정도 마무리가 되었다. Nano Challenge는 개인 작업으로 진행했고, '나만의 다이어리 앱 만들기'라는 주제를 가지고 이후 챌린지를 위한 기본기를 다지는 2주였다. 달리 말하면 내가 MC1을 하면서 부족하다고 느꼈던 부분들(디자인, 테크 등)을 학습하거나, 내가 새롭게 학습하고 도전해 보고 싶은 것들을 공부하고 적용해 보는 챌린지였다. '나만의 다이어리 앱' 기획하기 어떤 주제를 가지고 기록을 할까 생각을 했을 때, 오랜 시간 고민을 하지 않고 개발 관련해서 학습했던 내용들을 기록해 보기로 했다. 그리고 내가 학습했던 기록들을 Github의 contribution(a.k.a. 잔디)처럼 날짜별로 표시해서 내가 얼마나 꾸준히 학습했는지를 표시해 보기로 했다. ..

[SwiftUI] Observation으로 SwiftUI 데이터 모델을 간소화하자

안녕하세요! 오늘은 WWDC23에서 새롭게 발표된 Swift의 기능인 Observation에 대해 알아볼 거예요. 저는 평소에 WWDC를 챙겨보지 않았고 관심을 가지지 않았지만, 최근 SwiftUI를 공부하면서 새롭게 알게 된 부분이라 조금 더 자세히 알아보고자 늦었지만 제가 이해한 대로 정리해 보기로 했어요! 그리고 이번 글을 시작으로 앞으로는 WWDC에 더 많은 관심을 가지려고 합니다! (지금까지 WWDC에 관심 갖지 않았던 저.. 반성합니다....😓) Observation이란? Swift Framework로, macro 기능을 기반으로 프로퍼티 변경 사항을 추적하기 위한 새로운 Swift 기능이에요. 제가 아직은 macro 개념에 대해서는 자세히 알지 못하지만, 간단히 말해서 @Observable ..

SwiftUI 2024.04.08

[MC1] 아카데미 첫 번째 여정을 마무리하다

3월 11일을 시작으로 3주 동안의 Mini Challenge 1 여정이 마무리가 됐다. 아카데미에 들어와서 첫 팀 활동이었는데, 재밌었던 부분들도 있었고 프로세스가 잘 이해가 되지 않은 부분들도 있어 어려움을 겪었던 때도 있었다. 그래도 첫 번째 챌린지라 그런지 멘토분들께서 큰 부담을 갖지 말라 하셨고, 무사히 잘 마무리된 거 같아 다행이었다. CBL 이해하기 아카데미에서는 CBL이라는 프로세스를 통해서 챌린지를 진행하게 된다. CBL이란 Challenge Based Learning의 약자로, 아카데미에서는 다음과 같이 정의하고 있다. 흥미로 시작해서 도전과제를 세우고, 문제를 해결하기 위해 필요한 것들을 발굴하고 학습하는 활동을 반복하며 성장할 수 있도록 돕는 가이드. 이번에 아카데미에 와서 처음으로..

[Swift] subscript를 사용해서 문자열도 배열처럼 쉽게 접근하자

안녕하세요! 오늘은 subscript 문법을 사용해서 문자열도 배열처럼 쉽게 접근해 볼 거예요. 그전에 배열과 문자열에서 요소 접근 방법이 어떻게 다른지 확인해 볼까요? 배열, 문자열에서는 특정 요소에 어떻게 접근할까? 우리는 배열에서 n번째 위치, 또는 특정 범위에 있는 요소에 접근할 때는 다음과 같이 쉽게 접근할 수 있어요. var array = [1, 2, 3, 4, 5] // 2번째 요소에 접근 print(array[2]) // 3 // 2~4번째 요소에 접근 print(array[2...4]) // [3, 4, 5] 그러면 문자열에서는 어떻게 접근하는지 한번 확인해 볼까요? var string = "12345" // 문자열 내 2번째 요소에 접근 string[string.index(string...

Swift 2024.03.30

[Swift] 옵셔널 타입은 열거형 타입이다

안녕하세요! 오늘은 옵셔널(Optional) 타입에 대해 조금 자세히 알아보는 시간을 가져보도록 할 거예요. 옵셔널 타입에 대해서는 많이들 사용하셔서 다들 알고 계시죠? 옵셔널 타입은 값이 존재하지 않을 수도 있음을 나타내는 키워드예요. 값이 존재하지 않을 때는 nil 키워드로 나타내고 있죠. 그런데! 사실 이 옵셔널 타입이 열거형 타입이라는 것을 알고 계셨나요?? (저도 1년 넘게 모르고 있다가 최근에 문법 공부를 다시 하면서 알게 되었어요 😅) 그렇다면 옵셔널 타입이 어떤 식으로 구현되어 있는지 한번 알아볼까요? 열거형 타입으로 정의된 옵셔널 타입 열거형 타입은 뭐였죠? 특정 케이스(case)들로 묶어둔 타입이에요. 예를 들어 월(Month)은 1월부터 12월까지 총 12달의 케이스로, 방향은 동, ..

Swift 2024.03.20

[Swift] 간단히 알아보는 Copy-on-Write

안녕하세요!오늘은 Swift에서 쓰는 굉장히 유용한 기능, Copy-on-Write에 대해 알아볼 거예요.이를 시작하기 전에, Swift에서의 컬렉션 타입부터 먼저 살펴보도록 하죠.  Swift에서 컬렉션 타입은 값 타입(Value Type)이다. 값 타입(Value Type)은 메모리 Stack 영역에 저장되며, 필요시 메모리의 값이 복사되어 전달되고,참조 타입(Reference Type)은 메모리 Heap 영역에 저장되며, 필요시 메모리 주소가 전달돼요.Swift에서 컬렉션 타입은 값 타입이라고 했기 때문에 메모리의 값이 복사되어 전달되는 것이죠.그렇다면 한번 확인을 해볼까요?var array1 = [1, 2, 3]var array2 = array1array2.append(4)print(array1)..

Swift 2024.03.19

[Prelude] 애플 디벨로퍼 아카데미를 시작하는 첫 주

Prelude : (음악에서) 서곡[전주곡] Apple Developer Academy @ POSTECH에서의 첫 주는 서곡을 의미하는 Prelude 키워드로 시작하게 되었다. 즉, 챌린지를 시작하기 전 도입부 느낌으로 시설 탐방, 스태프 소개, 러너들과의 인사, 아카데미에서의 생활 및 가져야 할 마음가짐 등 기초적인 내용들에 대해 듣고 알아가는 시간이었다. 앞으로 아카데미에서의 메인 활동인 챌린지는 총 6번으로 Mini Challenge 1, 2, 3, Nano Challenge 1, 2, Macro Challenge로 구성되어 있다. 각 챌린지에 대해 간단히 말하자면 Mini Challenge는 기획, 디자인, 개발 작업을 통한 팀 협업 활동, Nano Challenge는 Mini Challenge ..