티스토리 뷰
작년에 운이 좋게 기획, 디자인, 개발 팀으로 나누어 협업 프로젝트를 진행하는 동아리에 들어갈 수 있었다.
처음 반 년동안은 리액트와 리액트 네이티브 스터디를 진행했고, 하반기 부터는 프로젝트를 진행하면서 앱을 완성했다.
그리고 지난주 화요일 내가 만든 앱이 출시가 됐다!
내가 만든 앱이 플레이 스토어에 있다는 게 되게 신기하고 뿌듯하면서, 한편으로는 아쉬움도 살짝 든다.
프로젝트를 진행하면서 배웠던 것, 아쉬웠던 것들이 생각이 나 잊어버리기전에 기록하려고 한다.
앱은 React-Native 로 만들었으며 현재 안드로이드 버전만 출시되어 있다.
R Ticcle - 차곡차곡 산처럼 쌓이는 작은 정보들 - Google Play 앱
R Ticcle로 어제 본 SNS 게시글, 그저께 봤던 블로그, 지난 주에 읽은 웹툰, 뉴스 기사를 전부 손쉽게 꺼내볼 수 있도록 모아두세요.
play.google.com
배웠던 점
코딩실력
우선 3월에 동아리에 처음 들어갔을 때 나는 JS(자바스크립트)를 거의 몰랐다.
Html과 Css에서 조금 얹어서 웹사이트 껍데기만 만들수 있는 정도였다.
React와 React-Native는 아예 몰랐다.
동아리 초기에 React 스터디 과제가 있었다.
API를 받아와 출력하는 과제였는데, 그때 JS 배열 메소드를 몰라 For루프를 돌며 배열에 있는 항목들을 출력했다.
다 같이 과제 코드 리뷰를 하는데 내 코드가 정말 형편없어 보였다.
너무 부끄러웠다.
곧장 서점으로 달려가 JS 문법책을 하나 샀다.
한 7 ~ 800 페이지 정도 되는 책이였는데 3일만에 다 본 것 같다.
그때서야 내가 JS를 정말 몰랐었구나 깨달았던 것 같다. 그러면서 한편으로는 자신감도 조금 생겼던 것 같다.
그리고 대략 1년이 지난 지금은 React-Native로 메모를 저장하는 앱을 만들었다.
1년 전에 아무 것도 몰랐었는데 지금은 백엔드와 통신하는 앱을 만들어 실제 배포를 했다.
지금 내가 코딩을 잘한다고 생각하지는 않지만 그래도 1년 전에 비하면 엄청난 성장을 했다는 것을 느낀다.
Github 다루기
혼자서 깃헙 레포지터리에 내 코드를 푸시할 때와는 달리 PR을 생성하고 팀원들의 코드에 코멘트를 달아주면서 Github에 대해 조금 더 익숙해졌다.
혼자서 할 때는 그냥 main 브렌치에 다 푸시를 때려박았는데, 이제는 브렌치를 만들어서 관리할 수 있다.
처음에는 브렌치 Merge하고 Pull하는게 너무 어려웠는데 이제는 익숙해졌다.
물론 익숙해지는 동안 많은 Merge Conflict를 겪은건 안비밀이다 😂
Github을 잘 못 다룬다고 느껴서 프로젝트가 끊나자마자 바로 깃헙 강의를 하나 결제했다.
확실히 실수한 경험을 토대로 강의를 들으니까 조금 더 와닿는 부분이 많았던 것 같다.
프로젝트를 하면서 부족한 부분을 직접 피부로 느끼고 보완해 나가는 법을 배웠던 거 같다.
커뮤니케이션 능력
나는 내가 되게 설명을 잘하는 줄 알고 살았다.
아마 팀플 같은 걸하면 발표를 맡아서 했기 때문에 그런 생각을 했던 것 같다.
프로젝트를 진행하면서 내가 생각보다 설명을 잘 못한다는 것을 깨달았다.
개발자들에게 복잡한 코드를 설명하거나, 디자이너나 기획자에게 이 기능을 추가할 수 없는 이유에 대해 설명해야하는데 어떤 말을 해야할 지 떠오르지가 않았다.
커뮤니케이션을 잘 하기위해서는 우선 내가 완벽히 이해해야 했다.
그러기 위해서 질문이 나올 수 있는 것에 대해 미리 미리 조금씩 공부했다.
어떤 식으로 설명할지 회의 전에 한 번씩 이미지 트레이닝을 했던 것 같다.
PR이나 문서를 작성할 때도 그냥 후다닥 작성하는 것이 아니라, 다 작성하고 한 번 읽어보면서 어색한 부분은 없는지 확인했다.
어떻게 하면 더 쉽게 설명 해줄 수 있을까 싶어 초보자를 위한 개발 용어 책도 읽었다.
결론적으로 생각해보면 내가 완전히 이해하고 있던 부분은 쉽고 깔끔하게 설명할 수 있었다.
프로그래밍 언어뿐만 아니라 기본 개발 용어도 잘 정리해놔야겠다는 생각을 했다.
공식문서의 중요성
이전에는 모르는 건 구글에서 검색해서 코드를 가져다 쓰면 된다고 생각했었다.
구글에 모든 것이 다 있다고는 하지만 내 앱에 맞춘 원하는 기능을 찾는 건 거의 불가능 하다.
생각해봐라. 애초에 새로운 앱을 만든다는 것이 기존 앱에서 변화를 준다는 것인데 새로운 것이 구글에 미리 있을리 만무하다.
그렇기에 공식문서의 중요성을 다시 한 번 깨달았다. 공식문서에 나와있는 것을 잘 읽고 이해해서 내가 원하는 기능을 구현해야 한다.
나도 문서를 잘 작성해야겠다고 다짐했다.
아쉬웠던 점
코딩실력
우선은 프로그래밍 언어(JS)가 미숙했다.
변수를 바꿨는데 이전 스크린에 있는 변수도 같이 변경됐다.
아무리 찾아봐도 변수를 바꾸는 코드가 없었는데 계속해서 바뀌니까 정신이 혼미해졌다.
이거 리액트 네이티브가 뭔가 잘못된거 아닌가 하는 생각도 들었다.
알고보니 얕은 복사를 하고 있어서 이전 스크린의 변수를 참조하고 있었다.
기본 문법의 중요성을 다시 한 번 느꼈다.
서버에서 가져온 데이터를 다루는 것도 어려웠다.
어떻게 하면 효율적으로 데이터를 다룰 수 있을까 고민했었던 것 같다.
이 때 앱의 전체적인 아키텍쳐와 디자인 패턴이 왜 중요한지를 깨달았다.
앱을 출시하기는 했지만 이제부터가 진짜 시작이라는 생각이 들었다.
팀원 비율
프로젝트 초기에는 기획 1명, 디자인 2명, 개발 3명으로 시작했었다
그러던 중 디자이너 한 분이 취업을 하셔서 중간에 나가게 되었다. 기획자도 취업을 해서 프로젝트에 신경을 잘 쓰지 못했다.
다만 중간에 개발자 1명이 충원되어 개발하는 과정에 있어서는 조금의 여유로움이 있었다.
여기서 조금 아쉬웠던 점은 각 팀별로 인원비가 안 맞았다는 것이다.
기획자가 리더 역할을 하고 전체적으로 팀을 이끌지만 그래도 대부분의 결정사항은 과반수로 결정되었다.
기능을 추가할 때 개발적으로 어렵거나 복잡한 사항에 있어서는 개발자는 별로 내키지 않는다.
기획자 1명, 디자이너 1명, 개발자 4명이다 보니 과반수로 하게 되면 거의 대부분이 개발자가 원하는 방향으로 가게 되었다. 그러다 보니 조금은 도전에 소극적이지 않았나 싶다.
우리 팀원들이 절대 나태했다는 것이 아니다. 다만 구조가 만드는 환경이 있을 수 밖에 없어 조금은 아쉬웠다.
컨벤션
앱을 만들기 전, 파일 디렉토리를 어떻게 하고, 함수를 어떻게 작성할지 등 기본적인 컨벤션을 정했다.
하지만 프로젝트가 처음이다 보니 조금은 부족했다.
PR을 확인하는 과정에서 함수이름이나 줄바꿈과 관련된 여러 번 코멘트가 달렸다.
각자의 에디터(VSCode)에 설치해놓은 Extenstion이 임의로 줄바꿈을 해버렸다.
컨벤션을 정할 때 에디터 설정을 같이 했어야 했다.
프로젝트 초기에는 아이콘과 이미지 파일을 분리해놨는데 후반에는 뒤죽박죽 섞여버렸다.
에어비앤비와 같이 글로벌 테크 기업이 작성한 컨벤션들이 있다는 것을 나중에 알았다.
미리 알았더라면 프로젝트 시작 전에 조금 더 상세하게 컨벤션을 정하고 문서로 잘 정리해놨어야 하는 아쉬움이 든다.
테스팅
나는 테스팅이라는 것이 완성된 프로그램을 테스팅 프로그램에 넣으면 자동으로 테스트해주는 것인 줄 알았다.
프로젝트를 진행하면서 학교에서는 소프트웨어 공학 수업을 듣게 되었는데 거기서 이제 진짜 테스트가 무엇인지 배웠다.
테스팅이 생각했던 것보다 훨씬 중요하며 실제 코드를 작성하는 것만큼 테스트 코드에도 많은 노력을 쏟아야한다는 것을 뒤늦게 알았다.
조금 미리 알았더라면 테스트 코드도 작성하는 것을 생각해서 일정을 짜고, 테스트 코드도 작성을 했을텐데 하는 아쉬움이 든다.
지금 생각나는 건 이 정도 인 것 같다. 추후에 생각이 나면 더 추가해야 겠다.
지난 1년 동안 앱을 잘 만들기 위해 책도 읽고 구글링도 하고 팀원들에게도 물어가며 공부했던 것이 떠오른다.
다음 프로젝트에서는 아쉬운 점을 보완해서 더 완성도 있는 앱을 만들거다.
끝으로 지난 1년동안 같이 프로젝트를 진행하면서 많은 가르침을 준 팀원들에게 다시 한 번 고마운 마음을 전한다 😊
- Total
- Today
- Yesterday
- 부스트캠프7기
- 부스트캠프
- Combine
- Swift공식문서
- vapor
- 프로그래머스
- SwiftUI
- Swift 서버
- UX
- 코딩
- 코딩테스트
- 애플
- todo앱
- 코딩 테스트
- 날씨어플
- TODO
- Swift DocC
- 개발
- Swift 디자인 패턴
- 책후기
- 디자인 패턴
- 책
- 부스트캠프iOS
- 필독서
- 앱개발
- Swift문법
- swiftUI 기초
- ios
- Swift
- 책리뷰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |