전체 글 6

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

미리 말하지만 나는 자전거 찍먹만 했던 평범한 직장인이다. 요새 자전거 타는데 맛이 들렸다. 원래 집에 로드 자전거가 있었는데, 동생꺼다.그런데 동생이 자전거를 자주 안 타다보니 썩혀지고 있었고, 최근에 내가 운동이랍시고 그 자전거를 타기 시작했다. 우리 집 근처에는 중랑천이 있고, 자전거 도로가 아주 잘 되어 있다. 하루에 한 번 자전거를 타고, 한 번 타면 보통 한 시간 정도 탄다.속도는 한 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