 Apple Lover Developer & Artist

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

반응형

전체 글 116

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 7부 - 네트워킹 코드 모델링

Overview 음식점 서버 API와의 네트워크 통신 기능을 구현해 보고 공통 작업을 추상화시킨다. 들어가기 앞서 Swift Concurrency, Protocol, Generic 개념을 활용하고 있기에 이를 익히고 보면 포스팅을 재미있게 즐길 수 있다! Networking Common Process 서버 API를 활용해 클라이언트가 데이터를 요청하고 응답받을 수 있도록 도와주는 객체가 있다. Foundation 프레임워크의 URLSession 이 그 주인공이다. Fetching Website Data into Memory- Apple Developer 아티클을 통해 URLSession을 활용하여 통신 코드를 작성하는 예시를 확인할 수 있다. 쉽게 말하자면 통신 코드가 구현하는 작업은 크게 3가지로 구분..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 6부 - 모델링

Overview 음식점 서버 API와 연동할 수 있도록 모델 타입을 정의한다. Restaurant Server API Order 앱은 다음과 같은 요구사항을 구현해야 한다. 음식점에서 주문 가능한 음식 메뉴 명단을 보여줄 수 있어야 한다. 음식 메뉴의 카테고리를 구분할 수 있어야 한다. 음식 메뉴를 골라서 주문서 명단에 넣을 수 있어야 한다. 주문서 명단을 바탕으로 주문을 넣을 수 있어야 한다. 음식점 서버는 위 요구사항을 다음의 웹서비스 API를 통해 제공하고 있다. /menu (GET) 음식점에서 주문 가능한 음식 메뉴 명단을 제공하는 api이다. Request API에 http GET 요청을 한다. requirement - 메뉴 아이템 배열은 JSON 객체의 item키에 담아서 보낸다. option..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 5부 - 계획과 목업

Overview 프로젝트를 개발할 때, 전체적인 작업 흐름을 우선적으로 잡는 것이 중요하다. 스토리보드를 활용해 앱의 기능과 작업 흐름을 정의한다. Prototype 처음 프로젝트를 개발할 때에는 걱정이 많이 쌓인다. 세부적인 구현 내용을 초기에 완벽히 계획하여 개발하려는 욕심도 생길 수 있다. 이 방식으로는 시간만 버리고 사용자 요구사항에 부합하지 못한 결과가 나올 수 있다고 생각한다. 초기 사용자 테스트를 통해 작업 흐름을 빠르게 검증하고 잘못 설계된 부분에 관하여 민첩하게 피드백받을 수 있는 개발 환경에서는 많은 이점이 있다. 예를 들어 프로젝트 초기에는 상대적으로 적은 코드와 디자인이 반영되었을 때라서 디자인 방향을 틀거나 수정하기에 더 수월할 수 있다고 생각한다. Storyboard 개발 관점에..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 4부- Global Rule

Overview MVC, MVVM 등의 앱 아키텍처는 구성 요소들 간의 소통 질서를 확립하여 클린하고 유지보수하기 좋은 코드를 작성하도록 도와주었다. 이번엔 프로젝트의 개발이 진행될수록 늘어나는 소스 파일의 용이한 관리를 위해 글을 적어본다. Project Organization 본질인가 현상인가? 필자가 프로그래밍을 처음 배웠을 때의 일화를 소개한다. 앱의 아키텍처와 프로젝트 파일을 구조화하는 것을 동격으로 생각했었다. 이는 곧 소스 코드 파일과 디렉터리의 구조를 개선함으로써 더 좋은 앱 아키텍처를 얻을 수 있을 것이라는 생각으로 이어졌다. 숙련된 개발자 분께 코드 리뷰를 부탁드리면서 A 소스 파일을 B 폴더에 넣는 것이 좋은지 혹은 C 폴더에 넣은 것이 좋은지?라고 여쭤보았다. 리뷰어 개발자 분은 프..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 3부 - 책임의 밀당

Overview UIKit 애플리케이션의 기본 개발 패턴은 Cocoa MVC였다. 대표적으로 View Controller와 같이 책임이 결합된 경우를 생각해 볼 수 있다. 이때, 개발자가 코드를 잘 못 디자인하면 한 객체의 책임이 커져버리는 문제가 생긴다. 코드를 리팩터링 하기 위해 역할과 책임을 다시 나눠본다. Problem objc.io 사이트의 Ash Furrow 님이 작성하신 Introduction to MVVM 자료를 인용하였다. Cocoa MVC에서 활용되는 결합된 역할의 대표 사례인 View controller는 UIKit 어플리케이션에서 주요하게 사용되는 클래스이다. Cocoa MVC를 UIKit 애플리케이션의 실제 클래스 다이어그램 구조로 표현하면 다음과 같다. ViewController..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 2부 - MVC 디자인 패러다임

Overview 어떤 클래스나 구조체를 생성할지 어떻게 결정하는가? 어떤 속성들을 가져야 하는가? 어느 객체가 다른 객체들의 함수를 호출해야 하는가? 소프트웨어 개발자들은 수십 년간 이 질문에 답할 수 있는 패러다임을 고민해 왔다. MVC MVC는 오브젝트에 Model View Controller로 책임을 분류하여 할당하고 오브젝트 간의 소통 방식을 정의하는데 도움을 준다. 다음의 그림은 3가지 타입의 오브젝트가 서로 어떤 관계를 맺어서 동작하는지에 관한 Apple 방식의 조감도를 보여준다. 구체적인 소통 메커니즘을 이해하기 위해 개별 타입들이 어떤 책임을 갖고 있는지 살펴본다. Models Model Objects Encapsulate Data and Basic Behaviors 모델은 아이템이나 개념..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 1부 - 조감도

Overview 앱의 설계 과정에서 과거의 유산과 현대의 개발 패러다임에 대한 필자 스타일의 퓨전 장르를 만들어보는 것이 목표이다. Fusion Fusion, 서로 다른 사물이 융합되는 것을 의미하는 명사이다. 우리는 주변에서 서로 다른 양식의 문화가 결합된 퓨전 요리 혹은 퓨전 음악을 찾아볼 수 있다. 기술의 세계에도 퓨전 양식은 존재한다. 예를 들어 애플의 적용 사례가 있다. 2012년 아이맥을 공개하며 컴퓨터의 보조기억장치인 HDD와 SSD를 macOS 상에서 논리적으로 묶어 하나의 저장장치로 사용하는 기능이었다. 사용자가 데이터의 저장 위치를 직접 제어하지 않도록 도와준 이 기능은 "Fusion Drive" 기술로 불렸다. iOS가 출시된 지 약 16년이 지나면서 소프트웨어 개발 도구는 진화해 왔..

2023년 1월 일본 홋카이도 여행기 (+🍯꿀팁)

[이야기] 일본 홋카이도에서의 경험 Overview 이웃 국가 일본에 다녀왔다. 인생 첫 해외에 체류하는 동안 풍겨온 인상을 기록해 본다🙂 국외 방문시 확인 사항 코로나-19 국외 방문시 2023년 1월까지도 코로나-19에 대응하는 행정사항이 존재한다. 이번에 일본과 한국을 왕복할 때도 동일하게 적용되었으나 두 국가 모두 QR코드를 활용한 방식을 사용한다. 소개하는 내용은 추후에 변경될 수 있으니 반드시 확인해보아야 한다. 일본에 입국하는 모든 사람은 코로나-19 예방접종을 3차까지 맞거나 72시간 내에 PCR 검사를 받아야 한다. 증빙 서류를 Visit Japan Web에 등록하여 검역 심사를 받을 수 있다. 추가적으로 입국심사와 세관 신고를 입국 전에 등록하여 QR코드를 발급해 준다. 일본 공항에서 ..

[연말 결산] 2022년 3부작 - 3부 좋은 생각

Overview 2022년 한 해를 회고해보니 추상화 와 디자인 의 매력에 빠져있었다. 기대감과 두려움을 느끼며 인생의 길을 찾아가는 과정을 책과 경험을 통해 소개해보고자 한다. 좋은 생각 생각의 탄생 인류의 역사에는 위대한 발견, 발명이 있었다. 결과물은 우리의 삶을 진보시켰다. 창조적 세상은 천재들만의 리그일까? 자신이 갖고 있는 능력을 발견하지 못해서 활용하지 못하고 있는 것은 아닐까? 필자도 아직 잘 모르는 자신을 발굴하기 위해 이 책을 읽게 되었다. 기본은 생각 필자는 지식을 쌓기 위해 본다. 글을 읽고 동영상을 찾아본다. 끊임없이 정답을 찾는다. 어떤 지식을 설명하는 방법도 다양하다. 논리적인 설명, 은유적인 설명, 함축적인 설명 등을 볼 수 있다. 글을 읽어나가면 맞는 말처럼 보인다. 그 와..

[연말 결산] 2022년 3부작 - 2부 좋은 제품

Overview 2022년 한 해를 회고해보니 추상화 와 디자인 의 매력에 빠져있었다. 기대감과 두려움을 느끼며 인생의 길을 찾아가는 과정을 책과 경험을 통해 소개해보고자 한다. 좋은 제품에 관한 생각 디터 람스: 디자이너들의 디자이너 제품이 사용자에게 나쁜 경험을 준다면 의미가 있을까? 훌륭한 중간 개발 과정이 적용되었더라도 의미 없다고 생각한다. 사용자에게 좋은 디자인을 발견하기 위해 좋아하는 제품을 관찰했다. 산업 디자인에서 좋은 제품의 통찰을 얻고자 디터 람스를 찾게 되었다. 미니멀리즘 디자인 디터 람스는 브라운의 핵심 디자이너였다. 이 책에는 좋은 디자인 10 원칙과 작품 카탈로그가 담겨있었다. 페이지를 넘기며 그가 좋은 디자인을 찾아가는 과정과 작업한 TV, Hi-Fi 오디오 등의 클래식 브라..

반응형