글을 쓰는 이유 🤔
iOS를 시작하고 두번째 산학 프로젝트를 하게 되었다. 첫 번째 프로젝트는 구조가 단순해서 초보자인 내가 사전지식 없이 이해하기에는 더 편했다.
이번에 하게 된 프로젝트는 기존에 있던 앱을 개조하고 번역해서 해외로 재 배포하는 프로젝트였다. 내가 하게된 부분은 기존 앱에서 지원하던 로그인 방식으로 소셜로그인(Apple로그인)으로 변경하고, 이미지와 로고 변경, 번역작업을 하게 되었다. 이 과정에서 추가적인 기능(로그인, 설정페이지 등)과 기존에 있던 앱의 오류들도 추가적으로 수정하게 되었다.
이제까지 제대로 된 프로젝트를 해본 적이 없었는데 WBS는 아무것도 모르는 나에게는 너무 짧았다. 2주간의 기간동안 개발하고, 1주간 QC를 진행하는 일정이였다.
이 과정에서 많은것을 느끼고 헤매면서 사라져버릴 기억과 감정에 대해 기록하고자 글을 작성한다.
깨달은 점 🫣
1. 남에게 보여줄 수 있는 코드, 내가 이해한 코드, 잘 정리된 코드를 작성하자.
처음 시작을 하는 과정에서 주저했던 이유는 기존에 짜여져 있던 코드들이 굉장히 잘 정리가 되어 있었고, MVVM을 적용해 많은 파일과 폴더들로 모두 분리되어 있었다. 그래서 여러곳에서 쓰이는 하나의 기능을 사용하기 위해서 그 부분만 복사해서 사용할 수 있는게 아니라 참조하고 있는 부분을 모두 알고 찾아서 함께 적어주어야 했다. 이런 구조에 익숙하지 않아 코드를 이해하는 것은 물론이고 조금이나마 이해할 수 있다고 여겨졌던 부분조차도 쉽게 사용하기 어려웠다. 아는게 없어서 모든 내용을 작성하는건 구글에 의존할 수 밖에 없었고 부족한 시간과 능력에 이해한 부분을 복사해서 붙여넣기에 급급했다. 그렇게 조각을 맞추듯 모아온 코드들로 하나의 기능을 완성시켰을 때 앱에서 보이기에는 문제가 없으나 코드를 다른사람에게 보여주기 창피할 정도로 엉망으로 짜여있었다. 예전에는 당장 돌아가기만 해도 성취감을 느꼈으나 기존 앱이 잘 정리되어 있었기 때문에 내가 작성한 부분과 너무 대비가 크게 느껴졌고 그런 와중에 기한은 부족하고 기업에서는 언제까지 만들수 있냐는 독촉아닌 독촉에 마음이 급해져 작은 부분들을 신경쓸 여유가 없어 앱이 정상적으로 작동해도 성취감 없는 일을 할 수 밖에 없었다.
이 프로젝트를 하면서 야곰아카데미 코드 스타터 캠프도 함께 진행하였는데, 그걸 하면서 내가 어떻게 코드를 작성해야 하는지 점점 감을 잡고 있었기 때문에 더 답답했던것도 있었던 것 같다.
2. 모르는건 물어보자
이 말이 어떻게 보면 ?인 말일 수 있으나 내 잘 물어보려고 하지 않는 내 성향에는 정말 필요한 마인드라는 생각을 하게 되었다. 2주간의 기간동안 개발을 완료했어야 했는데 swift문법도 완벽하게 알지 못하는 내가 Rx를 당장 어느정도 이해하고 한번도 해본 적 없는 API 통신까지 해야했는데 혼자 해볼 수 있을 때까지 해본다고 4일을 날려버렸다. 다행히 물어볼 수 있는 선배가 있었어서 다행이였기도 했지만.. 급할때는 빠르게 도움을 요청하는게 때로는 더 현명할 수 있다😭
3. 내가 잘못한게 아닐 수 있다.
프로젝트를 본격적으로 시작하기 전, 코드를 미리 받아 빌드를 했는데 apple developer에서 팀에 추가가 되지 않아 빌드가 안되는 오류가 발생했다. 처음 해보는 과정에 엄청나게 구글링 한 후 팀추가를 요청드렸는데, 그럼에도 빌드는 되지 않았고 내 문제인가 싶어 일주일동안 구글링한 결과 기업쪽에서 권한을 잘못준 것이였다ㅠ..ㅠ 이것때문에 일주일동안 애먹었다.
그리고 제플린 권한을 주지 않아 바보가 되기도 했고... 처음하는 회의에 도와주는 사람이 없어서 많이 외롭고 힘들게 적응했다.
어려웠던 점 😢
1. 기업 프로세스가 익숙하지 않아 파악이 느렸다.
처음 기업과 회의를 하게 되었을 때 단어들이 익숙하지 않고, 어떤 상황인지 빠르게 인지가 되지 않아 바보가 되어 버렸다. WBS를 기업에서 작성해서 보여주면서 진행하는데 문제가 없냐고 물어보셨는데 개발을 WBS상으로 해본적이 없었고, 그렇게 빠듯하게 짜놓은 기한에 맞춰 개발하는 경험이 없어서 감을 잡지 못해 그냥 괜찮다고 할 수 밖에 없었다. 그리고 권한을 안받아서 안되는건지 그냥 내가 바보라서 못한건지 파악이 안되서 시간을 정말 많이 버렸다..
2. 처음해보는 기능개발, 기술들
기존에 해본게 많지 않아 거의 다 처음 해보는 과정들이였다. 소셜로그인, Rx, MVVM, 서버통신 등 자잘한건 너무너무 많지만.. 기업에서 언제까지 할 수 있겠냐고 물어보는 질문에 안해봐서 모르겠다고 대답할 수 없어서 애매하게 대답할 수 밖에 없었다. 로티 적용이나 번역, 로고변경등과 같이 비교적 간단한 작업들도 해본 적이 없었기 때문에 어떤 오류가 생길 수 있는지 파악이 안된 상황이라 어려움이 많았다.
앞으로의 계획 😤
많은 걸 배웠다고 하면 배웠다고 할 수 있겠지만 나에게는 너무 많은 고통을 준 프로젝트였다. 결과적으로는 실력이 향상되었을 수도 있겠지만 자신감이 너무 많이 떨어졌고, 성취감은 얻지 못한 프로젝트였기 때문에 자신감을 기를 수 있는 공부를 해야겠다는 생각을 하게 되었다.
1. 디자인패턴 공부
어려움을 준 가장 큰 요소인 디자인패턴을 공부해야겠다는 생각을 하게 되었다. 이번 프로젝트를 통해 대충 어떤 틀로 구성되어 있는지 정도는 파악하였는데, 세부적인 요소들은 아직 알지 못해서 디자인패턴을 공부하고 추후에 진행할 개인 프로젝트에서 적용시켜 연습하는 경험을 해보아야겠다고 생각하게 되었다. 그리고 이번에 경험한 MVVM 외에도 다양한 디자인 패턴들이 있는데, 그것들을 전부 다 마스터 할 수는 없지만 어느정도 지식을 갖출 필요는 정말 있다고 크게 생각하게 되었다.
2. Swift API Design Guideline
야곰 아카데미를 하며 일부 읽긴 했지만 이를 다시 한번 정리하고 리마인드하여 !직접적용! 해 보아야겠다는 생각을 하게 되었다. 개인 프로젝트를 할 때 좀 더 깔끔하고 정돈된 코드 작성을 위해 적용시켜보아야겠다. 추가적으로 git commit message도 함께 공부하여 commit과 commit message도 규칙에 맞게 작성하는 습관을 들여야겠다.
3. 기초 탄탄히 잡기
야곰 아카데미에서 swift 기초 문법을 배우며 내가 잊고 있던 기초의 중요성에 대해 다시한번 생각하게 되었다. 수험생활 때 많은 선생님들이 강조하신 부분에 기초를 잘 잡아야 무너지지 않는다고 하셨는데 전공공부에서는 그걸 잊은 것 같다. 다른 몇몇 사람들은 당장 프로젝트를 해서 실력을 길러라 라는 말도 했지만.. 그말도 물론 맞는 말이지만 기초가 없으니 아무리 코드를 작성해도 자신이 없고 성취감이 없고 창피한 마음만 커진다. 어차피 남에게 보여줄 수 없는 코드를 작성하는 건 무의미하다고 생각하며, 남에게 보여줄 수 있는 코드는 기초를 알아야만 작성할 수 있다고 현재로써는 판단한다. 그렇다고 기약없이 기초만 공부할건 아니기 때문에 당장 조바심이 나도 잠깐 내려놓고 기초를 탄탄히 잡고 나도 예쁜 코드를 작성하고 싶다.
4. 개인 프로젝트
기업 프로젝트를 하면서 다 처음 경험하는 과정에 많은 부담과 스트레스를 받게 되었는데.. 이런 경험이 여기서 끝이 아니라 취업을 하게 된다면 이러한 과정은 일상화가 될 것이라고 생각한다. 간단한 클론코딩은 진행한 적이 있지만 내가 진짜 만들고 싶은 앱을 하나 만들어보아야겠다. 위에서 언급한 것들을 공부하고 직접 적용해보는 용도로 진행하려고 한다.
1) 혼자 진행하는 프로젝트여도 기능별로 기한을 정해두고 항상 머리속에 생각하며 약간의 조급함을 가지고 한다.
2) 목표는 내 성장이기 때문에 내가 이해한 코드만 작성한다.
3) swift 기초를 공부하며 나왔던 개념들을 최대한 활용하여 작성한다.
4) swift api design guideline을 지키며 작성한다. (공백 위치, 줄바꿈 수, 줄바꿈 위치 등 사소한 것 까지 모두 지켜가며 작성)
5) 프로젝트를 마치고 반드시 회고와 리팩토링을 진행한다.
6) git에 기능별로 commit log를 남기고, commit message도 가이드라인에 맞추어 작성한다. 추가적으로 브랜치도 한 브랜치에서 모두 작업하는게 아닌 pull requset와 merge를 통해 문제가 생겼을 때 복구 가능하도록 작성한다.
7) 고민하는 과정을 반드시 거친다. 그냥 적는 코드, 그냥하는 과정은 없도록 모든 코드와 과정에는 이유가 있어야 한다.
8) 출시를 목표로 한다. (그럼 돈도 모아야한다 ㅎ..ㅎ)
4. 적당한 휴식과 독서
공부를 쉰다는건 절대 아니지만 나를 위한 시간을 가져야 겠다는 생각을 한다. 학습적으로 많은 생각을 준 프로젝트였기도 했지만 사람들과 소통하는 과정에서 받은 감정들을 정리할 필요가 있다는 생각을 하였다. 오랜만에 책을 읽어야겠다.
주절주절 생각을 정리하려고 적었다. 뭔가 정리가 된 느낌이지만... 해야할건 더 많아진 것 같지만... 다 공부할 생각해서 많은걸 알게된 나를 생각하면 기분이 좋다 ☺️ 더 열심히 살아야겠다!!!💪🏻
'Life' 카테고리의 다른 글
[iOS] 라이브러리 커스텀 후 느낀점 (0) | 2023.06.14 |
---|---|
[iOS] 첫 배포 회고 (0) | 2022.10.08 |
야곰 아카데미 Swift 코드 스타터 캠프 4기 후기 (6) | 2022.05.19 |
2022년 목표 & 버킷리스트 (0) | 2022.01.15 |
블로그를 시작하다. (2) | 2022.01.14 |