본문 바로가기

전체 글

(87)
[iOS] fastlane을 이용해 배포 자동화하기 안녕하세요 제인입니다 :)오늘은 프로젝트에 fastlane을 도입한 경험을 한번 공유해보려고 합니다!!배포 자동화란?먼저, 배포 자동화가 무엇인지부터 정리하고 넘어가겠습니다!개발 공부를 하다보면 CI/CD라는 단어를 한번쯤 접해보셨을텐데요, 배포 자동화는 CD에 해당합니다.CI/CD는 앱 개발 단계에 자동화를 통합하는 앱 제공 방식으로, 지속적 통합(Continuous Integration)/지속적 제공 또는 배포(Continuous Deployment 또는 Delivery)를 뜻합니다.배포를 자동화 해야하는 이유?그렇다면 배포 자동화는 왜 필요할까요?당연히 배포를 자동화하지 않고, 수동으로 할 수도 있겠죠. 하지만, 수동으로 배포하는 과정은 시간도 오래 걸리고 번거롭습니다. 그리고 만약 이 과정에서 실..
[iOS/Trouble Shooting] 에러처리 잘못해서 DB 날린 썰 안녕하세요 제인입니다 :)개인 프로젝트를 진행하며 기존에 공부했던 기술들을 하나씩 적용해보고 추가로 공부하고 있는데요!이번 게시글에서는 프로젝트를 진행하며 겪은 문제를 하나 공유해보려고 합니다. 시작하기 전, 해당 문제는 휴먼에러에 의해 발생한 문제였기 때문에 해결 과정에서 어떤 대단한 기술을 공부하고 적용한 경험을 공유하기 위한 게시글이 아닙니다. 하지만, 실수로 잘못 적은 코드 한줄이 얼마나 큰 결과를 불러일으킬 수 있는지를 깨달았던 경험이었기 때문에 이를 공유하고 또 해결 과정에서 어떻게 문제 부분을 찾아냈는지 디버깅 방법을 공유해보려고 합니다! 코드 한 줄 잘못적었다가 DB를 날려버렸다..!굉장히 자극적인 타이틀.. 하지만 실화입니다💥사건의 발단은 클린 아키텍처 기반의 프로젝트에서 각 레이어의 ..
[iOS/Architecture] UseCase 활용기 안녕하세요 제인입니다 :)최근에 진행한 개인 프로젝트의 아키텍처를 MVVM-Clean Architecture 로 설계하고, 각 레이어의 역할을 명확히 구분해 전체 코드의 유지보수성을 높이는 데 초점을 맞추어 개발을 했었는데요,이 과정에서 특히 UseCase의 역할에 대해 많이 고민을 한 것 같아요!그래서 제가 저의 방식대로 UseCase를 구성한 내용을 한 번 공유해보려고 합니다.UseCase란?UseCase 레이어의 역할을 한 줄로 정의한다면 아래와 같이 정의할 수 있을 것 같습니다.UseCase는 비즈니스 로직이 위치하는 곳으로, 엔티티로 들어오고 나가는 데이터 흐름을 조정합니다. 이 정의를 좀 풀어서 생각해볼게요!화면에 보여줄 데이터를 원하는 형태로 얻으려면?1. 네트워크 통신을 통해 DB에 있는 ..
[Combine] 관찰가능한 데이터 만들기 - ObservableObject와 @Published 안녕하세요 제인입니다 :)SwiftUI관련 내용을 정리하다보니 Combine 관련 내용이 나와버려서 Combine으로 돌아왔습니닷..ㅎSwiftUI로 개발하면서 데이터를 다루다보면 무조건 Combine을 공부할 수밖에 없는 것 같아요!오늘은 관찰가능한 데이터를 만들어서 데이터 변경에 따라 UI를 어떻게 업데이트할 수 있는지에 대해 한번 다뤄보겠습니다.@Published@propertyWrapperstruct Published Publisher로 만들어주는 프로퍼티 래퍼값 바뀔 때마다 willSet 블록에서 publish $ 기호를 이용하여 projectedValue에 접근클래스의 프로퍼티에서만 사용 가능 (값 타입 불가)저번 Combine 게시글에서 Publisher와 Subscriber가 무엇인지 개념..
[SwiftUI] View 업데이트 방식 - @State, @Binding 안녕하세요 제인입니다 :) SwiftUI에서는 뷰를 어떤 방식으로 업데이트 하는지 알아보고, SwiftUI에서 제공해주는 다양한 프로퍼티 래퍼 중 대표적인 몇 가지에 대해서 살펴볼게요~!SwiftUI의 View 업데이트 방식SwiftUI에서는 데이터가 바뀌면 이에 따라 뷰가 바뀝니다. 즉, 뷰는 데이터에 대한 의존성을 가집니다.SwiftUI에서는 데이터가 변경될 때마다 뷰를 업데이트하는 메커니즘이 내부에 존재합니다. 그렇기 때문에 데이터 업데이트 시점을 계산해서 뷰를 업데이트 시켜주는 일을 개발자가 일일이 해주지 않아도 되는 것이죠. 이를 위해 SwiftUI에서는 다양한 프로퍼티 래퍼를 제공합니다. 이 중 가장 기본적인 @State, @Binding 을 이용해 어떤 방식으로 뷰를 업데이트 하게 되는 것인..
[SwiftUI] View Life Cycle 안녕하세요 제인입니다 :)그동안 블로그 글을 못썼는데,,, 최근에 개인 프로젝트를 하나 진행했습니다..ㅎSwiftUI 프레임워크로 개인 프로젝트 개발을 진행하며 학습한 내용도 많아서 새롭게 학습하거나 정리해둔 내용을블로그에도 공유해볼게요~! (이제보니 UIKit 글을 거의 안썼네요...?ㅋ.......)SwiftUI View Life CycleLifecycle은 SwiftUI 뷰의 생성부터 소멸까지 생기는 일련의 이벤트 입니다.SwiftUI의 각 뷰에는 우리가 관찰하고 조작할 수 있는 세 가지 주요 단계가 있습니다.이 세 가지 단계는 Appearing, Updating, Disappearing 입니다.AppearingAppearing은 뷰 그래프에 뷰를 삽입하는 것을 의미합니다.이 단계에서 뷰는 초기화되..
[iOS] 이미지에 원하는 모양의 마스크 적용하기 안녕하세요 제인입니다~!UI 구현에 관한 게시글은 처음 업로드 하는 것 같은데요, 복잡한 UI를 구현하면서 겪었던 문제들 혹은 고민했던 점을 블로그에도 기록으로 남겨놓았으면 좋았을 걸,, 하는 생각에예전 프로젝트에서 꽤나 고민했던 과정을 포스팅하려고 합니다..! (공유하면 좋으니까요..ㅎ)앞으로도 이슈 해결에 대한 내용도 포스팅을 해보도록 노력하겠습니다!복잡한 모양의 마스크를 이미지에 적용하기이번 포스팅에서는 이미지에 사각형, 원처럼 간단한 도형이 아니라 복잡한 모양의 마스크를 적용하는 방법에 대해 공유해보겠습니다!!예전에 참여했었던 프로젝트에서 서비스의 심볼인 마시멜로 모양이 여러 화면에서 보였습니다.특히, 마시멜로 모양의 마스크가 적용된 이미지가 프로필 사진으로 적용되어 앱 곳곳에서 자주 사용되었습니..
[Algorithm/Swift] 프로그래머스(Lv.2) - 택배 배달과 수거하기 안녕하세요 제인입니다 :) 요즘 PS를 연습하며 아이디어를 코드로 구현하는 능력이 부족하다는 것을 깨닫고 있는데요,,, 차근차근 기록도 해가며 실력을 높여가야겠습니다..!! Greedy 유형인 2023 KAKAO BLIND RECRUITMENT - 택배 배달과 수거하기 문제 풀이를 정리해보겠습니다😊 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 일단 문제를 읽고 그리디로 풀어야겠다는 아이디어는 떠올랐는데, 스택 자료구조를 이용해야겠다는 생각은 하지 못해 방문 처리 및 조건을 판단해주기가 까다롭다고 느꼈습니다🥲 (택배 수거 ..