분류 전체보기 8

[iOS] MVC에서 MVI로, AI를 쓰기 전에 개발자가 미리 적용하자 (MVI + Clean Architecture with. SwiftUI

최근 AI가 정말 많이 발전했다.예전에는 카카오톡에서 '개발 도와주세요', '개발 고수님들 찾습니다'라는 오픈 채팅방을 쉽게 볼 수 있었는데,요새는 정말 보기가 힘들더라. AI를 쓰는건 정말 좋은것 같다. 귀찮은 코드를 대신 작성해주고, 새로운 코드나 기술을 적용할 때, 쉽게 설명해주니까.그런데 너무 AI 자체에 의존해서 생기는 문제들도 보여지고 있다. 특히 아키텍쳐나 패턴에 대한 지식이 하나도 없는 상태로 AI에게 코드를 맡겼다가, 유지보수가 불가능한 수준의 프로젝트가 생성되거나.반대로 AI가 특정 아키텍쳐나 패턴을 적용해주었는데, 개발자가 이해하지 못해서 평생을 AI에게만 맡겨야 하는 불상사가 생기고 있다. 물론 AI가 더, 더 발전해서 개발자가 아무런 설계를 하지 않아도 되는 세상이라면 상관 없겠지..

개발/iOS 2026.03.11

[개발] 모여바라 (Moyobara) 개발

2026년 목표 중 하나였던, 앱 출시가 빠르게 끝나서 되돌아볼겸 글을 오랜만에 쓰게 되었다.2025년은 20살을 넘긴 이후로 정말 시간이 빨리 지나간 해였다. 안 좋은 의미로.왜 사이드 프로젝트를 진행했는지, 어떤 기술 스택을 썻는지, 결과는 어떤지 등등 정리할 목적으로 써보려한다. 외근 시작 (2025년 8월 ~ 12월)회사 업무로 외근을 나가게 되었다. 빨리 끝내고 복귀해야지 생각하긴 했었는데, 생각보다 쉬운 일이 아니었다.원래 양이 많았던게 문제가 아니라. 해도 해도 원점으로 돌아오는 말도 안 되는 업무였다. 처음에는 정말 힘들었다. 다 끝냈다고 생각하고 다음 날 보면 다시 원점으로 돌아와 있었다.보안 때문에 정확히 무슨 일인지 여기에 기록하진 못하지만, 같은 짓을 매일 매일 매일 매일 반복하고 ..

개발/잡동사니 2026.03.02

[일상] 처음 쓰는데 마지막 글이 될 자전거 기록

미리 말하지만 나는 자전거 찍먹만 했던 평범한 직장인이다. 요새 자전거 타는데 맛이 들렸다. 원래 집에 로드 자전거가 있었는데, 동생꺼다.그런데 동생이 자전거를 자주 안 타다보니 썩혀지고 있었고, 최근에 내가 운동이랍시고 그 자전거를 타기 시작했다. 우리 집 근처에는 중랑천이 있고, 자전거 도로가 아주 잘 되어 있다. 하루에 한 번 자전거를 타고, 한 번 타면 보통 한 시간 정도 탄다.속도는 한 20km 찍히니까, 거리도 20km 정도를 탄다는 뜻이다. 자전거 정보 찾아보고 하면 일반인들도 30km ~ 40km는 기본이던데.. 다들 괴물인가.. 워치를 차고 달리면 자동으로 경로와 탄 거리 등이 기록되는데, 1시간 19.74km가 찍혔다. 워치를 차고 길게 탄건 처음이었는데, 바로 본인 신기록을 ..

일상 2025.04.26

[iOS] iOS Toy 1: 스크랩 에디터, 캔버스 에디터, 제스처 조작하기

2024 관광데이터 활용 공모전에서 내가 메인으로 개발했던 기능 중 '스크랩 에디터'를 공유하려 한다. 실제 앱에서는 REST API를 통해 캔버스 데이터를 불러오고 각 디바이스 사이즈에 맞게 재조정하고 배치하고..작성할 코드가 매우 많아서 힘들게 개발했었고, 매우 더럽게(?) 개발했다. 여기서는 간단하게 어떤 원리로 개발할 수 있는지, 이런 방법도 있다는 것을 공유하는 차원에서 글을 쓴다. 대충 이런 스크랩을 만들 수 있는 기능사용한 UI 프레임워크: SwiftUI주요 Skills: GeometryReader, 좌표, Gesture 찾아보니 'Canvas'를 사용하는 것도 있던데, 나는 ZStack을 이용해 구현할거다. // CanvasView.swiftimport SwiftUIstruct Canvas..

개발/iOS 2025.04.26

[회고] 2024 관광데이터 활용 공모전: 트래버리 (2)

제안서 통과 후, 5월 중순부터 본격적으로 프로젝트가 진행됐다.트래버리: 여행의 모든 순간을 기록하는 습관 퇴근 후에 스터디룸을 잡아서 회의를 진행하고, 그에 필요한 기획, 디자인, 기술 검토 등이 진행됐다.그런데, 문제가 조금씩 생겼다. 다들 처음 진행해 보는 프로젝트에서 다양한 기능과 기술을 넣어보기를 시도했고,개발뿐 아니라 기획과 디자인도 새로운 시도를 하려고 했다.정말 좋은 기회였고, 해볼 만했다. 하지만, 양 조절에 실패했다... 자체 API 서버 개발, Firebase, Apple 로그인, 카카오 로그인, 구글 로그인, 지도 커스텀, 스크랩 (캔버스)기능...회사에서는 하지 못했던 소통 방법, 새로운 디자인 방법, 앱에 적용하기 위한 세팅... 기능 자체가 엄청나게 많았고, 기능을 개발하기 위..

개발/잡동사니 2025.04.24

[회고] 2024 관광데이터 활용 공모전: 트래버리 (1)

블로그를 쓰게 되면서 이것저것 기록을 남기고 싶어졌다.특히 개발 관련 내용 중에서 생각 중이었는데, 2024년에 진행했던 프로젝트가 하나 생각났다. 2024 관광 데이터 활용 공모전. 그때 여행 기록 앱 '트래버리'를 개발했었고, 앱스토어에 출시까지 했었다.출시를 2024년 10월쯤 했고, 약 6개월 정도 지났는데, 수익을 내려고 했던 것도 아니고, 입상한 앱도 아니어서 이제 슬슬 앱스토어 게시를 내릴 계획이다.성공한 앱은 아니지만, 첫 스토어 출시라는 의미가 있기에, 그리고 다양한 감정을 느꼈기 때문에 그 기억을 이렇게 남기려 한다. 개발자라면 서비스하는 앱 하나쯤은 있어야지 개발자라는 직업을 가지게 된 이후로 자주 생각했었다.특히 나는 iOS '앱' 개발자. 앱 개발자라면 특히나 앱스토어에 내가..

개발/잡동사니 2025.04.24

[Swift] 익명 함수와 클로저

모든 개발 언어에서 '익명 함수 (Anonymous Function)'라는 개념이 존재한다. 개발을 시작하고 약 1년은 Kotlin으로 Android를 개발했었는데,당시에는 익명함수, 람다를 전혀 이해하지 못했고, 너무 어려워했던 기억이 난다. 시간이 조금은 지난 지금, 람다뿐 아니라 어느 정도 개발에 익숙해진 시점에서 그때를 떠올려 보면,그렇게 힘들어했던 것도 이해가 되지만, 왜 그렇게 어렵게 느꼈었는지, 어렵게 공부했었는지 아쉬운 생각도 든다.아마 나보다 더 오래된 개발자들도 비슷한 감정을 느껴본 적 있지 않을까 싶다. 그래서, 그때의 나를 위로하는 마음으로 익명 함수, 클로저에 대해 정리해보려 한다.물론, 이거 말고도 힘들어 한게 한 둘이 아니긴 하다.. (지금도 힘든거 많ㅇ) 익명 함수? 클로저..

개발/Swift 2025.04.22

[Metal] Metal Toy 1: 텍스처 색상 반전

iOS 개발을 하면서 그래픽을 건드리게 된다면, Metal 이라는 단어를 듣게 된다. OpenGL, DirectX처럼 GPU를 직접 제어할 수 있는 API로, Apple 생태계(iOS, macOS 등)에 특화된 성능 최적화된 API이다. 이런말을 사용할 때면 항상 아쉬운게 처음 접하는 입장에서는 저런식의 정의가 쉽게 와닿지 않는다.그래서 항상 내가 이해할 수 있는 방법으로 이해하고, 나중에 다시 정의를 보면 잘 이해가 된다. 그래서 나는 Metal을 이렇게 이해하고 학습을 시작했다.화면에 2D나 3D로 뭔가를 그리거나 연산을 할 때 직접 GPU를 활용할 수 있도록 하는 Apple 전용 그래픽 API 사실 예제에 관련된 포스팅을 하기 전에 Metal에 대해서 먼저 자세히 알아봐야 하지만,스터디에서 발표할 ..

개발/Metal 2025.04.21