ios 6

방치된 앱을 리팩토링해 앱스토어에 출시하기까지

1. 시작 - 공모전 앱에서 시작된 프로젝트 iOS를 학습한 초반, 스토리보드를 사용해 간단한 앱을 만든 적이 있다. 이 앱은 공모전을 위해 단 2주 만에 개발된 프로젝트였다.기능은 국회 공공 API를 활용해 특정 날짜에 발의된 법안을 조회하고, 관심 있는 법안을 즐겨찾기하는 것이었다. 하지만 공모전에서는 탈락했고, 이후 앱은 방치되었다.그러다 2025년이 되면서, “앱을 다시 리팩토링해 앱스토어에 등록해 보자!“라는 목표가 생겼다. 그렇게 앱을 다시 열어본 순간…“내가 이런 코드를 짰다고?”“도대체 무슨 생각으로 이걸 만들었지?” 처음 만든 앱이라 코드 품질이 너무나도 형편없었다.결국, 처음부터 다시 뜯어고치기로 마음먹었다. 2. 리팩토링 과정 (1) 스토리보드를 코드 기반 UI로 변경 처음 작업한 것..

Swift 2025.02.26

Swift - Closures

개념클로저는 코드에서 전달하고 사용할 수 있는 자체 포함된 기능 블록입니다. 클로저는 정의된 컨텍스트에서는 모든 상수, 변수에 대한 참조를 캡처 하고 저장할 수 있습니다. 이는 해당 상수와 변수를 닫는 것으로 알려져 있습니다.- 전역 함수는 이름이 있고 어떤 값도 캡처하지 않는 클로저- 중첩 함수는 이름이 있고 둘러 싸는 함수에서 값을 캡처할 수 있는 클로저- 클로저 표현식은 주변 컨텍스트에서 값을 캡처 할 수 있는 경량 구문으로 작성된 이름 없는 클로저즉 함수도 클로저 입니다. 클로저 표현식클로저 표현식은 간단하고 집중된 구문으로 인라인 클로저를 작성하는 방법 입니다.명확성이나 의도를 잃지 않고 단축된 형식으로 클로저를 작성하기 위한 여러 구문 최적화를 제공합니다.{ (parameters) -> in..

Swift 2024.08.18

SOLID와 객체지향의 사실과 오해 독서 후기

SOLID 란?SOLID는 객체지향 프로그래밍 및 설계에서 소프트웨어의 구조를 개선하고 유지 보수성을 높이기 위한 다섯 가지 원칙의 약자입니다.각 원칙은 코드의 결합도를 낮추고 응집도를 높여 시스템의 유연성과 확장성을 향상시키는 것을 목표로 합니다. S : SRP 단일 책임 원칙(Single Responsibility Principle)O : OCP 개방- 폐쇄 원칙 (Open/Closed Principle)L : LSP 리스코프 치환 원칙 (Liskov Substitution Principle)I : ISP 인터페이스 분리 원칙 (Interface Segregation Principle)D : DIP 의존 역전 원칙 (Dependency Inversion Principle)이제 이 원칙들을 자세히 살펴..

카테고리 없음 2024.08.03

F-Lab iOS 수료 후기

오늘은 제가 F-Lab iOS 코스를 마무리하면서 회고를 해보려고 합니다. 신청하게 된 이유먼저 저는 이전에 테킷 앱스쿨이라는 부트캠프를 수료한 상태였습니다. 하지만 앱스쿨에서는 노베이스인 분들도 많고, 그분들과 같은 수업을 들으며 심화된 내용을 배우는 데 한계가 있었습니다. 또한 SwiftUI 중심으로 학습했기 때문에 UIKit을 좀 더 집중적으로 배우기 위해 멘토링을 신청했습니다.시작하게 된 계기멘토링을 시작하게 된 가장 큰 이유는 기존의 Swift 프로젝트들이 아쉬움이 많았기 때문입니다. 혼자서 개발한 프로젝트들은 코드가 뒤죽박죽이고, 내가 작성한 코드조차 이해하기 어려웠습니다. 그래서 멘토링을 통해 이러한 문제를 해결하고 싶었습니다. 멘토링을 진행 하면서멘토링을 시작하면서 기존 프로젝트를 리팩터링..

Swift 2024.07.27

클린아키텍처 적용해보기 in iOS

이전에 클린아키텍처에 대한 저의 생각을 적어 보았습니다. 그럼 이번에는 프로젝트에 직접 적용해 보도록 하겠습니다.https://www.canva.com/design/DAGF2OC79uc/WQkKSiTJWpftVdkyoyOq2Q/edit전체적인 다이어그램 설계는 Canva를 통해 했으며 아직 프로젝트의 일부인 레시피를 서버에서 fetch해서 보여주고 검색어를 입력하여 특정 레시피를 화면에 보여주는 기능만 먼저 설계해 보았습니다.  먼저 Presentation레이어 입니다.Presentation레이어는 전체적인 UI 요소와 Interactor로 받은 결과물들을 Mapper를 통해 해당 UI에 맞는 요소들로 맵핑한 뒤 ViewController를 통해 화면의 구성을 구성합니다. 다음은 Doamin 레이어 입니..

Swift 2024.06.30

내가 생각하는 Clean Architecture - in iOS

항상 iOS 개발자의 모집 공고를 보면 Clean Architecture에 대한 설계와 디자인 패턴 적용 경험이 있으면 좋다는 것을 보면서 Clean Architecture가 무엇인지 궁금해서 먼저 찾아보게 되었습니다.  많은 구글링과 유튜브를 찾아보면서 Clean Architecture가 무엇인지에 대해 알아보려고 하였습니다. 하지만 항상 비슷한 내용의 블로그 글들뿐 제가 이해력이 부족해서인지 Clean Architecture에 대해 명확하게 무엇인지에 대해 잘 이해하지 못하였습니다. 특히 항상 보이는 그래프와 함께 설명되는 주요 개념들을 이해하기 어려웠습니다   출처: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.ht..

Swift 2024.06.19