반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

Apple Developer Academy @ POSTECH // MC2 ) campare 회고 본문

오뚝이 개발자/애플 아카데미

Apple Developer Academy @ POSTECH // MC2 ) campare 회고

rriver2 2022. 6. 22. 22:49
반응형

 

너어어무우 기나긴 MC2가 끝나고 드디어 브릿지 기간이 돌아왔다 ! 

이번에는 팀 챌린지였던 만큼 개인적인 회고한명의 팀 구성원으로서의 회고, 그리고 좀 더 나은 개발자가 되기 위한 ? 회고를 하려 한다. 

 

 

 

  🌷 우선은 빠질 수 없는 우리 팀 자랑 ~

 

정말 감사하게도 좋은 사람들을 만났다. 

기술적으로도 너무 훌륭하신 분들이었지만 너무나도 따숩고 좋은 이야기들을 나눌 수 있었고 덕분에 많은 성장을 했다. 

특히 바쁜 와중에도 서로의 분야를 이해하고자 했던 우리들의 노력들은 정말 너무 잘했다는 생각이 든다. 

어려운 위기들이 많았고, 상황적으로도 힘든 순간들이 많았는데

서로를 걱정하면서 자신이 할 수 있는 일들을 해냈던 우리 팀원들에게 고맙다는 말과, 즐거웠다는 말을 먼저 하고 싶다. 

 

 

뀼 ~ 👍🏻👍🏻



 🌷 개인 회고   

  🥗 우선은 지난 챌린지의 회고를 기반으로 회고 !  

지난 챌린지가 사실은 MC1 끝나자 마자 WWDC 준비하고 바로 시작했던 NC1이라 진짜 너무 힘들었었는데,

꾸역꾸역 책상에 앉아 회고를 작성 했었었다. 

그리고 그 과정이 나에게 위로를 해주듯 이번 MC2에 많은 도움을 주었다. 

오또케 활용을 했냐면은 챌린지 기간 중에 개발 주 전에 미리 부족했었던 부분을 공부했던 것! 

그래서 이번 회고는 NC1때 작성했던 회고들을 중심으로 시작해보고자 한다!

 

 

지난 NC1회고를 보면 이렇게 아쉬웠던 점이 있었다. 

1 ) 코드 그룹핑 실패  
2 ) 반응형 ? 앱 만들기   
3 ) API나 Core data 사용하기
4 ) 제가 ..  직설적이라고요 ..?  
5 ) 마지막으로 기록하기  

그래서 시작하는 숙제 검사 ! ㅎㅎ

 

1, 2) 코드 그룹핑, 반응형? 앱 만들기

✨ 나름 ? 지난 챌린지 때보다는 폴더링을 잘한 것 같다는 느낌이 확연히 들었다. ( 물론 넘어야 하는 산들이 많지만,,!  )

하지만 항상 아쉬움은 남는 법 !

폴더링을 자세히 짜고 시작하지는 못 했어서 깃 충돌이 좀 있었다. 같은 명 파일이 두개나.. 있기도 하고, 그것 때문에 경로를 못찾기도 하고 ^^ ㅋㅋㅋㅋㅋ 그래서 다음에는 팀원들과 폴더를 최대한 자세히 짜고 시작해야 하겠다는 생각이 들었다. ( 또, 폴더만 있고 안에 파일이 없이 푸쉬를 하면 가끔 퉷 하면서 에러가 발생하기도 한다는 것을 알았다 ! )

 

 또, 이번에 MVVM 구조를 사용해서 코드를 짜려고 노력했다. ( 부족한 점들도 있겠지만, )

팀원들과 다 같이 많은 것을 배울 수 있었던 시간이었다. 많이 추상적이기만 했었는데 이번에 하면서 그래도 MC2 시작 전보다는 더 많이 알게 되지 않았나 하는 생각이 들었다. 그리고 4-5년 동안 현업에서 배우지 않았다면, 아키텍쳐는 사실 제대로 습득하기 어렵다고 들었기 때문에, 이번에는 한번 시도를 해봤고, 이후에도 계속 적용을 해가면서 공부를 함과 동시에, 각 앱에 맞는 아키텍쳐를 적용해보는 것을 연습해보고자 한다. 

 

 

 그리고 이전에 적었던 회고를 중심으로 내가 원했던 부분을 미리 집중해서 공부할 수 있었고, 결국엔 팀 프로젝트에서도 코드로 적용할 수 있었다. 특히 가장 뿌듯했던 부분은 이렇게 extension으로 자주 사용하는 modifier나 color들을 빼서 관리를 했다는 점이었다.

이 부분은 처음 시작할 때 관리를 하지 않으면 팀 프로젝트이기 때문에 중간에 고치기 힘든데, 이렇게 디자이너랑 이야기를 해서 시작

한 지 얼마 안 됐을 때 이렇게 코드를 빼서 관리하고 다른 개발자들에게 알려줄 수 있었던 게 개인적으로 작지만 컸던 소중한 미니 노력이었다. 그리고 struct으로 빼는 거 말고 @ViewBuilder를 사용해보라는 영의 조언을 받았는데, 시간에 쫓기는 바람에 이거를 코드로 쓰지 못해서 아쉬움도,, 많이 남는다. 다음 번에는 좀 더 공부를 해서 업그레이드 된 버전으로 사용해보고 싶다 !

 

 +) 위에서 "이 점들을 토대로 내가 원했던 부분을 집중해서 공부할 수 있었고,"라고 이야기를 했는데, 

어떻게 공부를 했었냐면, 이분의 강의를 들으면서 레포를 파서 이렇게 코드를 적으면서 하나하나 공부를 했었다.

중간 중간에 기억에 남거나 공유했으면 하는 것들은 블로그 포스팅도 했었구, 앞으로도 이렇게 꾸준히 조금씩 할 예정이다 ! 

많은 분들의 강의 중에 이 분의 강의를 듣는 이유는 되게 짧은 영상으로 많은 것을 알려주셔서 1일 1영상을 꾸준히 할 수 있었고, 알아서 넘어가고 싶었던 부분들도 들으니까 새롭게 느낄 수 있었던 포인트들도 있었어서이다. 그리고 무엇보다 영어공부도 같이 할 수 있고, 이 분 딕션이 뭔가 친근해서 어렵게 느껴지지도 않았다 ㅎㅎ !



 또 팀원의 accessibility를 고려하자는 말 덕분에 이렇게 사용자가 설정에서 설정한 텍스트의 크기를 고려해서 앱을 만들 수 있었다. 

이런 디테일들이 우리 앱의 퀄리티를 좌우한다고 생각을 했고, 그래서 나중에 다 되면 하자! 보다는 미리미리 코드를 짜서 첫 단추부터 잘 꿰기 위해서 노력했던 것 같다. 다음번에는 DarkMode도 꼭 개발을 해보고 싶다.

 

3) API나 Core data 사용하기

해야 하는 게 많아서 매번 뒷전으로 넘겼었는데, 이번 기회를 통해 API와 Core data를 사용해보고 싶었다.

원래 웹만 만들어봤던 터라, 앱 만의 매력을 느끼고 싶어서 Core data를 하고 싶었고,

데이터를 정제해서 가지고 노는 걸 좋아해서 API로 통신을 해서 작업을 하고 싶었다.

하지만 시간적인 제약 사항으로 인해,, 둘 다 하지는 못했다. 하지만 ! 이후에 이번 프로젝트를 좀 더 확장 하기로 했었기에 json으로 파일을 읽어와서 사용을 했었다. 이미지 같은 경우도 asset에 박아 넣는 게 아니라, Data로 변환하는 코드를 짰다.

그래서 url 공부 못지 않게 많이 배웠던 것 같고 이 부분이 개인적으로는 되게 재밌었던 것 같다. 

하지만, API랑 Core data는 MC3 개발 전에 꼭 공부를 하고 넘어가야겠다는 생각을 2만번 했다. 딱 기다려.

 

4) 제가 직설적이라고요 ?

이거는 진짜 노력을 많이 했다. 직설적이고 싶었던 이유가 그 사람에게 도움이 되는 말을 해주고 싶었던 것이였고 그래서 그 전달은 제대로 하되, 상대가 좀 더 좋게 받아들일 수 있도록 이야기를 하기 위해서 책도 읽어보고 강연도 들었다 ㅎㅎ !!

그래서 이번에 팀이나 그룹 내에서 피드백을 주고 받거나 개인적으로 내게 피드백을 원하셨던 분들에게 이 것을 적용해서 했더니,

주변에서 좋은 말씀들을 많이 해 주셨다. 

" 리버는 피드백을 할 때 진심이 느껴져서 좋아요 " 라던가,
" 리버는 남들이 캐치하지 못하는 점을 짚어주셔서 다시 한번 생각해볼 수 있었던 거 같아요 " 라던가 ?

많이 뿌듯하기도 했고 자랑스러웠던 피드백이었던 것 같고 이런 말씀을 해주셔서 되게 마음이 따스해졌다. 감사합니당...! 🥹

 

하지만, 정작 팀원들에게는 이런 말을 들어보지 못했다는 아쉬움이 있다. 아마 이 점은 뒤에 이야기를 하겠지만 이번 챌린지 주제에 많이 포커스를 하지 못했던 이유도 있을 것 같고, 내가 속해있는 팀이기 때문에 날카롭거나 정확한 피드백을 주기 어려웠을 수도 있었다는 생각이 들었다. 

 

5) 기록하기 !

그래서 오늘도,,, 열심히 기록합니다 ^^..

 


 🥗 UX 공부 ...  

1) 나는 웨 핵심을 놓칠까 ?  

이번 챌린지가 UX 였었다.

우리 앱으로 단 한명의 인생을 바꿀 수만 있다면 ? 

여러 명의 어설픈 유저가 아니라 우리 앱이 없으면 안되는 한 명의 열렬한 팬을 만들어 봅시다.

 

근데 사실 engage, investigate, act 단계를 거치면서 이 질문들에 대해 곰곰히 생각해본 적이 없었던 거 같다. 

그리고 이게 내가 놓쳤던 포인트가 아니었나 싶다.

"한 명"의 열렬한 팬이 없을 것 같고, 누군가 써본다면 한번쯤 써보고 괜찮네요 정도에 그칠 거 같은 앱이라는 것..

사실은 한 명의 열렬한 팬들이 모여 다수가 되는 건데 말이다.

사람도 마찬가지로 비슷한 사람들, 모두가 좋아하는 특징들을 가진 사람보다 한 가지 분명하면서 특출난 사람을 좋아한다. 

앱도 다르지 않을 텐데 ,, 매번 욕심이 앞을 가려서 눈을 뜨지 못하는 것 같다, 

 

하지만 그럼에도 불구하고 잘했다고 생각했던 거는, 우리팀은 애플에서 밀었던 커리큘럼을 잘 따라 갔다는 거다.

당연히 엇나가고 헛나갈 수 있지만, 잘 해보려고 노력을 했고, 거기서 크고 작은 경험들을 한 데에서 의의가 충분히 있었다고 본다.

그리고 우리는 MVP에 초점을 맞췄었고, 그렇기에 누군가를 유혹할 도구가 많이 마련되지 않은 것도 어쩌면 당연한 일이었던 거 같기도 하다.

 

2) UT 넌 누구냐.

UT를 너무 하고 싶었다. 근데 우리 앱이 콘텐츠 중심 앱이라서 low-fi 단계에서 UT를 할 수 없었다.. 그래서 계속 미뤄지고 미뤄졌는데 아직도 제대로 해보지 못했다. 🥲 그래서 아직 UT에 대해서 잘 모르겠다. 

그리고 여기 아카데미 내에서 하는 앱 UT는 내가 느끼기에 대부분 UI와 관련된 내용들이었는데, 내가 알기로는 UT가 사실은 앱의 근본도 흔들 수 있는 강력한 무언가라고 생각했고 그렇게 알아왔었다. 그래서 작게 UI 정도를 피드백 받은 UT말고, 제대로 된 UT를 통해서 앱을 한번 뒤엎고 싶기도 하다. 

다음 챌린지때는 꼭,  low-fi 단계에서도 UT를 할 수 있는 앱이여서 low-fi 단계에서 한번 해보고 이후에 hi-fi 단계에서도, 그리고 개발이 거의 끝나고 출시 전에도 한번 해보고 싶다.

 

그리고, 어떻게 사람이.. 한번에 ! 잘 ! 어? 만들겠냐 !!

 

근데 잘 만들고 싶다. 사람들이 길에서 내가 만든 앱을 가지고 있는 걸 .. 보고 싶다..

그래서 책을 잔뜩 빌렸다. 공부하고 싶은 거를 잔뜩 적어놨다. ( 다.. 할 수는 있겠지...? )

모르면 알아가야지. 찾아가야지 ! 다음 챌린지에는 분명 달라질 거다. 

아니, 내일의 나는 오늘의 나보다 발전되어 있을 거다 !

뭐가 틀렸는지, 어디서 어긋났는지 조차 모르겠는 지금이지만, 분명 달라져 있을 거다.

 


 🥗 그 외에 노력했던 점들 

1) 깃 공부 !!

진짜.. 진짜.. 내 평생의 발목을 잡을 것만 같았던 깃을 이제 좀 친구로 받아들이기 시작한 거 같은..? 느낌이 든다.

개발 시작할 때 맞춰서 깃 & 깃허브 책을 1.5일만에 완독하고 시작했을 때 보였던 깃의 세상이란 ~ !! 

자신감도 생겼고, 내가 어떤 상황에서 어떤 코드를 써야 하는지도 알게 되었고, main과 master, checkout과 switch 등 재밌는 이슈들도 알아볼 수 있었다. 

그리고 좋은 팀원들 덕분에 책 이외에서도 많이 배울 수 있었다. 고마워요.. 다들 🥹 

 

또, 깃 공부를 하면서 노션에다가 정리를 했었는데, 이것도 이제 차근차근 정리를 해서 블로그에 작성해보고자 한다 !

+ 코드 리뷰

코드 리뷰의 참맛을 알아버렸다.. 너무 재밌었고, 앞으로도 계속 하고 싶다 ! 우헤헤 🌸

 

 

 🥗 그 외에 아쉬웠던 점들 

 The app need to propose function.

앱으로서만 할 수 있는 기능을 제공해야 한다.

그게 편리가 될 수도 있고, 정리가 될 수도 있고,, 

뭐가 될지는 모르겠지만, 앱이어야만 하는 무언가를 만들어야한다.

 

그리고 항상 생각해야 하는게 "코드 한 줄을 더 적는 것보다, 사실은 다른 방법을 찾는 게 맞는 방법일 수도 있다는 것이다."

사실은 내가 해결하고자 하는 문제가, 그 문제를 해결하는 방식이 꼭 앱이 아니라, 캠페인이 되어야 할 수도, 정부 차원에서 일어나야 하는 것일 수도 있기 때문이다.

 

아무튼,, 너무 당연한 말이지만, 절대 간과해서는 안되는 이번 MC2의 한 문장이었던 것 같다.

 

 


 🌷 한명의 팀 구성원으로서의 회고  

 🥗 팀에서 내가 없으면 안됐을까 ? 

이런 질문을 던질 때면 숙연해진다. 나는 사실 팀에서의 메인 디쉬가 아닌 느낌이 들었기.. 때문이다..

그래도 이번에는 소금같은 역할을 하고 싶었는데, 이번 챌린지를 회고해봤을 때도, 그런 사람이 아니라는 생각이 들었다.

내가 디자인을 잘하는 것도 아니고, UX에 뿜!! 하는 것도 아니고, 개발을 잘하는 것도 아니고,, 뭐 경력이 있냐 !!!! 으헝헝 ㅠㅠ

하지만 다 관심이 있고 어느정도 하고 싶어 한다. 그래서 문제가 생겼던 것 같다.

다 어중간하게 깨작거리고 있으니까, 짭쪼름한 맛을 낼 수 있는 소금이 되지 못했던 것이다.

그래서 다음 챌린지때는 좀 더 나의 색을 돋보일 수 있는, 적어도 팀 내에서는 내가 아니면 하지 못할 일들을 찾아가보고 싶다 !

그리고 이번 팀 회고에서 나에게 해주시는 칭찬들을 잘 새겨 듣고 레벨업시키고 나의 단점들을 잘 오려내 봐야겠다.. ( 어쩌면 도려내야 할 수도..! )

마지막으로는 당연히 개발 실력을 키우고 싶다. 아니? 키워야겠다.

어쨌든 개발자는 코더를 포함하는 범주이니까, 개발자가 되기 이전에 첫 단추인 멋진 코더가 되어야 겠다.

꾸준히 공부하고 기록하고 열정적으로 나의 능력을 발굴해서 앱으로 표현하고 코드로 표현해야겠다.

다만, 조급해하지만 말자 !

 

 🥗 팀원들의 장점들을 끌어올렸는가 ? 최고의 시너지를 만들기 위해 노력했는가 ? 

처음 MC2를 시작할 때 가장 걱정이 되었던 부분은 나랑 안 맞는 사람을 만나면 어떡하지? 였었다.

하지만 멘토링을 하면서, 사실은 그게 나의 작은 그릇에서 시작되었음을 알 수 있었다.

그 누구나 장점이 있고, 각자의 특징들이 있다.

그리고 그 점들을 잘 관찰해서 엮어 우리들만의 시너지를 만드는 것이 협업에서 가장 중요한 부분이다.

사실 norm 같은 것도 이 때문에 만들고 지키는 게 아닐까?

 

그런 의미로 한 1.5주가 지났을 시점부터 내가 우리 팀원들의 에너지를 관찰해보고

어떻게 하면 우리가 함께 잘 나아갈 수 있을까에 대해 고민을 해봤었는데, 관찰력이 부족해서인지 결론을 내지 못했다.

 

그래서 이번 챌린지가 끝나고 나서 회고를 작성하면서 각 사람들의 에너지가 무엇에서부터 흘러나왔는지, 또 어느 포인트에서 그 트리거 역할들을 했었는지 고민해봤다.

이렇게 시간이 지나고 챌린지가 끝나자, 어느정도 느낌이 왔다.

이 사람은 이 포인트에서 몰입을 시작했구나, 혹은 어떤 습관을 가지고 있구나 처럼 말이지.

그리고 동시에 아 이때 이 사람에게 이런 말을 했다면 어땠을까?

이 사람이 이런 상황에 처했을 때 이 테스크를 나눠줬다면 어땠을까? 하면서 최선의 방법이 뭐였을 지에 대해 다시 공글려 생각해 봤다.

 

또, 돌아서 이번 챌린지 동안의 나의 모습을 바라봤다.

나는 어디에 에너지를 소비하는 사람인가 ?
나는 어떨 때 가장 에너지를 느끼는가 ?

 

나는 나의 일상이 보장될 때 에너지를 느낀다.

아니 정확히 이야기 하면, 챌린지에 쏟을 에너지를 나의 반복되는 일과에서 얻어낸다.

그래서 혼자 생각을 정리하고 공부를 하고 적용을 하는 과정에서 챌린지에 빠져들 수 있었던 것 같다.

또, 정확히 이게 우리 앱에 필요하다고 생각될 때, 이런 앱이 세상에 나왔으면 할 때 그럴 때 좀 더 몰입을 할 수 있는 것 같다.

 

그런 의미로 주제가 나오고 나서 하는 이 세가지 질문이 나에게는 유달리 더 중요하게 다가오는 것 같다.

이것이 과연 우리에게 개인적으로 의미가 있나요 ?
앞으로 2주 동안 이 Challenge에서 팀원들과 함께 협업하면서 동기부여를 느낄 수 있나요 ?
나를 위해 배울 기회가 있나요 ?

다음 MC3 챌린지에서는 이 질문이 나오는 시기에는 좀 더 진지하게 이 질문들에 대해 고민하는 시간을 가져야 할 것 같다.

 


  🌷 좀 더 나은 개발자가 되기 위해서   

  🥗 일과 일상은 구별하기  

너무 챌린지에 빠져서 일상을 못 살기도 했다. 밤에 꿈을 꾸기도 하고, 밥을 거르기도 하고, 잠을 못자기도 하고,,,

사실은 가끔은 밥도 안 먹고 자지도 않고 깨어있는 시간이 길어서 24시간동안 내가 할 수 있는 것들이 더 많으면 좋겠다는 생각도 했다.

하지만 현실은 그렇지 않은 걸? 시간은 제한되어 있고 나는 해야 할 일들이 많다.

 

  🥗 초점을 맞추기  

그럴 때마다 그래프를 그려서 중요한 것과 긴급하게 처리해야 하는 것들을 기준으로 해야 할 일들을 나누는 데, 

사실은 모든게 중요하고 나는 다방면으로 아직 배우고 있는 사람이기에,, 

모두가 중요하고 긴급해졌다. 그럴 때일 수록 더 많이 더 빨리 수용하기 위해서 노력을 했었는데, ㅎㅎ

더 오래, 더 깊게 가기 위해서는 어쩌면 이 방법이 옳지 않을 수도 있겠구나라는 생각이 들었다, 그래서 !

몇 가지 스터디를 정리했다. 정리했고, 내가 정말 포커싱할 , 지금 여기서 배워야만 하는, 여기서만, 이 사람들과만 할 수가 있는 것들을 우선순위로 세워서 줄였다.

좀 더 효율적으로, 좀 더 멋지게, 좀 더 체계적이게 !!

 

 

그리고 어쩌면 가까운 미래에는
내가 바라는 이상향으로 한발짝 다가간 내가 될 거라 믿어 의심치 않는다.

 

  🥗 나의 장점 극대화 하기  

내가 잘하는 것은 꾸준히 야금야금 ! 

항상 그래왔듯, 남 신경 쓰지 말고 내가 해야할 일들을 꾸준히 해 나가자!

이렇게 좋은 공동체에서 배우는 건 정말 쉽지 않다. 

내가 무언가에 온전히 집중할 수 있는 시기는 인생에서 길지 않다.
그리고 그 시기에 내가 사랑하는 일을 찾을 확률은 정말 낮다.
근데 책임져야 하는 것들이 작아서
나에게 오로지 포커스 할 수 있는 이 시점에
그 사랑하는 일을 함께 할 수 있는 사람들과 함께 있는 현재, 

내가 온전히 이것에 빠져보지 않는 게 더 이상하지 않은가?

그리고 우리는 한 순간에 하나의 일만 집중 할 수 있다.
그렇기에 이번 9개월간은 지금까지 그래왔듯,
내가 하고 싶었던, 지금 하고 있는, 그리고 앞으로 밟아갈 이 길을
진심으로, 최선을 다해서 다이브 인 투 해보자 !

 

번외 ) MC3  개발 기간 전에 공부할 것들  

  1. urlSession (API 공부)  → 우선은 어떤 API들이 있는지 확인하고 관심있는 API로 어떤 미니 프로젝트를 해볼지 고민해봐야겠다.
  2. ARC 공부 ) 프로젝트를 하면서 궁금해졌다. 강한 참조 부분도 공부를 하고 weak 에 대해서도 알아보고 싶다.
  3. async await ) 그냥 코드를 쓰고 나서, 제대로 이해를 하지 못해서 후에 문제가 생겼었다. 이 부분의 문제를 찾아 해결하고 싶다.
  4. swiftUI ) MC2 개발 기간 전에 봤던 영상들을 계속 보면서 여러 아이디어들을 찾고, 코드를 리팩토링 하는 과정을 가지고 싶다.
  5. @ViewBuilder 공부해서 적용해보기
  6. DarkMode 개발
반응형
Comments