분류 전체보기111 🚀 iOS 모달 UI 최적화 - 공통 컴포넌트로 유지보수성 향상하기 📌 문제 상황 모달(SelectionModal)을 개발하면서, 중복되는 코드가 많아 유지보수가 어려운 상황이 발생했다.특히, 타이틀과 닫기 버튼이 있는 헤더 부분과 옵션 리스트를 담는 스크롤 뷰가 여러 모달에서 반복적으로 사용되는 문제가 있었다.👉 비효율적인 코드 구조로 인해 발생한 문제점 • 모달마다 같은 헤더 코드가 중복됨 • 옵션 리스트의 동적 크기 조절이 어려움 • 코드가 길어질수록 유지보수가 어려워짐 • 재사용성이 부족해, 기능 확장 시 수정을 반복해야 함 이를 해결하기 위해 공통 요소를 분리하여 유지보수성을 높이고 중복을 최소화하는 구조로 개선했다.🔍 Step 1: 공통 헤더(ModalHeaderView) 분리 기존에는 SelectionModal 내부에서 타이틀과 닫기 버튼을 직접 추가하.. 2025. 2. 20. 🚀 머플러 앱 리팩토링 - 4. Domain Layer와 서비스 구조 설계 머플러 앱 리팩토링의 여정을 이어가는 이번 포스팅에서는 Domain Layer 설계와 서비스 구조를 어떻게 개선했는지 공유합니다. 이전 글에서는 MVVM 전환 과정에서의 시행착오와 뷰 중심의 플로우 차트 작성, 그리고 구조적 개선의 필요성에 대해 다뤘습니다. 이제 그 과정을 구체화하면서, 머플러 앱의 복잡한 로직을 효율적으로 관리하기 위한 핵심 구조를 설명하겠습니다. 📌 1. 플로우 차트 작성 후, 도메인 설계의 중요성플로우 차트를 그린 후, 가장 중요한 부분이 도메인 로직을 먼저 설계하는 것이라는 결론에 도달했습니다.기존에는 UI와 기능 구현 위주로 개발을 진행했지만, 이번 리팩토링에서는 핵심 비즈니스 로직을 중심으로 설계하는 접근 방식을 채택했습니다.도메인 설계를 진행하면서 놀라웠던 점은, 생각보다.. 2025. 2. 11. 🚀 머플러 리팩토링 - 3. MVVM 전환 과정에서의 고민과 새로운 접근 🚀 머플러 리팩토링 - 2. MVC에서 MVVM으로의 전환 (feat. swiftLint)머플러 리팩토링 - 1. 리팩토링 계획 세우기 (레거시 코드 정리)머플러, 초심으로 돌아가는 설 연휴 프로젝트머플러 앱, 잊혔지만 잊혀지지 않은 첫 프로젝트 약 8개월 전, iOS 앱스토어에 출시한qkrrmsdud.tistory.com 머플러 리팩토링 2에서는 MVVM 아키텍처로 뷰를 전환하는 계획을 세웠지만, 실제로 작업을 진행하면서 많은 시행착오를 겪고 있다는 생각이 들었습니다. 약 4시간의 작업 끝에 뚜렷한 성과를 얻지 못하면서, 과연 지금의 방식이 최선인지 고민하게 되었습니다. 단순한 함수 정리의 한계물론 뷰를 정리하는 것 자체에는 의미가 있습니다. 하지만 전체적인 관점에서 봤을 때, 단순히 함수를 분리하고.. 2025. 2. 10. 🚀 머플러 리팩토링 - 2. MVC에서 MVVM으로의 전환 (feat. swiftLint) 머플러 리팩토링 - 1. 리팩토링 계획 세우기 (레거시 코드 정리)머플러, 초심으로 돌아가는 설 연휴 프로젝트머플러 앱, 잊혔지만 잊혀지지 않은 첫 프로젝트 약 8개월 전, iOS 앱스토어에 출시한 머플러는 UMC 동아리에서 진행했던 첫 번째 iOS 프로젝트였습니qkrrmsdud.tistory.com 머플러 프로젝트의 리팩토링을 진행하면서 가장 먼저 손을 본 것은 아키텍처의 변화였다. 기존 코드베이스는 MVC(Model-View-Controller) 패턴을 따르고 있었지만, 여러 가지 한계를 보였다. 특히 ViewController가 지나치게 비대해지고, 비즈니스 로직과 UI 코드가 섞여 있어 유지보수성과 테스트 용이성이 떨어졌다. 이에 따라 MVVM(Model-View-ViewModel) 패턴으로 전환.. 2025. 2. 1. 🚀 머플러 리팩토링 - 1. 리팩토링 계획 세우기 (레거시 코드 정리) 머플러, 초심으로 돌아가는 설 연휴 프로젝트머플러 앱, 잊혔지만 잊혀지지 않은 첫 프로젝트 약 8개월 전, iOS 앱스토어에 출시한 머플러는 UMC 동아리에서 진행했던 첫 번째 iOS 프로젝트였습니다. 당시 팀에 속한 디자이너분이 멋진 UI 디자qkrrmsdud.tistory.com 레거시 코드, 어디서부터 정리해야 할까? 레거시 코드 정리는 모든 개발자에게 피할 수 없는 숙제다. 유지보수가 어려운 코드가 점점 쌓이면, 결국 기술 부채로 이어지고 프로젝트의 성장 가능성을 제한하게 된다. 이번에 나는 머플러 프로젝트의 레거시 코드를 정리하기로 결심했다. 8개월 전에 UMC 동아리에서 4명의 iOS 개발자가 함께 진행한 프로젝트로, 당시 앱스토어에 성공적으로 출시했지만 이후 관리되지 않은 상태였다. 이제 내.. 2025. 1. 29. 🚀 머플러, 초심으로 돌아가는 설 연휴 프로젝트 머플러 앱, 잊혔지만 잊혀지지 않은 첫 프로젝트 약 8개월 전, iOS 앱스토어에 출시한 머플러는 UMC 동아리에서 진행했던 첫 번째 iOS 프로젝트였습니다. 당시 팀에 속한 디자이너분이 멋진 UI 디자인을 뽑아준 덕분에 애정을 담아 즐겁게 개발할 수 있었습니다. 한 달 간의 iOS 개발 회고록 (24/1/10 -24/2/8)현재 UMC라는 동아리에서 프로젝트 진행하고 있다. 이 동아리는 약 3개월간 스터디를 진행하고 다음 1-2개월 동안은 프로젝트를 완성하기 위해 협업을 한다. 우리 팀은 1월 부터 협업을 하기 시작qkrrmsdud.tistory.com UMC는 약 3개월간의 스터디 이후, 1~2개월 동안 실제 프로젝트를 완성하며 협업을 경험하는 개발 동아리입니다. 우리 팀은 올해 1월부터 본격적.. 2025. 1. 27. [iOS] CoreData 개념 및 활용예제 네이버 부스트캠프 프로젝트를 진행했을 때, 공부했던 CoreData입니다.친절한 설명을 해주는 블로그를 찾지 못해, 혼자 정리해보았습니다. 도움이 되었으면 좋겠습니다! GitHub - boostcampwm-2024/iOS06-molio: 나만의 뮤직 포트폴리오, 몰리오 🎶나만의 뮤직 포트폴리오, 몰리오 🎶. Contribute to boostcampwm-2024/iOS06-molio development by creating an account on GitHub.github.com 1. CoreData란?어플리케이션의 데이터 모델을 관리하고 저장하는 것을 도와주는 iOS의 객체 그래프 관리 프레임 워크SQLite 데이터 베이스의 효율성 + 객체 지향 프로그래밍의 장점 → 복잡한 구조를 쉽게 관리하.. 2025. 1. 9. 네이버 부스트캠프 수료, 멤버쉽도 끝났다. 이제 난 어디로? 네이버 부스트캠프 멤버십의 그룹 프로젝트가 마침내 종료되었습니다.사실 프로젝트는 지난 12월 6일에 끝났지만, 짧은 휴식기를 가진 뒤 이렇게 후기를 남기게 되었습니다.수료 선물로 네이버 커넥트재단 측에서는 맨투맨을 선물로 보내주셨습니다. 지금은 마음과 몸 모두 지친 상태라 열어보진 못했지만요.. 그럼 부스트캠프 수료 후기를 자세히? 풀어보도록 하죠.!1. 함께한다는 것의 도전과 배움“백지장도 맞들면 낫다”는 속담처럼, 여러 사람이 힘을 모으면 더 큰 성과를 낼 수 있습니다. 그러나 팀 프로젝트가 많은 사람들이 힘들어하는 이유도 바로 여기에서 비롯됩니다. 팀 프로젝트란, 서로 다른 사람들이 하나의 목표를 향해 나아가는 과정입니다. 하지만, 팀원들 모두가 같은 방향을 바라보고 마음을 일치시키는 일은 결코 쉽.. 2024. 12. 28. 네이버 부스트 캠프 멤버쉽 8주차 회고, 벌써 그룹 프로젝트라니 😇 네이버 부스트캠프 멤버쉽의 과정 중 학습 스프린트(8주)간의 과정이 끝났습니다.🥹지금은 그룹 프로젝트의 팀빌딩을 앞두고 있으며, 인터미션에 작성한 회고입니다.회고를 해보며 부족한 점은 무엇인지 그룹 프로젝트를 준비하면서 어떻게 재정비해야 하는지 작성해보려 합니다.(1-5번까지는 네이버 부스트캠프에서 작성한 회고이고, 6번은 개인적으로 작성한 회고입니다.) 1. 학습스프린트를 진행하며 중 가장 깊게 경험한 것은 무엇인가요? > TOGETHER: 함께 자라기2. 이와 같이 판단한 이유는 무엇인가요? 구체적인 사례나 순간을 적어보세요. 항상 혼자서 공부를 해왔습니다. 다른 페어분들을 네이버 부스트캠프가 아닌 공간에서 모으기도 쉽지 않고, 매주 다른 분들과 함께 고민해보고 이야기해보는 경험은 흔치 않다고.. 2024. 10. 21. UIViewController와 관련 개념 정리: HIG, LifeCycle, ContainViewController, AppDelegate, MVC 안녕하세요, 개발감자입니다. 🥔 UIViewController의 개념과, 관련된 다른 개념들을 정리해보았습니다. iOS 개념들의 관계를 이해하는 데에 도움이 되었으면 좋겠습니다.ViewControllerUIViewController란, iOS 앱에서 뷰 계층을 관리하고, 사용자 상호작용을 처리하는 화면 핵심 제어 객체입니다.자세한 내용은 공식 문서를 참고해주세요! 공식 문서를 번역해놓은 글이 있어 첨부합니다. iOS Developr Documentation : UIViewController (UIKit)안녕하세요! 개발감자입니다.🥔 네이버 부스트캠프 9기를 하며 iOS에 대해서 확실하게 배우고 있습니다. 그러던 중, 멘토님께서 " 웬만하면 블로그보다는 공식문서를 참고하는 게 좋다"라고 말qkrrms.. 2024. 10. 6. iOS Developr Documentation : UIViewController (UIKit) 안녕하세요! 개발감자입니다.🥔 네이버 부스트캠프 9기를 하며 iOS에 대해서 확실하게 배우고 있습니다. 그러던 중, 멘토님께서 " 웬만하면 블로그보다는 공식문서를 참고하는 게 좋다"라고 말씀해주셨습니다. 공식 문서가 다 영어라서 조금은 피하게 되었는데요. 이번 기회에 제대로 읽어보자라는 생각으로, 이번 시리즈를 작성하게 되었습니다. 이 게시글은 아래의 링크의 내용을 번역한 내용입니다. 저처럼 영어에 울렁증이 있는 분들께 도움이 되었으면 좋겠습니다. UIViewController | Apple Developer DocumentationAn object that manages a view hierarchy for your UIKit app.developer.apple.com UIViewController.. 2024. 10. 6. 멤버쉽 4주차 회고, 하얗게 불태웠다..! 부스트캠프의 인터미션도 끝나고, 내일부터 5주차 시작이다.일주일동안 4주간 공부한 내용도 복습하고 정리하려고 했지만 시간이 너무 빠르게 지나가버렸다. 1. GROWTH : 나를 알고 성장하기나는 스스로를 알고 성장하기 위해 노력하는 사람인가요? 이번 미션에서는 멘토님의 리뷰를 받고 이를 적용할 수 있는 기회가 있었습니다. 피드백을 좋아하기 때문에 적극적으로 수용하고, 제 코드에 적용하려고 노력했습니다. 또한, 타인과의 비교보다는 타인의 코드의 성장의 기회로 삼아 많이 참고하고 배울 점을 배우려고 노력했습니다. 타인의 코드를 읽는 과정과 코드 리뷰를 반복하다 보니 코드를 보는 실력도 늘어났습니다.2. INITIATIVE : 자기주도적으로 행동하기나는 자기주도적으로 행동하기 위해 노력하는 사람인가요? 한전된.. 2024. 9. 22. 이전 1 2 3 4 ··· 10 다음