타임라인

안녕하세요, iOS 개발하는 루피입니다! 저는 올해 3월부터 12월까지 포항에서 진행된 애플 디벨로퍼 아카데미 3기 과정을 수료하게 되었습니다. 9개월이라는 시간을 돌아보며, 좋았던 순간들과 부족했던 경험, 그리고 잘했던 기억들을 잊지 않기 위해 이렇게 회고록을 작성해봅니다.9개월간의 시간, 잘 보냈을까?솔직히 말하면, 제가 지난 9개월을 정말 잘 보냈는지는 지금도 확신할 수 없습니다. 때로는 "더 잘할 수 있었을 텐데..." 라는 아쉬움도 남습니다. 하지만 한 가지는 분명한 거 같습니다. 이 시간 동안 정말 많은 것을 배우고 성장했습니다.1. 팀에 대해 다시 생각하다.저는 팀을 빌딩하고 이끌어가는 것에 대해 나름 자부심을 가지고 있었습니다. 대학 시절, 3학년 때, 학생회장을 맡아 활동하며 꽤나 의미 ..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 졸업 캡스톤을 마무리한 기념으로 정리 겸 회고를 목적의 글을 적어보려 합니다.캡스톤은 총 4개월의 기간 동안 진행했습니다. 총 팀원은 3명으로 iOS, BE, Embedded + AI를 이용한 프로젝트를 진행했으며, 저희 팀은 약 30팀 中 우수상을 수상 했습니다!! 그리고 저는 저는 팀장으로 iOS + PM 역할을 담당했습니다.IOT 기반 가족 중심 AI 노인 돌봄 서비스 (Hyodor)저희가 개발한 서비스는 쉽게 설명하자면, 웹캠을 이용한 온디바이스 AI 서비스입니다.1) 메인 기능웹캠에서 실시간으로 노인분의 움직임을 확인하고, 이상현상 발생 시 보호자에게 즉시 알려준다.2) 서브 기능'가족 중심'이라는 키워드에 맞게 App과 IOT를 실시간으로 연결하..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 제가 지난 2주간 참여했던, 부스트캠프 베이직 과정에 대해 회고 겸 리뷰를 해보려 합니다. 저는 애플 디벨로퍼 아카데미 3기를 수료했는데요, 제가 모든 과정에 대해 얘기를 할 수는 없지만, 간략하게 차이점?? 도 적어보도록 하겠습니다. 바로 시작합니다1. 베이직에서 잘 성장하려면??미션이 2주간 진행되고, 매일매일 난이도가 다릅니다. 쉬울 수도 어려울 수도 있는데요. 따라서 저는 베이직 과정에서 잘 성장하기 위해서는 답을 맞히는 것도 중요하겠지만...나의 문제 해결 과정을 정리하고 근거를 만들어 나가는 과정이 가장 중요하다고 생각합니다. 문제를 어떻게든 해결해 나가는 것도 중요하지만, LLM이 엄청나게 발전하고 있는 지금 웬만한 난이도의 문제는 프롬프트 몇..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 부스트캠프 챌린지 과정을 수료하며 그동안의 경험을 돌아보고자 합니다. 바로 시작합니다.부스트캠프 챌린지 과정을 돌아보며이번 과정을 통해 개발자로서, 그리고 한 사람으로서 많은 성장을 경험할 수 있었습니다. 제가 느꼈던 변화들을 정리해 보겠습니다.1)진정한 챌린지의 의미를 깨닫다솔직히 말하면 컴퓨터공학을 전공하며 쌓은 지식과 경험에 대한 자신감이 어느 정도는 있던 거 같습니다. 비전공자분들보다는 상대적으로 개발에 익숙하다고 생각했죠. 하지만 이런 자신감은 첫 미션부터 산산조각이 났습니다. 😅 미션의 난이도는 상상을 뛰어넘었습니다. "이걸 정말 하루 만에 해결할 수 있는 건가?"라는 의문이 들 정도였고, 많은 캠퍼들이 같은 고민을 하고 있었습니다. LLM도 ..

회고록

안녕하세요, iOS 개발하는 루피입니다! 오늘은 부스트캠프 챌린지 과정을 수료하며 그동안의 경험을 돌아보고자 합니다. 바로 시작합니다.부스트캠프 챌린지 과정을 돌아보며이번 과정을 통해 개발자로서, 그리고 한 사람으로서 많은 성장을 경험할 수 있었습니다. 제가 느꼈던 변화들을 정리해 보겠습니다.1)진정한 챌린지의 의미를 깨닫다솔직히 말하면 컴퓨터공학을 전공하며 쌓은 지식과 경험에 대한 자신감이 어느 정도는 있던 거 같습니다. 비전공자분들보다는 상대적으로 개발에 익숙하다고 생각했죠. 하지만 이런 자신감은 첫 미션부터 산산조각이 났습니다. 😅 미션의 난이도는 상상을 뛰어넘었습니다. "이걸 정말 하루 만에 해결할 수 있는 건가?"라는 의문이 들 정도였고, 많은 캠퍼들이 같은 고민을 하고 있었습니다. LLM도 ..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 부스트캠프 챌린지 2~3주차 회고를 해보도록하겠습니다. 바로 시작합니다.1. 이번 주 가장 도전적이었던 과제Git 내부 구조 분석, Swift로 zlib 파일을 Git 호환 형태로 변환, packfile 압축 해제 등 이번 주 미션들은 개인적으로 정말 어려웠습니다.처음에는 LLM에게 "이 문제를 어떻게 해결할 수 있을까요?"라고 질문했지만, LLM의 답변으로 작성한 코드는 계속해서 Crash가 발생했고, 이 방법으로는 한계가 있다고 판단했습니다. 1) 정보의 근본을 찾아가는 과정JK님께서 알려주신 방법론을 적용해보았습니다. 한글 자료보다는 영문 원서와 공식 문서를 깊이 파고들어가며 정보의 출처를 찾아 올라갔습니다. 시간이 많이 소요되었지만 결국 문제를 해결..
안녕하세요, 루피입니다.오늘은 부스트캠프 1주차 회고록을 작성해보려합니다. 바로 시작합니다.숨 가쁘게 달려온 네이버 부스트캠프 챌린지의 첫 주가 지나고, 주말을 맞아 학습한 내용들을 정리하는 시간을 가졌습니다. 5일 내내 매일 밤을 새워가며 미션을 수행한 탓인지, 토요일에는 몸살이 나서 하루 종일 누워있어야만 했습니다. 그럼에도 불구하고, 힘든 만큼 무언가 해냈다는 뿌듯함이 밀려왔습니다. 하지만, 동시에 '내가 지금 이 뿌듯함을 느껴도 되는 걸까?' 하는 자기반성적인 질문을 스스로에게 던지게 된 한 주였습니다.아쉬웠던 점과 반성이번 한 주간의 제 모습을 돌아보면, 주어진 미션을 완성하는 데에만 너무 치중하지 않았나 하는 아쉬움이 남습니다. 개념보다 구현 위주의 학습을 하지 않았나? 개념을 깊게 이해하며 ..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 졸업 캡스톤을 마무리한 기념으로 정리 겸 회고를 목적의 글을 적어보려 합니다.캡스톤은 총 4개월의 기간 동안 진행했습니다. 총 팀원은 3명으로 iOS, BE, Embedded + AI를 이용한 프로젝트를 진행했으며, 저희 팀은 약 30팀 中 우수상을 수상 했습니다!! 그리고 저는 저는 팀장으로 iOS + PM 역할을 담당했습니다.IOT 기반 가족 중심 AI 노인 돌봄 서비스 (Hyodor)저희가 개발한 서비스는 쉽게 설명하자면, 웹캠을 이용한 온디바이스 AI 서비스입니다.1) 메인 기능웹캠에서 실시간으로 노인분의 움직임을 확인하고, 이상현상 발생 시 보호자에게 즉시 알려준다.2) 서브 기능'가족 중심'이라는 키워드에 맞게 App과 IOT를 실시간으로 연결하..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 제가 지난 2주간 참여했던, 부스트캠프 베이직 과정에 대해 회고 겸 리뷰를 해보려 합니다. 저는 애플 디벨로퍼 아카데미 3기를 수료했는데요, 제가 모든 과정에 대해 얘기를 할 수는 없지만, 간략하게 차이점?? 도 적어보도록 하겠습니다. 바로 시작합니다1. 베이직에서 잘 성장하려면??미션이 2주간 진행되고, 매일매일 난이도가 다릅니다. 쉬울 수도 어려울 수도 있는데요. 따라서 저는 베이직 과정에서 잘 성장하기 위해서는 답을 맞히는 것도 중요하겠지만...나의 문제 해결 과정을 정리하고 근거를 만들어 나가는 과정이 가장 중요하다고 생각합니다. 문제를 어떻게든 해결해 나가는 것도 중요하지만, LLM이 엄청나게 발전하고 있는 지금 웬만한 난이도의 문제는 프롬프트 몇..
안녕하세요, 루피입니다! 오늘은 2024년을 마무리할 겸 애플 디벨로퍼 아카데미를 끝내고 많은 생각을 하면서 결정한 iOS 개발을 선택한 이유와 앞으로의 삶의 방향을 정리해보려 합니다.iOS 개발에 대한 생각과 아카데미 교육 전저는 컴퓨터공학과 졸업을 앞두고 포항으로 내려가 애플 디벨로퍼 아카데미 프로그램을 진행했습니다. 내려가기 전 저는 이 기회가 너무나도 소중했고, 정말 모든 걸 쏟아붓겠다는 생각을 했죠!! 그 이유는 앱을 개발하면서 궁극적으로 제가 되고 싶은 PM이라는 직무를 동시에 배울 수 있고, 수료와 동시에 수료증을 마패처럼 어디든지 들어갈 수 있는 사람이 될 줄 알았습니다. ㅎㅎ 지금 생각해 보니 너무 어렸던 거 같고 세상 물정 몰랐던 거 같습니다. 앱 개발이 처음은 아니었지만, 사실 저는 ..
안녕하세요, iOS 개발하는 루피입니다! 저는 올해 3월부터 12월까지 포항에서 진행된 애플 디벨로퍼 아카데미 3기 과정을 수료하게 되었습니다. 9개월이라는 시간을 돌아보며, 좋았던 순간들과 부족했던 경험, 그리고 잘했던 기억들을 잊지 않기 위해 이렇게 회고록을 작성해봅니다.9개월간의 시간, 잘 보냈을까?솔직히 말하면, 제가 지난 9개월을 정말 잘 보냈는지는 지금도 확신할 수 없습니다. 때로는 "더 잘할 수 있었을 텐데..." 라는 아쉬움도 남습니다. 하지만 한 가지는 분명한 거 같습니다. 이 시간 동안 정말 많은 것을 배우고 성장했습니다.1. 팀에 대해 다시 생각하다.저는 팀을 빌딩하고 이끌어가는 것에 대해 나름 자부심을 가지고 있었습니다. 대학 시절, 3학년 때, 학생회장을 맡아 활동하며 꽤나 의미 ..

Recent Posts

·SwiftUI
안녕하세요, iOS 개발하는 루피입니다. 오늘은 WWDC21 Demystify SwiftUI 영상을 정리하는 마지막 3번째 시간입니다. 지난 글들에서는 지금까지 "Identity가 무엇이고", "Identity가 View의 Lifetime과 어떻게 연관되는지"에 대해 정리해 봤다면, 이번에는 “SwiftUI가 UI를 업데이트하는 방법”에 대해 정리해보도록 하겠습니다. 바로 시작합니다.Dependencies(의존성)Dependencies는 흔히 우리에게는 의존성, 종속성이라는 단어로 불리고 있습니다. 이번 글에서는 쉽게 의존성이라는 단어를 이해하기 위해 View가 동작하기 위해 필요한 입력값이라고 얘기해 두겠습니다. 그러면 아래의 코드부터 같이 보도록 하시죠.현재 코드에는 2개의 property가 있습니다..
·SwiftUI
안녕하세요, iOS 개발하는 루피입니다. 오늘은 WWDC21 Demystify SwiftUI 영상을 정리하는 2번째 시간입니다. 저번 글에서는 SwiftUI가 뷰를 식별하는 방식을 이해했다면, 이번 글에서는 ID가 뷰와 데이터의 수명과 어떻게 연결되는지 정리해 보는 시간을 가져보도록 하겠습니다. 바로 시작합니다.Lifetime영상에서는 고양이 테세우스의 예시를 들고 있습니다. 이 고양이가 일어나서 밥을 먹던지, 시간이 지나 밖에서 나가서 산책을 하던지, 기분이 안좋아 저에게 화를 내더라도 똑같은 테세우스라는 것은 변합이 없습니다. 이러한 생각이 바로 Identity와 Lifetime을 연결하는 핵심입니다.이전 글에서 봤던 위 앱도 동일합니다. 각각의 상태는 시점에 따라 다른 값을 가지게 됩니다. 코드를 ..
·SwiftUI
안녕하세요, iOS 개발하는 루피입니다. 오늘은 WWDC21 Demystify SwiftUI 영상을 보고 정리해보는 시간은 갖으려 합니다. 이번 영상은 선언형 프레임워크인 SwiftUI가 내부적으로 무엇을 하고 있는지에 대해 설명하면서, “SwiftUI가 내 코드를 볼 때, 무엇을 보는가?”라는 주제를 바탕으로 정보를 전달하는데요, 이번 글은 정리를 목적으로 진행하며, 총 3개의 글로 정리해보겠습니다. 바로 시작합니다.SwiftUI가 집중하는 3가지Identity : SwiftUI가 여러 업데이트에서 요소를 동일하거나 별개로 인식하는 방식이다.Lifetime : SwiftUI가 시간 경과에 따라 뷰와 데이터의 존재를 추적하는 방식이다.Dependencies : SwiftUI가 인터페이스를 업데이트해야 하..
·UIKit
안녕하세요, iOS 개발하는 루피입니다. 오늘은 인터페이스를 관리하고, 앱의 콘텐츠 간 네비게이션을 구현하는 데 필요한 View Controller에 대해 정리해 보도록 하겠습니다. 바로 시작합니다. ( 편의상 ViewController를 VC라고 하겠습니다. )View Controller란?VC는 UIKit 앱의 인터페이스를 관리하는 핵심 요소입니다. 모든 iOS 앱은 최소 하나 이상의 VC를 가지고 있으며, 이는 앱의 메인 윈도우를 채우는 역할을 하죠! 간단히 말하자면, VC가 하는 일은 다음과 같습니다.앱 UI의 특정 부분, 즉 View를 관리합니다.해당 UI와 데이터 간의 상호작용을 담당합니다.앱 내에서 서로 다른 UI 간의 전환 처리를 담당합니다. (네비게이션은 이에 해당하겠죠?)각 VC는 하나..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 부스트캠프 챌린지 과정을 수료하며 그동안의 경험을 돌아보고자 합니다. 바로 시작합니다.부스트캠프 챌린지 과정을 돌아보며이번 과정을 통해 개발자로서, 그리고 한 사람으로서 많은 성장을 경험할 수 있었습니다. 제가 느꼈던 변화들을 정리해 보겠습니다.1)진정한 챌린지의 의미를 깨닫다솔직히 말하면 컴퓨터공학을 전공하며 쌓은 지식과 경험에 대한 자신감이 어느 정도는 있던 거 같습니다. 비전공자분들보다는 상대적으로 개발에 익숙하다고 생각했죠. 하지만 이런 자신감은 첫 미션부터 산산조각이 났습니다. 😅 미션의 난이도는 상상을 뛰어넘었습니다. "이걸 정말 하루 만에 해결할 수 있는 건가?"라는 의문이 들 정도였고, 많은 캠퍼들이 같은 고민을 하고 있었습니다. LLM도 ..
·CS
안녕하세요, iOS 개발하는 루피입니다. 오늘은 OSI 7 Layer와 TCP/IP 에 대해 정리해 보는 시간을 가져보려 합니다. 특히 왜 OSI가 나중에 만들어졌는데도 TCP/IP가 표준이 되었는지에 대한 역사도 함께 살펴보겠습니다. 바로 시작합니다.1. Internet인터넷(Internet)은 전 세계 컴퓨터들이 TCP/IP 프로토콜이라는 공통된 "약속"을 사용해 정보를 주고받는 거대한 네트워크입니다.1973년 TCP/IP를 정립한 빈튼 서프와 밥 간이 네트워크의 네트워크를 구현하려는 비전에서 인터넷(Internet)이라는 이름이 탄생했습니다. 즉 네트워크를 연결한 것을 인터넷이라고 합니다.2. 초기 인터넷 : 혼돈 그 자체1) 1970년대-1980년대초기에 인터넷이 개발될 당시에는 네트워크를 구성하..
안녕하세요, iOS 개발하는 루피입니다! 오늘은 부스트캠프 챌린지 2~3주차 회고를 해보도록하겠습니다. 바로 시작합니다.1. 이번 주 가장 도전적이었던 과제Git 내부 구조 분석, Swift로 zlib 파일을 Git 호환 형태로 변환, packfile 압축 해제 등 이번 주 미션들은 개인적으로 정말 어려웠습니다.처음에는 LLM에게 "이 문제를 어떻게 해결할 수 있을까요?"라고 질문했지만, LLM의 답변으로 작성한 코드는 계속해서 Crash가 발생했고, 이 방법으로는 한계가 있다고 판단했습니다. 1) 정보의 근본을 찾아가는 과정JK님께서 알려주신 방법론을 적용해보았습니다. 한글 자료보다는 영문 원서와 공식 문서를 깊이 파고들어가며 정보의 출처를 찾아 올라갔습니다. 시간이 많이 소요되었지만 결국 문제를 해결..
·Swift
안녕하세요, iOS 개발하는 루피입니다. 개발을 하시면서, DispatchQueue.global().async라는 코드를 한 번쯤은 사용해 보셨을 겁니다. 우리는 이 코드를 통해 무거운 작업을 백그라운드 스레드로 보내 UI 프리징을 막곤 하죠. 하지만 혹시 이런 질문을 던져본 적 있으신가요?DispatchQueue/global() 은 정확히 무엇일까?왜 우리는 Thread.start()처럼 스레드를 직접 만들지 않을까?시스템은 우리가 던져준 작업을 어떻게 처리하고 있는 걸까?오늘은 이러한 숨겨진 내부 동작을 공부해 보면서, iOS 동시성의 가장 낮은 곳에 있는 RunLoop와 Thread Pool의 개념을 이해하고, 이를 통해 우리가 자주 사용하는 GCD와 OperationQueue가 왜 효율적인 방법인..
·Swift
안녕하세요,루피입니다. 오늘은 공식문서를 바탕으로 클로저에 대해 다시 한번 정리하는 시간을 가져보도록 하겠습니다. 바로 시작합니다.클로저와 함수의 관계진행하기에 앞서 우선 클로저와 함수의 관계를 짚고 넘어가도록 하겠습니다. Swift의 공식 문서에 따르면, 함수는 사실 이름이 있는 클로저의 한 종류입니다. 즉, 클로저가 더 큰 개념이고 함수는 그 안에 포함된 특별한 형태인 셈이죠.공통점특정 작업을 수행하는 코드 블록입니다.매개변수를 받고 결과값을 반환할 수 있습니다.주변 컨텍스트의 변수나 상수를 캡처 할 수 있습니다.차이점 함수클로저이름항상 이름이 있음이름이 없는 형태가 일반적키워드func 키워드로 명시적 선언{ } 를 사용한 간결한 문법활용독립적인 기능 단위로 사용다른 함수의 인자, 변수 할당 등 유연..
kimsangjunzzang
루피 님의 블로그