외계인 자서전 - 지극히 특별하고 평범한 외로움
·
생각을 담은 독서
올해 가장 많이 떠오르고, 늘 옆에 있었고, 차츰 익숙해져가는 건 외로움이었다. 작년에 과분한 사랑을 받아서 그랬을까, 분명 그 때도 채워지지 않는 공허함 같은 게 있었는데 지금은 더욱 그렇다. 아디나가 뉴욕에서 그랬던 것처럼 내 인생에서 사람들을 스쳐가고, 대화하고, 함께 일할 기회가 어느 때보다 커져가는데 도대체 왜 외로움이 커지는 걸까? 역설적이라는 생각에 괜스레 억울한 감정이 몰려오기도 한다. 화가 나서 눈물이 날 때도 있다. 외계인 자서전은 외로움을 위로해주지 않는다. 아디나의 고독함이 묻어져나오는 문장들에는 솔직함에서 오는 측은함, 상실감, 공허함이 있다. 그러나 오히려 그것이 내게 편안함을 줬다. 그럴 수 있음을, 그럼에도 불구하고 인간이라는 불완전한 존재가 살아가는 그 방식을 느낄 수 있었..
Let'Swift 2025 짤막한 후기
·
대외활동
올해는 못 갈 줄만 알았던 iOS 행사를 회사 팀원 분의 좋은 기회를 받아 다녀올 수 있었습니다.(오거나이저 만세!) 오랜만에 아카데미 분들도 봐서 좋았고, 무엇보다 다시금 iOS에 대한 열정의 기억을 되살릴 수 있었습니다. 사이드 프로젝트도, 디자인도, 완전히 다른 것도 재밌는게 많지만 제겐 역시 iOS 개발이 제일 재밌는 것 중에 하나이니까요. 작년에 비해 스스로 넣는 인풋량은 많이 부족하지만(그만큼 다른걸 많이 채우고 있다 생각하지만) 외적으로 주입되는 인풋량은 더 많아짐을 느끼곤 합니다. 처음 들었던 컨퍼런스에선 거의 모든 내용을 이해할 수 없었지만 지금은 고개를 끄덕거릴 정도는 되었습니다 ㅎㅎ 열심히 준비해 좋은 기회 주신 회사 동료 분께 다시 한번 감사 인사 드립니다 😇 (다들 너무 고생 많..
Firebase Remote Config로 배포 없이 값 "딸깍" 바꿔주기
·
실무 내용 내껄로 만들기
앱에 새로 출시할 기능이 상당히 실험적이고 도전적이라 '어떤 비즈니스 이펙트를 가져올지 예상할 수 없을 때' 어떤 선택을 할 수 있을까요? 여기서 전제는 '앱 배포'이기 때문에 되돌리거나 새로운 변경사항으로 바꾸고 싶으면 기존 방식으로는 길고 긴 심사를 다시 거쳐야한다는 것입니다.점진 배포하기Server-Driven 방식으로 분기처리 하기그냥 다시 배포하고 기도하기(?)3가지 방식 모두 장단점이 있지만, 오늘은 그 중에서도 가장 적은 리소스로 가장 빠르게 프론트에서 적용할 수 있는 방식인 Firebase Remote Config 방식에 대해 정리해보겠습니다. Firebase Remote Config?이름에서도 알 수 있듯 원격 제어 설정을 도와주는 친구입니다.(Firebase,,, 대체 얼마나 해주는거야..
팩트풀니스 - 그럼에도 불구하고 세계는 생각보다 괜찮다
·
생각을 담은 독서
오랜만에 책을 직접 사서 읽었다. 밀리의 서재 등을 이용해 읽는 방식도 한 때 시도해 봤지만 역시 종이책의 감성과 질감을 포기하기란 쉽지 않다. 책을 마음껏 사용하고 싶은 마음도 있었다. 도서관에서 빌려온 책들이 아무렇게나 접혀있거나 세월의 흔적들을 보는 게 즐겁긴 하지만 내 생각을 펼치기엔 아무래도 모두가 읽을 책이라는 점에서 양심에 걸리니 말이다. 직접 사서 읽는 경험이 꽤나 좋았기 때문에 앞으로도 읽고 싶은 책이 있을 때 자주 서점을 들락 나락 해볼 생각이다. 팩트풀니스를 읽으며 세계를, 인생을 바라보는 관점이 바뀌어감을 느꼈다. 최근 우리나라 모든 세대를 흥분하게 만든 정치적 갈등, 공포와 좌절감을 안겨주는 수많은 부정적인 뉴스들, 스스로 앞으로 나아가고 있는 것인지에 대한 확신이 없을 때 등 나..
딥링크, URL 스킴, 유니버셜 링크, 다이나믹 링크 뭐가 뭔데?
·
내게 필요한 개발 공부
어떤 버튼을 눌렀을 때 특정 앱이 열리는 기능은 우리에게 익숙합니다. 그런데 도대체 이 기능을 뭐라고 불러야 할까요? 어디서는 딥링크, 어디서는 URL 스킴, 유니버셜 링크, 다이내믹 링크 등 다양한 용어가 들려오는데 이름만 다른 걸까요? 혹은 정말 다른 기능들일까요? 오늘은 iOS 앱 개발 관점에서 알쏭달쏭 헷갈리는 용어들에 대해 확실하게 이해해 보는 시간을 가져보겠습니다! 사실은 모두 딥링크이것저것 단어가 많지만 사실은 모두 '딥링크'라고 할 수 있습니다. URL 스킴, 유니버셜 링크, 다이나믹 링크 등 "앱 내 특정 페이지로 바로 연결되는 모든 기술"은 딥링크라는 큰 기술 카테고리에 묶인다고 이해하면 됩니다. 가장 전통적인 방법, URL SchemeURL Scheme은 딥링크의 가장 전통적인 방식입..
Firebase App Distribution + Fastlane으로 초간단 QA 빌드 뽑아보기
·
실무 내용 내껄로 만들기
아카데미에서 개발을 하지 않는 팀원분들께 중간중간 만들어진 앱을 공유, 즉 QA를 위해 사용했던 방법은 이랬습니다. 아이폰을 맥북에 연결해 직접 빌드하기, 혹은 TestFlight를 이용해 내부 테스터로 초대하기 등이었죠.(그냥 제 아이폰을 주는 방법도 있었답니다) 그리고 생각보다 아이폰을 직접 연결해 빌드한다는 단순무식(?)한 방법을 자주 사용하곤 했는데, TestFlight라는 좋은 Tool을 놔두고 왜 그랬을까요? 기존 배포의 불편한 점TestFlight는 애플이 제공하는 공식 베타 테스트 플랫폼입니다. TestFlight에 초대되었다면 누구든 베타 버전을 쉽게 받아볼 수 있죠. 하지만 TestFlight의 배포 프로세스는 생각보다 오래 걸립니다.Xcode 빌드 및 Archive애플 서버에 업로드애..
이거 줘도 돼? 회고 - iOS 개발자의 Flutter + Claude 바이브코딩 후기
·
프로젝트 일지
이거 줘도 돼? 프로젝트 후기2025.07~08(약 1달) 간 진행Flutter / SupabaseAppStore 출시 완료 / Play Store 심사 반려1인 앱 개발을 하면 할수록 iOS와 Android 진영 모두를 고려해야 한다는 생각이 자연스레 커졌습니다. 서버를 필요로 하지 않는 앱이라면 웬만한 iOS 앱은 어느 정도 뚝딱(?) 만들 수 있을 거라는 근거 없는 자신감은 있지만, Android 앱 개발은 제게 암묵지와도 같았습니다. 그렇다고 Android 앱 개발을 배우기엔 결국 양쪽 플랫폼 모두 2번 개발해야 하잖아,,,?라는 생각에 엄두가 나지 않기도 했었습니다.(그럴 거면 iOS만 하지!) 이런 상황 속에서 제 눈에 들어온 것은 하이브리드 앱 개발이었습니다. 대표적으로 Flutter와 Re..
Git Worktree로 브랜치 사이를 효율적으로 거닐기
·
실무 내용 내껄로 만들기
팀과 함께 협업하다 보면 서로의 branch를 확인하기 위해 switch(checkout)하는 경우가 허다합니다. 한참 작업을 하다 급한 코드 리뷰, 혹은 핫픽스가 필요해 임시 commit을 만들거나 stash 한 경험이 있으신가요? 무엇이 문제인가!임시 commit을 만들거나 stash 하는 것으로도 작업 내용을 보존하며 branch를 switch 할 수 있습니다. 하지만 이 방법은 결국 작업자의 '기억'에 의존하게 됩니다. 잠깐 동안만 다른 branch에서 작업하다 돌아온다면 되돌려야 하는 포인트를 금방 찾을 수 있겠지만, 시간이 길어진다면 어떨까요? stash 해둔 것을 모르고 날려버린다면요?(으악) 제가 애용하는 Fork 같은 UI 도구를 사용하면 기억을 더듬는데 도움이 되겠지만, 완전하다고 말할..
무지성 Commit은 그만! Git Rebase로 깔끔하게 코드 리뷰 반영하기
·
실무 내용 내껄로 만들기
오랜만에 포스팅으로 돌아왔습니다! 인턴을 시작한 지도 거의 2달이 지났네요. 역시나 실무에선 모르는 것도, 배우는 것도 많네요,,, ㅎㅎ 이런 내용들은 회사에서 반복적으로 수행하다 보면 자연스럽게 체득할 수도 있겠지만, 그렇다고 온전히 제 것이냐 라는 질문에는 선뜻 그렇다 대답할 수 없을 것 같습니다. 결국 내 것으로 만들기 위해선 한 번은 꼭 정리해 보는 시간이 필요하다 느껴집니다. 앞으로 쓰고 싶은 내용들이 무지막지하게 많지만 그중에서도 가장 먼저, 그리고 가장 충격(?)을 먹었던 실무 `Git` 사용법 관련에 대한 포스팅을 진행해보려 합니다. 그동안 나는 어떻게 코드 리뷰 대응을 하고 있었을까?저는 이전 애플 디벨로퍼 아카데미에서 팀원들과 적극적으로 PR 작성, 코드 리뷰 문화를 도입해 협업한 경험..
동시성 성장
·
꾸준히 글쓰기
개인 프로젝트, iOS, 개발, 영어, 러닝, 일렉 기타 등해야 하고, 하고 싶은 것들에 대한 관리가 안되다 보니꾸준히 해나가기 쉽지 않은 것 같다. 나는 멀티태스킹에 약해서 한 가지 일에만 집중하곤 하는데,이는 명확한 장단점이 있다고 느낀다. 장점이라면 산출물의 퀄리티, 효율이 잘 나오고단점이라면 다른 일은 진행되지 않는다는 것이다. 특히나 영어 공부, 러닝과 같은 것들은 평생에 걸쳐 연습해야 하는 루틴과 같은데항상 우선순위에 밀려 미루게 된다. 이를 어떻게 해결할 수 있을까 막연하게 고민하고 있었는데어디서 봤는지는 기억이 잘 안 나지만결국 병렬적으로 조금씩, 점진적으로 일을 해야 한다는 이야기를 들었다.(난 개발 자니까 더 정확하게 표현하자면, 동시성이라고 표현하겠다.) 동시성 성장을 위한 핵심은, ..
함수와 메서드는 다르다.
·
내게 필요한 개발 공부
예전부터 TCA(The Composable Architecture)를 만든 Point-Free 형님들의 영상을 봐야겠다 생각하고 있었습니다. 하지만 영어의 장벽,,,으로 미루고 미루다가(이것도 언제까지 미룰거야!!) 이제는 Swift 딥다이브가 정말로 필요하다는 생각이 들어 무료로 풀린 첫 번째 에피소드부터 시청하기로 했습니다. 첫 에피소드부터 머리를 띵,, 하고 맞은 것 같은 내용이어서 휘발되기 전에 메모를 남겨두려 합니다. ++ 영상 보고, 해석하고 하는건 시간이 너무 오래걸릴 것 같아 스크립트 번역을 통해 시청했습니다! 영상 출처: https://www.pointfree.co/episodes/ep1-functions 스크립트 흐름1. IntroductionPoint-Free에서는 다양한 함수형 프로..
Task는 항상 부모 Context를 상속 받을까?
·
내게 필요한 개발 공부
회사에서 대망의 첫 MR을 작성하게 됐습니다.(Gitlab은 MR이라고 하더군요,,, Github의 PR) 작업 상 크게 어려운 부분은 없었지만, Swift Concurrency를 이용한 코드 작성 중 관련 리뷰를 받게 되어 간단한 실험을 해볼까 합니다. 어떤 상황?간단히 말하면 Task로 비동기 작업을 생성할 때, 내부 동작은 항상 부모 Context의 메타데이터를 상속 받을까? 입니다.final class SomeViewController: UIViewController { // ... func someFunction() { Task { // ⭐️ Task 내부 클로저는 어느 스레드에서 실행? } }} 정확한 상황을 표현하자면..
말랑말랑 iOS 인턴 면접 후기
·
취준
바로 어제 다녀온 iOS 인턴 면접 후기를 남겨보려 합니다. 제목에 말랑말랑이라는 단어를 사용했는데 그만큼 분위기가 부드럽고(말랑말랑?) 좋았어서 그래봤습니다,,, ㅎㅎ 하지만 분위기와 면접 결과는 비례하지 않을 수 있다는 것을 알기에, 기대감은 넣어두고 복기의 시간을 가져보겠습니다. 면접까지의 프로세스사전과제 기간을 포함해 면접까지 약 1주일 정도의 시간이 있었습니다. 열심히 사전과제를 끝내놓고 남은 3일 정도는 그동안 준비했던 CS, Swift 문법, 아키텍처 등을 복습했습니다. 늘 느끼는 거지만 중요하지 않아 보이는 게 하나도 없어서 어려운 것 같습니다. 뭐랄까 이 부분을 넘기면 나중에 후회하지 않을까?! 등과 같은 지점들이죠. 하지만 집중력의 한계! + 사실 암기보단 맥락을 이해하는 것이 더 중요..
유난히 길게 느껴질 여름을 준비하는 회고
·
솔직해보려는 회고
2025. 06. 17나는 지금 그 어느 때 보다도 회고를 하고 싶다. 생각할 시간을 무한히 집어넣는 것만 같은 2025년의 가운데에서 주변 정리가 필요함을 강하게 느낀다. 늘 비슷한 고민에 가로막혀 진짜 해야 할 일을 놓치지 않기 위해서라도 말이다. 그래서 이번 회고의 핵심 키워드는 '솔직함'이다. 마음속 깊숙이 내려앉은 생각의 골을 끌어올려 키보드 위에 올려놓은 후, 무심하게 잘라 다시 들여다볼 것이다. 어떤 표현을 사용할지, 남들에게 어떻게 보일지에 대한 고민보다 스스로에게 솔직한 회고를 위해 노력할 것이다. 나 자신을 해체하는 것에 두려워하지 말자. 1. 나는 어떤 사람이 되고 싶은가'나'라는 사람을 정의할 때 늘 입버릇처럼 말하고 다니는 문장이 있다. "만드는 걸 좋아하는 사람". 그렇다, 나는..
맡겨진 소녀 - 잔잔한 바람같은 따뜻함
·
생각을 담은 독서
마음의 문을 나도 모르게 조금씩 닫아버리게 되는 것만 같은 요즘이다. 따뜻한 말을 바라면서도 선뜻 꺼내기 힘들어서, 무엇인지도 모를 자존심을 지키려고 삼키고만 있는 내게 잔잔하게 그리고 따뜻하게 말을 걸어주었다. 사실 나도 너도 정말로 작은 배려와 말들만으로도 충분했을 텐데. 서로를 진심으로 대할 수 있었을텐데. 이렇게 서먹해지진 않았을텐데 말이다. 책을 읽는 내내 갈대 밭 속 불어오는 바람, 푸근한 빵 냄새, 비가 내린 후 젖어 있는 축축함을 느낄 수 있었다. 이 온기를 가슴 속에 품고 사랑하는 사람들에게도 전달할 수 있기를. 아무 말도 하지 않는 것의 의미를 알 수 있기를.
모든 시작에는 떨림이 있다
·
꾸준히 글쓰기
행복하게 살고 싶다.근데 어떻게 살아야 행복해지는걸까. 한참을 고민하다 메모장에 적어봤다.시간 가는 줄 모르고 신나게 써내려갔다.상상으로만 해도 좋은 것들이라니. 하고 싶은 것도, 사랑하고 싶은 것도 많은 나는메모장을 끝없이 채울 수 있을 것 같았다. 내가 행복해지기 위한 그림을 그리다보니 역시나 명확해진다.지금처럼 꾸준히 해야할 것도, 새로 시작해봐야할 것도. 무섭고 내던지고 싶을 때마다 메모장을 꺼내 읽자.보기만 해도 웃음이 지어지는, 떨림이 가득한 메모장을 말이다.
내가 하고 싶은 거
·
꾸준히 글쓰기
내가 지금 하고 있는 건 내가 하고 싶은 것일까?내가 지금 하고 있는 것의 목표는 무엇인가?그 목표를 이루면 그 다음은 어떤 것일까? 시간이 많으니, 아니 잡히질 않으니 생각의 골이 깊어진다.분명 이 다음은 내가 바라는 삶이 아닐 거 같은데.내가 꿈꾸는 삶은 훨씬 큰데.이렇게 해서는 각이 안나오는 거 같은데. 솔직히 하루에도 생각이 몇 번이나 왔다갔다 하는지 모르겠다.스스로 바보 같으면서도 이런 과정이 필요한 것 같기도 하다. 이 목표를 이루고 나면 다음에 도전하면 되겠지라는 게 안일하다는 건 누구보다 잘 알고 있다.스스로 안주하고 도망칠 것 같아 무섭다. 방향을 확실하게 잡아야 한다.어릴 때부터 이것저것 하는 해보는 걸 좋아했지만 매듭을 짓진 못했다.끈만 널부뜨리지 말고 제발 매듭을 짓자. 내 삶의 주..
멀티태스킹과 멀티프로세싱, 비슷한듯 다른 두 개념
·
내게 필요한 개발 공부
저는 멀티태스킹에 약합니다. 이게 무슨 뜻일까요? 한 번에 여러 가지 일을 잘하지 못한다는 뜻입니다. 전화하면서 딴짓이라도 하면 누군가 항상 알아차리는 것 같습니다 ㅋㅋ 아무튼 오늘 공부해 볼 개념은 멀티태스킹입니다. 생각보다 쉬운 개념이니 짧게 정리해보겠습니다! (둘의 차이를 이해하면 왜 '저는 멀티 프로세싱에 약합니다'라고 이야기할 수 없는지 알게 될지도 모릅니다) 멀티 태스킹 Multitasking하나의 CPU(Core)가 여러 개의 작업을 동시에 실행하는 것어떻게 하나의 시스템에서 여러 개의 작업을 동시에 실행할 수 있을까요? 보통 하나의 작업이 끝나야 다음 작업을 시작할 수 있는 구조 상 의문이 듭니다. 컴퓨터 과학자들은 이를 해결하기 위해 프로그램의 작업을 아주 작은 단위로 분리했습니다. 그리..
왜 나는 너를 사랑하는가 - 그냥 너라서
·
생각을 담은 독서
처음으로 떠나본 혼자만의 여행. 책 한 권은 꼭 읽고 오겠다 다짐했다. 가볍게, 그리고 조금은 낭만을 챙길 수 있는 책을 찾다 문득 이전에 추천받았던 책이 떠올랐다. 남녀가 만나고 행복해하다가 헤어지고,, 뭐 그런 내용이라고 했다. 특별함을 찾기 힘든 플롯이었지만 나는 언젠가 이 책을 꼭 읽고 싶었다. 분석적으로 생각해 본 적은 없지만 저자가 좋아하는 단어인 '노스탤지어'에 젖어있던 적이 많았기 때문이 아니었을까. 지난 1년 여러모로 그런 시간들이 많았다. 최고로 행복한 한 해였지만 공허함을 지울 수 없었다. 그렇게 여행 중 시간이 날 때마다 책을 꺼내 읽었다. 기차에서도, 카페에서도, 바닷가에서도 조금씩 꺼내 읽었다. 플롯은 흔하디 흔했지만 안의 내용은 그렇지 않았다. 일상 속 미묘한 무언가를 마음 속..
데이블럭 회고 - 하루 24개의 블럭을 가치있게 쌓아나가는 방법
·
프로젝트 일지
프로덕트 디자이너에서 iOS 개발자로서의 걸음마를 뗄 수 있었던 첫 번째 개인 프로젝트 회고입니다.참여 인원 : 개인 프로젝트역할 : 기획 / 디자인 / 개발기여도 : 100%프로젝트 기간 : 2023.03.01 - 2024.01.11(약 10개월)기술 스택 : UIKit / CoreDataGithub : DayBlock - GithubAppStore : DayBlock - AppStore앱 소개하루 24개의 블럭을 가치있게 쌓아나가는 방법, DayBlock 데이블럭과 함께해요!"내가 얼마나 생산성 있는 시간들을 보냈을까?"우리 모두는 하루를 다양한 시간으로 채워가고 있어요.그중 기록하고 싶은 시간들을 블럭으로 만들고 쌓아가다 보면노력과 열정의 흔적을 데이블럭에서 확인할 수 있을 거에요.생산성 트래킹30..
Xcode 유닛 테스트 에러 - There is no scheme and/or test plan that contains every test you are trying to run
·
트러블슈팅
🤨 문제 정의PR 머지 후 브랜치를 옮겨서 작업할 때마다 아래 오류가 발생합니다. 아주 원초적인(?) 해결 방법으로는 UnitTest Target을 삭제 후 다시 만들어주면 되긴 하지만,,, 이렇게 하는 작업이 워낙 귀찮은 일이기도 해서 트러블슈팅 해보려 합니다! 🪓 삽질 기록1. 분명 Autocreated 된 Test Plan이 있었는데,,?유닛 테스트가 잘 돌아갈 때만 하더라도 TestPlan을 따로 만들어주지 않아도 자동 생성되었었는데,,, 자동 생성된 UnitTest가 없어져버렸습니다. 오른쪽 패널을 보면 어딘가 분명 테스트가 남아있긴 한데 말이죠! 2. 명시적으로 Test Plan 생성해주기Autocreated 된 TestPlan에 아무것도 안떠 있길래 상단의 `Configurations` ..
어른의 국어력 - 본질적 가치에 집중하기
·
생각을 담은 독서
나의 국어력은 어떤 상태일까. 나는 어른이라 할 수 있는가? 잘 읽고, 잘 말하고, 잘 듣고, 잘 쓰고 있는가? 참된 어른이라고 하기엔 모자람이 큰 것 같다. 그러니 인정하고 국어력을 갈고닦기 위해 노력해야 할 것이다. 그게 어른이 되어가는 길이 아닐까. 잘못을 인정하고 내 삶의 본질적인 가치에 집중하는 것, 그것이 이 책의 전부라 느꼈다. 요즘 책을 빌려보는 것에 대한 아쉬움이 생겼다. 예전에는 이런 생각이 전혀 없었는데 말이다. 저자의 말처럼 책을 나를 갈고 닦기 위한 도구로 사용하고 싶은데, 깨끗하게 반납해야 하다 보니 생각을 표시하거나 옮겨 적기 힘들다고 느꼈다. 어찌 보면 독서에 대한 내 자세가 조금은 변화했다고 느낀 지점이기도 하다. 예전 나는 왠지 모를 강박에 내 책도 깨끗하게 보려 노력했기..
안전한 놀이터 샌드박스 알아보기
·
내게 필요한 개발 공부
어린 시절 롤러코스터 타이쿤이라는 놀이공원을 만드는 게임을 즐겨했었습니다. 특정 미션을 달성해야 하는 캠페인 모드와 함께 자유롭게 상상력을 발휘할 수 있는 샌드박스 모드가 있었던 것이 기억납니다. 오늘은 iOS의 샌드박스 🏜️ 개념에 대해 알아보려 합니다.(제목을 안전한 놀이터라고 지으니까 괜히 도박장 사이트 같기도 하고,, 이상하네요) 샌드박스 SandBox앱이 손상될 경우 피해를 최소화하기 위해 시스템 리소스와 사용자 데이터에 대한 액세스 제한 기술쉽게 말해 아이들이 다칠까봐 모래 상자 안에서만 놀게 하는 것처럼, 특정 앱이 제한된 공간 내에서만 동작하도록 만든 시스템이라고 생각할 수 있습니다. 샌드박스는 어떻게 제한된 공간 내에서만 동작하도록 만들 수 있을까요? 우선 샌드박스 없이 앱이 설치된 상..
iOS에서 OS 뜯어보기
·
내게 필요한 개발 공부
운영체제 Operation System사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어운영체제는 한번쯤 들어볼 수 있는 단어입니다. 흔히 OS를 이야기할 때 Windows, Linux 혹은 애플 진영에서는 iOS, macOS, iPadOS 등으로 말이죠.쉽게 말해 운영체제는, 사용자가 알기 어려운 하드웨어와 소프트웨어를 쉽게 상호작용 할 수 있도록 돕는 소프트웨어입니다. 하드웨어를 다루기 위해 우리가 직접 기계어로 명령하거나 자원 분배를 해주지 않아도 되는 것은 모두 OS 덕분이라고 할 수 있습니다. 운영체제의 역할1. 자원 관리CPU 스케줄링: 여러 프로세스가 CPU를 사용할 때 효율적으로 CPU를 배분메모리 관리: 프로세스가 사용할 메모리를 관리하..
고민하고 나아가기
·
꾸준히 글쓰기
본격적으로 취준을 시작한 지 2달이 지났다.이제는 하루 루틴이 꽤나 안정적으로 흘러가는 것 같다. 여전히 모든 준비에 끝이 없다는 사실이 막막할 때가 있지만내가 해야할 행동이 무엇인지는 알고 있기에커피로 잠을 달래며 컴퓨터 앞에 앉아있게 된다. 공부가 재밌기도 하다.내가 무언갈 만들기 위해 기반을 닦는다고 생각이 들 때면개발을 시작하길 참 잘했다는 생각도 함께 온다.내 생각을 세상에 내놓는 것은 내 삶의 이유 중 하나이기 때문이다. 취업에 대한 조바심이 없다고 이야기할 순 없지만본질적으로 무엇을 향해 가는가에 대해 고민하다 보면지금 이 순간을 잘 활용할 수 있을 것이다. 늘 나와 나를 사랑해 주는 사람을 믿고, 앞으로 나아가자.
스마트폰의 CPU, AP 알아보기
·
내게 필요한 개발 공부
우리가 사용하는 스마트폰에도 CPU가 달려있습니다. 하지만 보통 스마트폰에서는 CPU라고 하지 않고, AP라고 부르곤 합니다. 특히 아이폰에서는 A17, A18칩 등의 이름으로 알려져 있죠. CPU와 AP는 비슷하지만 분명 다른 개념입니다. Application Processor스마트폰, 태블릿, 임베디드 시스템 등의 모바일 기기에서 사용되는 프로세서를 의미합니다.AP는 쉽게 말해 CPU 역할만 하는 것이 아닌 모바일 환경에서 필요한 다양한 연산과 처리를 수행하는 핵심 프로세서의 역할을 수행합니다. 컴퓨터는 내부 크기가 스마트폰에 비해 널널하기 때문에 부품 크기에 제약을 상대적으로 덜 받습니다. 하지만 스마트폰의 경우 부피를 줄이는 것이 중요하기 때문에 다양한 역할을 한 칩으로 줄여야만 하는 것이죠!그래..
캐플 리팩토링 네 번째 이야기 - Repository 모듈 만들기
·
프로젝트 일지
애플 디벨로퍼 아카데미에서 진행한 프로젝트, 캐플 Qapple 리팩토링 작업의 네 번째 이야기입니다.캐플은 애플 디벨로퍼 아카데미 @POSTECH 3기, TEAM QAPPLE에서 시작한 프로젝트로아카데미 러너들과 익명으로 소통할 수 있는 커뮤니티 서비스입니다! 🍎 AppStore 다운로드하기어느덧 캐플 리팩토링 작업이 마무리되어가고 있습니다. TCA를 이용한 비즈니스 로직, 화면 구현 모두 99% 이상 완료되었습니다. 이제는 슬슬 전체 리팩토링 회고 시간을 팀끼리 가지려고 했으나,,, 했으나,,, API 통신을 위한 Repository 모듈화까지 끝내놓고 4기 출시 이후 진행하는 걸로 결정이 났습니다. 생각보다(?) 순조로웠던 리팩토링이기도 했고 아직까지 큰 문제를 겪지 못해 이야기할 거리가 덜 쌓인 ..
Intel Mac과 M1 Mac이 달랐던 이유
·
내게 필요한 개발 공부
제게 아키텍처라 함은 MVC, MVVM, 클린 아키텍처와 같은 소프트웨어 설계 원칙에 가까운 것들입니다.(뇌까지 개발로 가득 차버렸어!) 하지만 오늘 다룰 주제는 CPU의 아키텍처입니다. 복잡한 내용은 아니니 가볍게 포스팅해 보겠습니다! CPU와 프로그램이 소통하는 방법컴퓨터 세상은 0과 1로 이루어져 있습니다. 아주 옛날이야 사람이 직접 0과 1을 적어가며 컴퓨터 명령어를 써 내려갔겠지만 현재는 그렇지 않습니다. 어셈블리어부터 상위 레벨 언어까지 사람이 읽고 쓰기 쉬운 형태로 발전되어 왔죠. 그러나 컴퓨터 세상이 0과 1로 이루어져 있다는 사실은 변함이 없습니다. 그 말인즉슨, 우리가 열심히 Swift나 Python 등으로 코드 작성 후 빌드 버튼을 누르면 컴파일러나 인터프리터에 의해 기계어로 변환되는..
환경 변수가 값을 못 불러오는 현상 해결하기
·
트러블슈팅
🤨 문제 정의캐플 프로젝트의 자동 로그인 기능에 이상이 생겨 살펴보던 중 이해할 수 없는 현상이 발생했습니다. Xcode로 빌드할 때는 API 통신이 잘되고, 앱을 껐다 다시 키면 API 통신이 모두 먹통이 되는,,,? 어떻게 디버깅 해야 할지도 막막한 상황이 발생했습니다. 🪓 삽질 기록1. API 오류?API 오류인가 싶어 네트워킹 오류 Alert에 error 문자열을 출력해봤습니다. API 통신을 담당하는 QappleRepository 모듈에서 발생한 에러로 SecretKey 값 설정이 잘못되었다고 하네요! 문제는 왜 처음 Xcode로 빌드할 때는 잘되냐는,,,거였습니다. 캐플의 BaseURL, Port Number 등 민감한 정보는 모두 scheme의 Environment Variables로 관..
작지만 빠른 친구 캐시 알아보기
·
내게 필요한 개발 공부
지난 시간 CPU와 메모리 사이의 데이터 교환 방식을 알아보며 이 과정은 비용이 많이 드는 작업임을 알 수 있었습니다. 그 사이에서 효율적인 데이터 사용을 위한 조력자, 캐시에 대해 알아보려 합니다. 캐시 CacheCPU와 RAM 사이에 위치한 고속 기억 장치로, 데이터 전송 속도를 높이고 시스템 성능을 향상시키는 역할역할: `CPU와 RAM 간의 속도 차이로 발생하는 병목현상을 완화`해 성능을 향상시키는 역할속도: CPU 다음으로 빠른 메모리로, `RAM보다 훨씬 빠른 접근 속도`를 제공합니다.용량: RAM에 비해 `용량이 작지만, 자주 사용되는 데이터를 저장`합니다.위치: CPU와 RAM 사이에 위치하여 `데이터 전송의 중개자 역할`을 합니다.계층 구조: L1, L2, L3 등 여러 단계로 나뉘며, ..