아니 이 재밌는 걸 개발자만 하고 있었다고

기획자가 개발해 보기

by 서윤

개발을 해보기로 했다.

개발자가 되고 싶은 건 아니고, 내 기획 역량이 부족하다고 느꼈기 때문이다.

기획자는 팀에서 방향을 정하고 조율하는 리더 비슷한 역할을 맡게 된다. 그런데 개발에 대해 정확하게 모르니까, 기획에 구멍이 생기고 리딩이 원활하지 못하다. 그래서 직접 개발이라는 걸 해보기로 했다.


1. 개발 언어 선택하기


여기서부터 이미 난항을 겪기 시작했다. 뭘 배울 것인가. Python, JavaScript, C++, Swift... 등등 매력적인 언어가 많았고 이왕 시작하는 김에 내 마음에 드는 언어를 고르고 싶었다. 파이썬은 배워놓으면 웹크롤링이나 데이터를 다룰 때 쓰기 좋고, JS는 현재 가장 많이 쓰이는 언어이자 사용자가 쉽게 접근할 수 있는 웹을 만들 수 있다는 점이 좋았다. 그리고 여러 고민 끝에 내가 선택한 언어는 스위프트(Swift)였다.


왜 스위프트(Swift)?

(1) 탐나는 시장

iOS시장이 탐났다. 누구든 갖고 싶은 "아이폰"에서 사용하는 서비스를 만들고 싶다는 생각이 들었다.

(2) 흥미로운 언어

오로지 Apple 생태계에서만 쓰인다는 게 흥미로웠다. 한정된 운영체제에 최적화되어 있는 언어라는 점이 흥미를 돋궜다.



2. 깃허브(Github) 만들기


개발을 꾸준히 공부할 생각으로 깃허브를 만들었다. 블로그 + 개발저장소 정도로 생각하고 시작했는데, 비전공자 입장에서는 기본적인 공부 없이 사용하기 힘들었다. 이에 대한 내용은 나와 같은 사람들을 위해 따로 정리할 생각이다. (추후 업데이트 예정)

https://github.com/seoyuunn



3. 개발 환경 구축하기


Swift를 사용하기로 결정하고 맥 노트북에 개발 환경을 구축했다. 생각보다 시간을 오래 잡아먹은 단계였다. 먼저, Swift를 사용하는 IDE, Xcode를 설치하고 Homebrew와 CocoaPods 같은 개발 도구를 설치했다. 프로젝트를 생성하기에 앞서 깃허브의 레포지토리와 연결되는 로컬 폴더를 생성했는데, Git에 대한 개념이 확실하지 않은 상황에서 파일을 움직이다 보니 오류가 많았다. 로컬로 가져온 파일을 Finder에서 직접 수정하고 옮기고 지우면서 경로가 엉켰고, 파일이 실행되지 않은 오류가 있었다. git 폴더 안에 또 다른 git 폴더를 생성해 버리는 실수도 했다. 처음에는 문제 될 거라는 생각을 못하니 원인을 찾는 것도 오래 걸렸고, 그렇게 시간을 많이 들여서 환경을 세팅했다.



4. Swift 학습하기


기본적인 문법은 알아야 만들 수 있을 거라 생각해서 youtube와 ChatGPT를 활용해 공부하기 시작했다. 기본 문법을 익히는데 기간을 일주일로 짧게 두고 그다음은 만들면서 부족한 개념을 보완하기로 했다.

학습한 내용은 목차로 나누면 다음과 같다.

Swift 소개 및 개발 환경 설정 (Xcode 설치, Playground 활용법)

변수와 상수 (var, let, 데이터 타입, 타입 추론)

기본 데이터 타입 (Int, Double, String, Bool, 형 변환)

연산자 (산술, 비교, 논리, 할당, 복합 연산자)

조건문 (if, switch) (조건문 활용법, switch의 패턴 매칭)

반복문 (for, while, repeat-while) (기본 반복문과 활용법)

옵셔널 (Optional) 개념과 활용 (nil, Optional Binding, guard let,?? 연산자)

학습한 내용은 노션에 기록하고 이후에 깃허브에도 옮겼다.


기본적인 문법을 학습한 뒤에는 youtube를 따라서 계산기를 만들었고,

그다음 ChatGPT를 활용해서 어설프게나마 직접 아이폰 기본 계산기 UI를 구현해 봤다.


아이폰 기본 사칙연산 계산기 구현



5. 계산기를 만들고 그 뒤에


사칙연산만 가능한 계산기를 구현하는데도 어려웠다. 원했던 모양이 안 나오고 계속해서 일그러지는데 원인은 찾기 어려웠다. 사용자가 입력하기 전에 기본적으로 0을 보여주는 등 가볍다고 생각한 기능 하나 추가하는 데도 막막했다. 그런데 그렇게 막막한 와중에도 재밌었다. 돌고 돌아 찾더라도 원인은 명확히 있었고, 내 손으로 고칠 수 있었다. 그렇게 고치고 원하는 기능을 구현하는 보람이 컸다.

"아니, 이 재밌는 걸 개발자만 하고 있었다고?"

그렇게 개발 자체에 재미를 느꼈다. 그리고 기획을 얼마나 상세히 해야 하는지 더 명확하게 와닿았다. '사칙연산 계산기를 만들어보자.'라고 막연히 생각하면 그저 당연하게 느껴지는 기능들이, 개발자 입장에서 다가가니까 하나도 당연하지 않았다. 개발을 배워보길 잘했다. 서비스를 만드는 것 과정 자체가 더 재밌어지고 있었다.

다음으로는 아예 앱 시장에 등록할 서비스를 하나 만들어보려고 한다. 이에 대한 내용도 브런치에 기록할 예정이다.




keyword
매거진의 이전글게으른 나에 대한 반성