 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

전체 글 116

[연말 결산] 2023년 회고 3부작 - 2부 중반기 (5월 ~ 8월)

Overview 2023년 한 해 중 중반기 (5월 ~ 8월)의 핵심 경험을 회고해보고 앞으로 나아갈 길을 생각해본다. 베트남 나트랑 여행 베트남의 나트랑에 다녀왔다. 나트랑은 베트남의 중부 지역에 위치한 아름다운 해안 도시이다. 이번 베트남 여행 테마는 크게 3가지로 구분할 수 있었다. 우선 나트랑 시내를 중심으로 로컬 맛집을 탐방하였다. 나트랑 도심부터 남부에 위치한 사막 지역인 판랑까지 투어 하며 동남아 지역의 도시 문화를 경험하였다. 나트랑과 깜란 공항 주변 지역에서 수상 문화를 경험하였다. 이번 베트남 여행은 일본에 이어서 인생 두 번째로 해외에 나가보는 경험이었다. 처음이 아니었을지라도 여행하기 전부터 걱정이 많았다. 대한민국 주변국에 관한 정보는 평소에 접할 기회가 있었으나 동남아시아 지역은..

[연말 결산] 2023년 회고 3부작 - 1부 상반기 (1월 ~ 4월)

Overview 2023년 한 해 중 상반기 (1월 ~ 4월)의 핵심 경험을 회고해보고 앞으로 나아갈 길을 생각해본다. 일본 홋카이도 여행 일본 북부 지역인 홋카이도에 다녀왔다. 대표 도시인 삿포로를 중심으로 주변 도시 지역인 오타루, 비에이 지역을 여행하였다. 홋카이도 여행은 인생 첫 번째로 해외에 나가보는 경험이었다. 가장 걱정했던 영역은 사회 문화적 차이와 언어적 장벽이었다. 여행 전에는 여행지의 주요 경험을 누릴 수 있도록 예약해두어야 했다. 각종 홈페이지를 방문하여 예약하고 전화를 걸어서 예약 일정을 확인했다. 현지에 도착한 후에는 일단 부딪혀 보자는 생각으로 아주 짧은 생활 일본어 몇 마디와 영어로 소통했다. 다행히도 걱정했던 만큼의 어려운 일은 발생하지 않았다. 호텔에서도 물건을 구입할 때도..

[Challenge] 프로젝트 개발 환경 설정 중 만났던 문제들

Overview iOS 프로그래머로서 개발이 완료되었거나 진행 중인 프로젝트를 만났을 때 헤매었던 주요 포인트를 정리해 본다. 도입 의견 프로젝트의 개발 환경을 구성하면서 문제를 만나지 않는 것이 이상적일 것이다. 프로젝트가 엄격히 관리되고 있어서 문서화까지 잘되어있다면 더욱이 금상첨화이다. 하지만 개발 환경 설정 과정은 단순하지 않다. 항상 문제는 예상치 못한 지점에서 불쑥불쑥 튀어나온다. 예를 들면 다음과 같은 상황이다. 💡 받아온 소스 코드를 빌드했는데 오류가 발생해요! 어떻게 해결해야 하죠? 위 문제에 함축되어 있는 문제를 간략히 분해해 본다. 프로젝트 관리에 사용되는 특정 기술에 관한 해결책보다는 범적으로 적용해 볼 수 있는 문제와 해결책을 정의해보고자 한다. FAQ 인터넷이 연결되지 않은 환경..

[Challenge] 라이브러리 관리 기술 살펴보기

Overview 이전 포스팅 [Challenge] 데이터 암복호화 모델 개발 에서 생산한 코드를 타 프로젝트에서도 재사용할 수 있도록 모듈화 시켜본다. 지구 반대편 개발자와의 협업 소프트웨어 개발자가 혼자서 코드를 작성하여 프로젝트를 구현하는 경우는 없다고 생각한다. 저수준의 운영체제 API부터 GitHub에 배포된 오픈소스까지 타인이 개발한 소프트웨어와 협력하여 프로젝트를 개발한다고 생각한다. 지구 반대편 개발자와의 협업 근간에는 라이브러리와 프레임워크가 주요한 역할을 하고 있다. 라이브러리 vs 프레임워크 라이브러리와 프레임워크는 무엇일까? 이 질문에 답하는 것은 쉬운 일이 아니다. 겉보기에는 타인이 작성한 소프트웨어를 재사용한다는 점에서 차이가 없어 보이기 때문이다. 도구 사용성 관점에서 둘의 차이..

[Challenge] 데이터 암복호화 모델 개발

Overview 대칭키 암호화 알고리즘을 사용해 데이터 암복호화 기능이 적용된 모델 객체를 개발해 본다. 보안 현대의 애플리케이션은 로컬에서 독자적으로 동작하지 않는다. 클라우드 인프라를 바탕으로 네트워크 통신을 통해 데이터를 처리한다. 네트워크 환경에서 개인정보 등과 같은 중요 정보를 담은 데이터가 외부에 노출될 위험성도 높아졌다. 현대 컴퓨팅 세계에서 보안은 소프트웨어 설계 관점에서 신경 써야 할 요소가 되었다. 애플리케이션의 개발 과정에서 보안은 전반적인 설계 철학에 가까운 것 같다. 보안 분야의 세부 범주도 넓기에 하나의 보안 기능을 구현했다고 끝날일이 아니다. 기획 단계부터 구현, 테스트, 출시까지 개발 생애주기 전반에 걸쳐서 의도적으로 보안을 고려한 설계가 필요하다. 앱 개발자의 설계 책임 보..

[Challenge] Objective-C 빠르게 둘러보기

Overview 프로그래밍 언어인 Objective-C에 관하여 간략히 조사해 본다. Objective-C를 Swift 코드처럼 사용하며 문법에 빠르게 적응해 본다. 사전 지식 💡독자가 C언어와 객체지향 프로그래밍에 관한 경험이 있음을 전제하고 작성한 포스팅이다. Objective-C Objective-C는 macOS와 iOS용 소프트웨어를 개발할 때 사용되었던 프로그래밍 언어이다. C언어를 기반으로 OOP와 동적 런타임 기능을 확장하여 개발되었다. C언어의 기본 타입과 흐름 제어 문법을 사용 가능한 특징이 있으며 클래스와 메서드를 정의하는 등 OOP 지원을 위해 Objective-C 만의 문법이 추가되었다. Hello World Xcode에서 macOS용 CLI 프로젝트를 생성 후 간단한 Hello W..

[회고] 안전한 현업 iOS 앱 개발 도전기 - Abstract

Overview 보안 업종 분야의 중견기업에서 iOS 앱 개발자로서 얻은 경험을 정리해 본다. 나는 누구인가? 소프트웨어 개발자를 시작하고 지금까지 가슴에 품은 초심이 있다. 프로젝트를 진행할 때 의사결정에 근본적으로 영향을 주는 요소이다. 핵심 가치는 다음과 같으며 최대한 지켜내고자 노력하고 있다. 다른 사람들의 고민을 해결하도록 문제를 정의할 수 있는 사람이 되고 싶다. 사용자의 문제점 해결을 위한 기술적 솔루션을 보급하고 싶다. 솔루션을 통해 사용자가 중요한 일에 집중하도록 도와주고 싶다. 동료와 함께 동반 성장을 추구하고 코드 설계를 성취해가고 싶다. 종합적인 회사 경험 판교역 부근에 위치한 보안 업종의 중견기업에서 iOS 개발자로 근무할 수 있는 기회가 생겼다. 이번 커리어 경험은 다음의 사유로..

[회고] 2023년 중반기 회고 - 접점

Overview 2023년 중반기 핵심 경험을 회고하고 앞으로 나아갈 길을 생각해 본다. 세계관의 확장 20대의 절반 동안 컴퓨터라는 언어로 세상을 보았다. 컴퓨터 외의 것들은 별로 아는 것이 없었다. 무지는 나의 삶을 잿빛으로 만들었다. 세상 밖에서 무엇을 봐야 할지도 어떻게 즐겨야 할지도 몰랐기 때문이다. 컴퓨터 프로그래밍만 잘하면 되겠지. 지난 5년간의 생각이었다. 지금은 생각이 달라졌다. 인간이 컴퓨터에 담은 생각은 어디에서 왔는지 질문을 던지고 있다. 소프트웨어 개발과 실력 프로그래머는 무엇을 하는 사람일지 생각해 봤다. 기계적으로 보면 컴퓨터 메모리에 낙서하는 사람들일지도 모른다. 다만, 낙서에 담긴 추상적 의미에 따라서 세상을 바꾸는 작품이 되기도 한다. 전통적 관점에서 글을 쓰는 작가가 유..

[Challenge] SettingsKit 프레임워크 개발

Overview 사용자가 iOS앱의 설정값을 사용자 정의할 수 있도록 설정 기능 및 사용자 인터페이스를 구현한다. 배경 Apple은 "Preferences and Settings Programming Guide"를 통해 앱을 사용자화 할 책임과 관련 도구에 관하여 설명한다. 여기서 사용자에게 노출할 기본 설정을 결정하고 앱 자체의 기본 설정 인터페이스를 어떻게 제공할지는 각 앱이 결정한다고 지침을 주고 있다. 개발자가 앱의 기본 설정값을 손쉽게 관리할 수 있는 도구도 제공하고 있다. 예를 들어 UserDefaults 프레임워크를 사용하면 앱을 구성하는 데 사용되는 정보들을 키-벨류 형태로 영구히 저장할 수 있고 iCloud를 통해 설정값을 공유할 수도 있다. 더 나아가, iOS 설정 번들를 활용하여 특정..

[WWDC종합] UICollectionView의 진화

Overview UICollectionView의 역사와 진화 과정을 두루두루 살펴본다. 역사 iOS6 때 처음으로 UICollectionView가 출시되었다. API는 다음과 같은 3가지 측면으로 분해할 수 있다. (데이터) indexPath 기반 프로토콜인 UICollectionViewDataSource를 통해 관리되었다. (레이아웃) 추상 클래스인 UICollectionViewLayout과 구상 클래스인 FlowLayout이 제공 (프레젠테이션) UICollectionViewCell 및 UICollectionReusableView라는 View 타입이 제공 iOS13부터 데이터는 Diffable Data Source 레이아웃의 경우 Compositional Layout를 통해 관리되었다. iOS14는 ..

반응형