서론
추석 연휴 동안 인터미션 기간을 보내고 5, 6, 7, 8주차를 마친 지금 회고를 해보려고 한다.
인터미션 기간은 휴식 기간이었다.
해보고 싶었던 게임도 해보고(시티즈 스카이라인 재밌다..) 맛있는 것도 먹으면서 휴식도 했지만, 2차 학습스프린트를 어떻게 해야 효율적으로 사용할 수 있을지 고민할 수 있는 시간이었다.
1차 학습 스프린트에서 단방향 이벤트 흐름도 구현해보고 Tuist 없이 모듈화도 진행해보고 많은 걸 학습할 수 있었지만, 마음 한편에는 이미 어느정도 아는 것들을 다시 학습하는 기분에 찜찜함이 있었다.
그래서 2차 학습 스프린트에선 한번도 안써본 것, 잘 모르는 것들을 위주로 학습해보려고 계획했다.
근데 이것도 5, 6주차에는 미션 특성 상 익숙한 것 위주로 학습했다.. 7, 8주차에서야 깨달아 버렸다ㅜ
오프라인 이야기
오프라인 이야기를 뺴놓을 수 없다.
2차 학습 스프린트에는 오프라인이 존재했다. 물론 모두가 강제로 하는 것은 아니고 신청자에 한해서 월화/수목, 양재/수내 이렇게 고를 수 있었다.
나는 월화 양재를 선택했지만, 56주차엔 수내가 걸렸고 78주차엔 양재로 배정되었다.
끝난 지금에서보면 4주 양재가 되었다면 끔찍하다..(양재 도어투도어 기준 출근2시간 퇴근1시간반..)
수내와 양재에서 만난 팀원들 분위기는 정말 상반되었다ㅋㅋㅋㅋ
수내에선 정말 정직하게(?) 열정적으로 학습에만 몰두했다.
점심도 대충 고르고, 개발 이야기만 하고 요구사항을 구현하기 위해 각자 개발하기 바빴다.
물론 정말 좋았다. iOS 개발 이야기를 이렇게 진득하게 한건 처음이었고, 많은 걸 배울 수 있었다!
기억에 남는 건 Swift Concurrency 를 주제로 한 마스터 클래스를 듣고 Continuation에 대해 토론하며 로우레벨의 Context Switching 까지 비교해보았던게 기억에 남는다ㅎㅎ
오프라인을 통해 얻어가고 싶었던 것
내가 오프라인을 신청했던 주된 목적은 네트워킹 이었다.
아무래도 출퇴근 시간도 있고 노트북 하나로 개발을 해야하다보니 온라인 환경에 비하면 개발 속도가 현저히 더뎠다. 하지만 나는 부스트캠프에 과제를 하러 온게 아니라 성장하러 온 것 이었다.
요구사항을 모두 개발하지 못해도 괜찮다고 생각했다. (조금 더 일찍 깨달았다면..)
오프라인에서 동료들과 소통하며 지식 공유도 하고 싶었고, 일단 친해지고 싶었다.
내 주변에는 iOS 개발자가 없다. 전공을 했지만 과 특성 상 소수의 동기들만 친한데, 그 중 개발을 하는 동기도 거의 없고 iOS는 한 명밖에 없다.. 그래서 부스트캠프에 지원할 때부터 개발에 진심인 동료들과 많이 친해지고 싶었다.
너무 재미있는 멤버들
그리고 대망의 7, 8주차 양재 멤버들은 분위기가 정말 상반되었다.
팀 분위기를 논하기 전에 사내 공간이 주는 분위기부터 달랐다.
수내가 깔끔한 세미나실 같은 분위기였다면,
양재는 연도별 iMac도 박물관처럼 전시되어있었고 다트 게임, 보드 게임, 콘솔 게임 등 구경할 것 천지였다.(다 못즐겨본게 아쉽다ㅜ)
|
|
그러다보니 양재는 좀 더 프리한 분위기로 학습하고 네트워킹이 더 활발한 느낌이었다.
그리고 팀원들이 모두 따뜻한 사람들이었고, 재밌는 사람들밖에 없었다ㅋㅋㅋ
공부해야 하는데 자꾸 수다떨고 싶고 같이 놀고싶은 사람들이라 집중하기 힘들었다..
특히 7, 8주차는 짝프로그래밍으로 진행되었는데 내 짝들이랑 너무 잘맞아 웃느라 바빴다.. 떠나보내기 아쉽다..
안해본 거 해보기
그렇다고 놀기만 한 건 아니었다.
짝프로그래밍을 시작할 때 각자 학습해보고 싶은 것들을 종합해보았다.
그렇게 모듈화, 코디네이터 패턴, 위젯, CoreML 라는 주제를 선정했다.
모듈화는 내 경험을 바탕으로 간단하게 레이어를 나누었고 프레젠테이션 모듈, 도메인 모듈, 네트워크 모듈, 파운데이션 모듈, 코어 모듈 이렇게 xcframework를 통해 나누었다.
덕분에 동료들이 모듈화를 너무 어렵게 생각하지 않게 된 것 같아 조금 뿌듯했다.
코디네이터 패턴은 내가 강력하게 주장해 적용해보기로 했다.
한번도 사용해본 적이 없고 화면 전환을 쉽게(?) 도와주는 패턴이라고 어렴풋이 이해하고 있었다.
그리고 마침 SwiftUI로 뷰를 만들라는 요구사항이 있어, SwiftUI의 고질적인 문제인 화면전환을 이 패턴을 적용하면 해결할 수 있지 않을까 했다.
그리고 적용해본 소감은 코디네이터 패턴은 화면 전환을 쉽게 해주는 패턴이 아니었다. 오히려 복잡해졌다. 코디네이터간 이벤트를 전달하기 위해 delegate를 체이닝해 사용해야 했는데 이것도 문제가 많았고, 팀원 모두 코디네이터 패턴에 대해 잘 몰랐고 스유는 더 모르는 상태라 혼돈 그 자체였다.
그래서 스유 뷰를 UIKit으로 호스팅해 사용하기로 했고, 코디네이터 패턴도 UIKit 스럽게(?) 작성해 사용해보았지만, 여전히 복잡하긴 똑같았다.
그래서 내린 결론은 코디네이터 패턴은 뷰컨트롤러에서 화면 전환 책임을 분리할 수 있어 조금더 OOP스러운 코드를 작성할 수 있다는 장점이 있고, 경험해보진 않았지만 연관이 없는 화면끼리의 전환 즉, 복잡한 화면에서 이점을 가질 수 있지만, 복잡해 화면 구성이 복잡하지 않다면 오히려 안쓰는게 좋다라고 결론을 내렸다.
위젯도 처음으로 찍먹을 해보았는데 재밌었다.
위젯이 처음 생겼을 때 AppGroup에 대해서 이론만 들었었는데, 필요한 경우도 경험해보았고 위젯이 언제 갱신되는지 어떻게 갱신시킬 수 있는지 삽질도 많이 해보았다.
용량이 너무 큰 이미지는 보여줄 수 없다는 것도 경험했다.
그룹 프로젝트 때 사용해볼 수 있을까?
그룹 프로젝트 준비
2차 학습 스프린트 오프라인 나가느라 힘들기도 했지만 온라인으로만 진행하던 1차 학습스프린트에 비해 훨씬 재밌었다.
이제 일주일간 인터미션 기간이 주어진다.
하지만 지난 인터미션기간과는 달리 평일일정도 있고, 그룹 프로젝트 팀원들과 미리 합도 맞춰볼 수 있을 것 같다.
그리고 개인적으로는 Swift6에 대비하고 그룹프로젝트와 사이드 프로젝트에 Swift6를 적용해보기 위해 Actor를 비롯한 Swift Concurrency 개념들에 대해 학습하기 위해 강의도 결제해두었다.
인터미션 기간 동안 열심히 듣고 내 것으로 만들어봐야겠다.
마치며
부스트캠프를 하며 느꼈던 부정적인 생각 중 하나는 나는 성장하고 있는가 였다.
개발에서의 성장은 오래 달리기와 비슷한 것 같다.
달리기를 하는 사람은 자신이 얼마나 빠른속도로 뛰고 있는지, 거리가 얼마나 줄고 있는지 잘 가늠되지 않는다. 이렇듯 성장하는 과정속에 있는 본인은 성장을 빠른 속도로 하고 있는지, 정말 성장하고 있는건지 잘 가늠되지 않는게 당연하다.
하지만 하루를 치열하게 보내고 침대에 지쳐 쓰러질 때면, 머릿 속으로 알고있는 것과는 다르게 많은 회의감이 들었다. 나는 오늘 성장했나?
그럴 때마다 때마침 운영진분들의 따뜻한 메시지 한마디와 동료 피드백이 도착했던 것 같다.
동료 피드백을 열어보면 나에게는 보이지 않던 나의 성장곡선이 다른 분들 눈에는 보이는구나를 알 수 있었다.
그렇게 위로를 받고 다시 달릴 수 있는 원동력을 얻을 수 있었다.
앞으로도 꾸준히 성장하려면 성장속도나 방향에 신경쓰기보단 꾸준히, 지치지 않고 학습하고 성장할 수 있는 환경을 만드는 것이 중요할 것이라고 생각한다.
부스트캠프에 있는 동안은 운영진분들이나 동료들에게 에너지를 받을 수 있을 것 같다.
하지만 그룹 프로젝트까지 끝이 나고 다시 외로운 취준세계로 돌아간다면 어디서 원동력을 얻을 수 있을까.
아직 여기까지는 모르겠다.
그저 지치지 않도록 스스로 나를 응원하며 달려야할 것 같다.
그럼 2차 학습 스프린트 회고 끝 !
'부스트캠프' 카테고리의 다른 글
네이버 부스트캠프 웹・모바일 9기 멤버십 과정 1차 학습스프린트 회고 (0) | 2024.09.20 |
---|---|
UIScene, UIWindowScene, UIWindow (1) | 2024.08.22 |
IBOutlet과 IBAction (0) | 2024.08.21 |
View(ViewController) Life Cycle (0) | 2024.08.21 |
네이버 부스트캠프 웹・모바일 9기 챌린지 과정을 마치며 (0) | 2024.08.11 |