본문 바로가기

iOS/develop log10

🚀 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.
🚀 머플러 리팩토링 - 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감자의 파란만장한 로그인 구현기 1. 로그인 구현의 시작 ( feat. 로그인 구현할 때 알아야 할 것들.) 이번 포스팅은 설명을 중심보다는 기록이 중심입니다.로그인을 구현하시는 다른 iOS 개발자분들에게 제 삽질과 기록이 도움이 되길 바라며...🍀 1. 내가 로그인을 하라구..?머플러라는 대형 프로젝트를 진행 중이다.머플러는 소비목표를 달성하게끔 도와주는 iOS 어플로, 담당 역할은 원래 소비등록, 마이페이지 였다.우리 팀의 목표는 최종적으로 앱스토어에 앱을 출시하는 것인데, 로그인을 담당한 분이 중간에 빠지게 되어서 로그인 관련 모든 걸 내가 맡게 되었다. 다른 분들은 맡은 기능을 구현하는데에도 시간이 없으셨기 때문에 어쩔 수 없었던 부분이다. 컴공 졸업생인데 어떻게 로그인을 구현을 안 해봤나? 궁금할 수 있지만, 이 전까지는 프로젝트를 하더라도 출시까지 가는 일이 거의 없었다.거의 모든 프로젝트에서 기능.. 2024. 7. 7.
내가 만들고 싶은 앱, 회고 정리 앱 PlanZ 맨날 이렇게 노션에 회고를 하고 있는데, 이렇게 가내 수공업처럼 일일이 밑줄치는 게 쉬운 일이 아니다.이걸 알아서 정리해주고 회고 템플릿을 주는 앱.이 있다면 얼마나 좋을까?플랜 z.. 다시 부활시켜야 하나? 2024. 7. 1.
[DAY 1] 오늘 뭐 먹지? 내 고민을 해결해주는 앱, TODAY EATS 안녕하세요! 개발감자입니다! 항상 오늘 뭐 먹지? 고민하는 시간을 가집니다. 항상 이런 고민을 하는 저는 이 고민을 해결해주는 앱을 직접 만들어보기로 결심했습니다. 'TODAY EATS'는 매일 무엇을 먹을지 고민하는 우리들의 딜레마를 해결해 줄 앱이에요. 오늘은 앱의 기획과 디자인을 마쳤습니다. 오후 11시부터 디자인 하기 시작했는데 벌써 오전 7시가 되었네요! 피그마를 통해 앱의 디자인을 설계하였고, 네이버 지도의 필터에서 디자인 영감을 많이 받아 제작되었습니다. 직관적이고 사용자가 쉽게 접근할 수 있도록 심플하지만 기능적인 것에 중점을 두었습니다. 주요 기능 0) 로그인 사용자의 편의성을 위해 네이버와 애플 로그인 기능을 통합했습니다. 1) 마이페이지 사용자의 로그인 정보를 확인할 수 있습니다. '.. 2024. 3. 8.
한 달 간의 iOS 개발 회고록 (24/1/10 -24/2/8) 현재 UMC라는 동아리에서 프로젝트 진행하고 있다. 이 동아리는 약 3개월간 스터디를 진행하고 다음 1-2개월 동안은 프로젝트를 완성하기 위해 협업을 한다. 우리 팀은 1월 부터 협업을 하기 시작했으며 현재 api 연결을 진행하고 있는 상황이라 한 85퍼센트 정도는 완성되었다고 보면 된다. 우리 팀은 데모데이 이후 출시하는 것을 목표로 하기 때문에, 실질적으로 사용자가 사용할 수 있는 앱을 개발해내야 한다. (나 역시 사용자에게 제공할 수 있을 만한 퀄리티의 프론트를 개발해내야 한다는 뜻이다..) 본격적인 글을 시작하기에 앞서 개발 결과물을 공유한다...! 마이페이지, 소비등록, 카테고리 구현 영상 1. 프론트 개발 시작 1/10일부터 개발을 시작했다. 나는 가장 먼저 나온 화면인 소비등록 화면을 맡았다.. 2024. 2. 8.
[iOS] 머플러 프로젝트 시작 (UMC, 노스토리보드, UI kit) 맥북을 산지 이제 4개월 정도되었고, iOS를 개발할 수 있게 되어 UMC에 지원하여 스터디를 진행하였다. 하나의 강의를 다 들으며 스터디를 완료하였고, 머플러라는 프로젝트를 시작하게 되었다. 강의에서는 스토리보드를 주로 사용하여 UI를 구현했는데, 이번 프로젝트에는 노스토리보드와 UI kit를 활용하여 개발할 예정이라고 한다. 개발감자의 파란만장한 iOS 개발 도전기를 시작한다!! 개발자들과 협업을 위한 깃허브 이해도 해야하고, iOS 운영체제에 대한 깊은 이해도 필요한 것 같다. 일단은 깃허브 연결 완료 개발환경 세팅 완료하였다. 한 달 동안 개발해서 완성할 수 있길 바라면서 화이팅해보자구!!! 2024. 1. 10.