0Hooni DevLog

[Swift] 실시간 협업 편집에서 동시 편집 충돌 해결하기

PhotoGether는 최대 4명이 동시에 접속하여 실시간으로 함께 사진을 편집할 수 있는 iOS 앱입니다. WebRTC를 기반으로 한 P2P 연결을 통해 참가자들이 같은 화면을 보면서 스티커 추가, 이동, 삭제 등의 편집 작업을 동시에 수행할 수 있습니다. 마치 Google Docs에서 여러 명이 동시에 문서를 편집하듯이, PhotoGether에서...

[UIKit] Bundle을 이용한 이미지 로딩 문제 해결하기

Bundle을 이용해 앱 내부 리소스에서 이미지를 로드하는 과정에서 UIImage(data: )를 이용했을 때 이미지가 정상적으로 표시되지 않는 문제가 발생했다. 해당 문제를 해결하기 위한 트러블 슈팅 과정에서 Bundle에 대한 이해가 필요했고, 최종적으로 문제의 원인이 SVG와 PNG의 차이점에서 비롯된 것임을 알 수 있었다. 이 글에서는 문제...

[UIKit] UIKit에서의 MVVM은 왜 쓰는것일까?

부스트캠프에서 3~4주차 스프린트를 진행하는 동안 정말 다양한 사람들의 코드를 볼 수 있었다. 그러던중 UIKit에서 MVVM 패턴을 사용하는것을 보기도 했고, 이번 5~6주차 스프린트 팀원과 같이 모각코를 하던중 MVVM 패턴을 이용해서 설계한다는 말을 들으면서 사람들은 왜 UIKit에서 권장하는 MVC를 뒤로하고 MVVM을 선택하는지, MVC의 문...

[UIKit] Storyboard reference로 연결되면서 Tabbar의 Item이 설정되지 않는 문제 해결하기

팀 동료와 미션 수행한 내용을 공유하는 과정에서 스토리보드도 파일 분리를 할 수 있다는 것을 알게 되었다. 그래서 기존에 Main.storyboard에서 관리되고 있던 스토리보드 컴포넌트들을 별도의 파일로 분리를 했었다. 그런데 이 과정에서 Tabbar의 아이템들을 설정하던 코드가 정상 작동을 하지 않았다. 이전의 스토리보드는 Main에 있고 하...

[CS] 테스팅의 목적과 좋은 테스팅이란

요즘 테스트코드를 작성하는 횟수가 부쩍 많이 늘어났다. 처음에는 테스트코드를 짜는게 마냥 막막하고 어려웠는데, 지금은 금방금방 만들어내고 있다. 그런데 나 혹시 지금 좋은테스팅을 하고 있는게 맞을까? 예전에 학교에서 오픈소스응용프로그래밍이라는 강의를 들은적이 있다 (개인적으로 내 인생 강의) 그 당시 교수님이 프로젝트를 팀으로 진행하도록 하면서...

[Swift] Struct와 Class를 선택하는 애플의 기준

여러개의 자료형들을 묶어 하나의 타입으로 만드는 방법의 대표적인 방법에는 Struct와 class가 있다. 평소 Class를 사용하는것이 익숙해서 자주 이용을 하는데 이번에 이 둘의 차이에 대해 알아볼 계기가 생겨 조사할 겸 포스팅을 남겨볼까 한다. 🍏 우선은 개발자 문서 가장 먼저 살펴본것은 애플 개발자 문서인데 이 둘의 선택을 할때에 대해 간략...

[UIKit] ViewController의 생명주기와 콜백 타이밍

뷰의 라이프사이클은 앱을 생성할 때 가장 먼저 보이는 것중 하나이다. 언제 나오냐고요? 여러분이 바로 앱을 생성하자마자 나오는 코드중 ViewDidLoad()함수가 뷰 라이프사이클을 관리하는 함수 중 하나이다. 그만큼 뷰의 생명주기에 대해서 이해하는 것은 앱을 설계하는데 있어서 중요한 요소중 하나이고, 오늘은 이 ViewController의 생명...

[부스트캠프 웹・모바일 9기] 챌린지 수료 후기 - iOS

🤔 Who am I 아마 부스트캠프에 대해 후에 찾아보는 사람들은 그 사람의 부캠 이전의 스펙? 포토폴리오가 어땠는지 궁금해할것같다. 그래서 내가 이 챌린지 과정을 시작하기 전에는 어땠는지 나 스스로도 떠올릴겸 써보려 한다. 나는 누구였나. 대학교 4학년때까지 유료 부트캠프(라이징캠프 11기 수료생) 1회와 졸업프로젝트가 끝이었다. 실상 S...

[부스트캠프] 챌린지 3주차 회고

💬 3주차 주절주절 이번주는 부스트캠프의 커리큘럼 상 팀으로 하는 것이 많았다. 팀으로 진행을 하다보니 자연스럽게 소통을 자주 하게 됐다. 평소 본인은 소통을 잘 한다 생각했는데, 이번 팀 세션을 진행하면서 조금 느꼇던 점들이 있었다. 핵심은 ‘소통만 잘하지 말자’ 였다. 첫 팀 세션때 같이 팀이 되셨던 분이 있었는데, 이번 부스트캠프를 진행하면...