2023년부터 2년 간 iOS 개발을 공부하며 혼자가 아닌 함께 성장하는 개발의 중요성을 배워왔습니다.
복잡한 흐름을 단순하게 정리하고, 다음 사람이 부담 없이 수정할 수 있는 구조를 만드는 데 집중합니다.
혼자 잘하는 개발보다 함께 오래가는 코드를 지향합니다.
Posts.
[iOS] Combine 구조를 async/await으로 전환하기 (Swift 6)
라이빗에서는 서버 통신을 위한 Network 모듈을 개발하는 과정에서 비동기 처리를 구현하기 위해 Combine 프레임워크를 사용했는데요. 이번에 Swift 6이 발표되며 async/await에도 많은 변화가 생겼고, Network 모듈 구조를 async/await으로 리팩토링하게 되었습니다. 오늘은 왜 Combine이 아닌 async/await을 선택했는지, 어떻게 전환했는지에 대한 과정을 설명드리고자 합니다.
라이트 팬층을 위한 내한 공연 서비스, 라이빗은 어떻게 시작되었나요?
안녕하세요, 라이빗 서비스 기획과 팀 매니징을 담당하고 있는 PM 이유진입니다.
기획자로서 **라이빗은 어떤 서비스이며 어떻게 시작하게 되었는지, 팀이 어떻게 꾸려지게 되었는지**에 대해 소개드리려 하는데요!
이번 글에서는 **기획 동기와 구체화 과정, 팀 구성 과정** 등 **6개월 간의 여정**을 이야기처럼 풀어볼 예정입니다.
[Git] Fast-Forward Merge, 3-Way Merge 알아보기
이번에 교내 동아리에서 Git 관련 교육 자료를 작성하면서 Fast-Forward merge, 3-Way merge에 대한 내용을 다뤘다. Git을 사용하는 사람들이 알아두면 좋을 내용인 것 같아서 벨로그에도 공유해보기로 했다.
[RxSwift] RxSwift와 Observable, Disposable 이해하기
RxSwift를 이해하기 위해서는 먼저 반응형 프로그래밍을 이해하면 좋다. 반응형 프로그래밍은 데이터의 흐름과 변경 사항을 전파하는 데에 중점을 둔 프로그래밍 패러다임이다.
[꾸물꿈] MVVM, Observable Pattern 도입 후기 - 1
꾸물꿈 프로젝트를 진행하기 전 프로젝트를 여러 번 진행해봤지만 MVVM 패턴을 도입해서 프로젝트를 진행했던 경험은 없었다. MVVM 패턴이라는 이름 자체에서 오는 진입장벽이 있기도 했고, 일단 MVC로 프로젝트를 완성한 후에 MVVM으로 프로젝트를 리팩토링 해야겠다고 마음만 먹다가 완성도 전에 프로젝트가 종료된 적이 많았기 때문이었는데 ... 그래서 이번 프로젝트에서는 무조건 MVVM을 도입해야겠다는 마음이 있었다.
[Honzapda] 디자인 회고
혼잡다 Honzapda는 카페의 실시간 혼잡도 제공에 초점을 맞춘 카페 정보 제공 애플리케이션으로, 혼잡도 정보 제공뿐만 아니라 오늘의 카페 추천 등 큐레이션 서비스도 제공한다. (5월에 런칭 예정 ... 소곤소곤)
이번 글에서는 데모데이가 끝난 기념으로 전체적인 프로젝트와 디자인으로 참여한 회고를 적어보려고 한다!
[Swift] 백준 2805번: 나무 자르기
이분 탐색을 이용한 문제다.
이분 탐색을 위해 `left` 와 `right` 변수를 선언한다. 이 때 `left` 는 1, `right` 는 나무의 높이 중 가장 큰 값으로 선언했다. `left` 를 나무의 높이 중 가장 작은 값이 아닌 1로 선언하는 이유는 다음 케이스를 보면 알 수 있다.
[Swift] 백준 11726번: 2×n 타일링
처음에는 팩토리얼을 써서 풀어보려고 했다. 너비가 2인 타일의 개수를 for문을 이용해 점점 증가시키며 구하고, 그에 맞는 너비가 1인 타일의 개수를 구한 후 같은 것이 있는 순열을 이용해 result에 더해주는 식으로 풀었는데 런타임 에러가 났다.
다시 찾아보니 수가 커지면 Int 범위를 벗어나기 때문에 런타임 에러가 난다고 한다. 애초에 팩토리얼을 써서 풀면 시간 초과가 나는데 런타임 에러가 나 준 덕분에 삽질을 초기에 멈출 수 있었다 (...)
[Swift] 백준 1269번: 대칭 차집합
스위프트의 차집합을 계산해주는 `.substarcting()` 메소드를 이용하면 아주 쉽게 풀 수 있는 문제다.
집합 A-B의 수와 집합 B-A 각각의 원소 수를 더해주면 되는 문제!
[SwiftUI Masterclass 2023] Section 7 정리
UIKit에서도 터치 이벤트를 다루는 메소드가 있었는데 SwiftUI에서는 `.onTapGesture` 가 그 역할을 한다. 파라미터로는 `count` 와 `perform` 이 있는데, `count` 는 `view` 를 몇 번 터치했는지, `perform` 은 그 경우 발생하는 `action` 을 정의한다.
[SwiftUI Masterclass 2023] Section 8, 9 정리
SwiftUI는 그라데이션도 적용할 수 있다! 짱이다 colors 배열 안에 적용할 그라데이션들의 색을 순서대로 써주면, startPoint 방향에서 endPoint 방향으로 그라데이션이 적용된다. UIKit 쓸 때 안드로이드에는 그라데이션 구현이 있는데 iOS는 없는 것 같아서 슬펐는데 ... 기쁘다
[SwiftUI Masterclass 2023] Section 6 정리
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.