기획자지만 개발을 배웠습니다
난 28기 BE SOPT 안드로이드 파트 OB, 29기 WE SOPT 안드로이드 파트 OB & 임원진을 했었다. 안드로이드 파트 후기가 별로 없어서 상세하게, 전반적으로 좀 써보겠다.
순서는 이렇다
1. 안드로이드 파트 커리큘럼
2. 세미나 방식
3. 과제
4. 파트 내 문화
5. 전반적인 후기, 내가 안드로이드 파트를 한 이유
6. 합격팁 & SOPT 안드로이드 파트를 추천하는 유형의 사람
안드로이드 파트 커리큘럼
28기, 29기 모두 Kotlin을 사용 했다. 총 8번의 세미나로 안드로이드 기초를 다진 후 디자인/서버 파트와의 합동 세미나 후 영속성 데이터, 협업 규칙 이 순서대로 진행했었다. 각 세미나의 내용이 어땠는지 더 자세히 알고 싶다면 SOPT 공식 인스타그램, 페이스북 계정에서 세미나 관련 카드뉴스를 보고 오셔라. 30기 SOPT 커리큘럼도 나와있다.
세미나의 내용에 대한 만족도에 대해선 난 굉장히 높은 편이다. 하드 코딩이 아닌 효율적으로, 깔끔하게 코드를 짜는 법을 알려주기 때문이다. 또한 단순 암기 그런게 아닌 이해 위주로 설명을 쉽게 해준다. 이는 실제 IT 스타트업과 좀 유사하다. 학교에서 가르치지 않는 것들도 있다. 또한 SOPT에 합격이 어려운 만큼 파트장님들도 그에 대한 보상을 하려고 최대한 노력한다. 그래서 기존 시장에 나와있는 안드로이드 강의에 나와있는거와는 다른 내용을 알려주려고 노력을 굉장히 많이 한다. 파트장은 파트원들에게 최고의 경험을 선사하기 위해 굉장한 노력을 한다.
��SOPT 안드로이드 파트 세미나 내용 세세하게 보러가기��
https://www.instagram.com/sopt_official/?hl=ko
https://www.facebook.com/clubsopt
상황에 따라 전체 온라인/오프라인 세미나조/전체 오프라인 유동적으로 나뉜다. 보통 4인 이하의 세미나조 + 줌으로 세미나가 이루어진다. 코로나 때문에 항상 온라인, 오프라인 수요조사를 받는다.
28기는 2021 상반기 즉 5인 미만 집합 금지가 있을 때다. 그래서 OB 1-2명, YB 1-2명 총 4명의 세미나 고정조로 이루어졌다. 그래서 같은 조끼리 엄청난 소속감을 느낀 장점이 있었지만 다른 안드로이드 파트원들과의 교류가 상대적으로 적었다는 단점이 있었다.
(28기 우리 세미나 조의 이름은 한사랑산악회였다,,, ^.^ 너무나도 재밌고 좋은 사람들과 28기 안드로이드 파트를 함께 할 수 있어서 매우 즐거웠다)
29기는 2021 하반기, 집합 체제가 좀 완화됐을 때였다. 4-5명 세미나조였지만 28기와 다르게 고정이 아닌 매주 바뀌는 식이었다(전체 오프라인 세미나도 했었다) 28기에 비해 같은 조에 대한 높은 소속감은 부족했단 단점이 있었지만 모든 안드로이드 파트원을 다 만나보며 친해질 수 있단 장점이 있었다.
세미나는 안드로이드 파트장님의 이론 설명 후 실습을 하는 형식이었다. 일단 난 안드로이드가 처음이었기 때문에 28기 땐 실습이 좀 벅찼었다. 그래서 같은 조 OB오빠가 항상 도와줬었다. 29기 땐 내가 OB라서 해매는 YB들을 도와줬었다.
또한 정규 세미나 전 코틀린 문법 기초, 디자인 관련 개발 등 1시간 정도 보충 세미나가 열리기도 했다. 세미나 장소는 주로 서울이다. 안드로이드 파트는 전통적으로(?) 1년 내내 홍대입구에서 세미나를 들었다. (30기는 어디서 하려나,,,)
그리고 세미나가 끝날 때마다 회식을 하는데 이게 진짜 재밌다. (하이라이트임��� )
과제
매주마다 필수 과제, 도전 과제, 심화 과제가 나온다. 미제출 3회 시 앱잼 자격 박탈이었나,,, 그랬던 거 같다.
필수 과제는 필수, 도전/심화 과제는 선택이다. 과제를 통해 세미나 때 배운 내용을 스스로 이해하며 적용해볼 수 있다. 이때 Github를 사용한다. 과제는 꼭 Github에 올려야한다.
Github란?
버전 관리와 협업을 위한 코드 호스팅 플랫폼. 개발자 중 70%가 사용한다는 말이 있을 정도로 현업에서도 정말 자주 쓰인다. 개발자들은 자신의 코드를 저장, 공부 혹은 언제 어디서나 협업 프로젝트를 쉽게 진행할 수 있게 돕는다
https://github.com/29th-WE-SOPT-Android-Part
29기 안드로이드 파트 깃허브 레포다. 여기서 모든 과제 제출과 관리가 이루어졌다. (SOPT iOS, 웹, 서버도 마찬가지)
Github를 통한 과제가 좋았던 점
1. 깃허브를 통한 과제를 하며 실제 개발자들끼리의 협업 방식을 체험할 수 있다.
2. Github 관리를 유용하게 할 수 있게 되었다
3. 다른 안드로이드의 파트원들 코드를 보며 "저렇게도 할 수 있구나" 이런 걸 많이 느꼈던 거 같다. 서로에게 자극제가 되기도 했었다.
4. 안드로이드 파트장님과 OB들이 코드리뷰를 해준다. 이 코드리뷰를 통해 세미나 외 적으로도 좀 배울 수 있다.
스터디와 안드로이드 파트 내 문화
일단 세미나 과제의 난이도는 정말 쉽지 않다... ^.^ 필수 과제는 세미나 들으면 좀 할만한데 도전 과제부터는 구글링을 꽤 해야하고, 심화과제는 아키텍쳐까지 다룬다... 그리고 28기 때 난 Github를 처음 써봐서 진짜 많이 해맸었다. 그때마다 OB들과 안드로이드 파트장님께서 적극적으로 도와주셨다. (28기 땐 새벽마다 줌으로 우리 28기 안드로이드 파트장을 자주 소환했었다,,,, 미안하고 고맙다)
29기 땐 Github를 처음 써보는 와비들을 위해서 내가 "깃허브에 과제 올리는 법"을 영상 찍어서 공유하기도 했었다.
뭐 일단 과제도 같이 할 겸, 친해질 겸 그래서 안드로이드 파트 내 온라인/오프라인 번개가 굉장히 자주 열렸다.
29기 안드로이드 파트에선 줌 번개가 진짜 자주 열렸다. 과제하면서 서로 모르는거 물어보고, 수다 떨면서 친해지기도 했다. 이를 "줌각작" 줌에서 각자 공부하는 모임,,, 뭐 이렇게 불렀다. 근데 점점 줌으로 공부하긴 커녕 수다만 엄청 했다는...
오프라인 번개 모임도 굉장히 자주 열렸다.
* 기수마다 파트 내 분위기와 문화가 다릅니다. 코로나 방역 수칙, 파트장의 성향, 파트원들의 구성 등등에 따라 다를 수도 있다는 것을 유의해주세요 *
29기 안드로이드 스터디 목록. 1-2조 해서 12개 정도 나온듯
그리고 안드로이드 파트 내 스터디도 다양하다.
Kotlin 스터디, 왕초보 스터디, 기초 스터디, 아키텍쳐 스터디, 클론 코딩 스터디, 심화 스터디, Jetpack Compase 스터디 등등 이런식으로 열렸다. 각자 하고 싶은 스터디에 들어간 후 스터디원들끼리 커리큘럼, 진행 방식을 논의 한 후 앱잼 전까지 진행되었다. 난 28기 때 너무 바빠서 스터디는 하나도 못했고,,, 29기 땐 코틀린과 왕초보 스터디를 했다.
일단 스터디를 통해 강제적으로 함께 공부를 더 하게 되어서, 스스로 스터디 커리큘럼을 짜서 좋았던 거 같다. 다만 시험기간과 합동세미나 기간엔 스터디의 방향성이 좀 옅어진다는 단점이 있었다.
클라/디자인 파트 합동 세미나
클라이언트/ 디자인 합동 세미나. 협업이기 떄문에 100명 이하의 전체 오프라인이었다 (온라인 참여 가능)
1-4차 세미나에서 안드로이드 기초 개발, 디자인 및 API 적용 방법 등을 배운 후 디자인 파트와 클라이언트 파트와의 합동세미나가 이루어진다. 각각 디자인 파트와 한 클라이언트로 조가 짜인다. 실제 디자이너 파트원들이 만든 예쁜 뷰를 안드로이드로 개발해 볼 수 있다. 이 때 얻을 수 있었던건
1. 개발자로서 디자이너와의 협업
- 뷰가 너무 어렵다면 구현 가능한 방식을 디자이너에게 제안을 해볼 수 있다. 또한 뷰를 개발하다가 사이즈나 마진 값 등이 안맞으면 요청도하고, 방식이 이게 맞는지 디자이너와 개발자로서 소통을 할 수 있다.
2. 같은 안드로이드 개발자와의 협업 방법
- 합동세미나 조는 디자이너 1-2명 + 안드로이드 OB 1명 + 안드로이드 YB 2명
이런식으로 나뉜다. 29기 땐 클디 합동세미나 사전 과제가 "깃허브 및 코딩 컨벤션 등의 협업룰 세팅하기"였다. 이때 OB들이 앱잼 때 해봤던 깃허브 플로우, 코딩 컨벤션 등을 적용할 수 있다. 또한 뷰를 알맞게 같이 분배하고, 서로 구현하다가 어려운 것을 물어보고, 코드 리뷰도 할 수 있다. 이때 GITHUB를 사용하며 뷰를 완성한다. 실제 현업에서 이루어지는 개발자들기리 앱을 만들어보는 과정을 체험할 수 있다.
디자이너와 협업을 해보면 정말 다르다는 것을 알 수 있다. 또한 개발자로서 예쁜 뷰를 만들 수 있어서 굉장히 뿌듯하다.
클라/서버 파트 합동 세미나
클라이언트/ 서버 합동 세미나. 협업이기 떄문에 100명 이하의 전체 오프라인이었다 (온라인 참여 가능)
6차 세미나는 클라이언트/서버 합동 세미나다. 클라이언트/디자인 합동 세미나 때 만든 뷰를 보고 서버 파트원들이 그에 맞는 API를 짠다. 안드로이드 파트는 그 API를 적용하는게 과제다.
이때 서버와 클라의 차이점을 배울 수 있다. 또한 데이터를 어떻게 받고 줄지 서버 개발자와 상의할 수 있다. 그리고 API를 실제로 적용할 수 있다.
" 이렇게 디자인, 서버 등 타 파트와 협업 할 수 있는게 SOPT의 가장 큰 장점이라 생각한다. "
솝커톤
6차 세미나 후엔 "솝커톤"을 한다. 모든 파트가 팀을 이루어 무박 이틀동안 하나의 서비스를 만들고 발표하는 해커톤 행사다. 세미나의 절반이 끝난 후에 진행되는거라 그동안 세미나에서 배운 것을 직접 응용하고, 다른 파트와 첫 협업을 할 수 있는, 아주 좋은 기회다. 난 29기엔 임원진이라서 주최자였고, 28기 땐 안드로이드 OB로서 참여했다. 이때 후기를 보고 싶다면 보고 오셔라.
난 솝커톤을 통해 안드로이드 개발자로서 첫 협업을 해보고, 자신감을 얻을 수 있어서 매우 좋았다.
앱잼
SOPT의 꽃으로 불리는 3주 해커톤이다. 기획/디자인/클라이언트/서버 파트가 한 팀을 이루어 협업을 하며 서비스를 제작한다. 그리고 데모데이 때 발표 및 시연을 한다.
앱잼을 통해서 얻을 수 있는건
1. 그동안 세미나에서 배웠던 것을 활용 및 응용
2. 세미나 때 배우지 않았던 것도 도전
3. 기획자 및 디자이너에게 제 2의 구현책을 제안 및 기능 사이즈 협의하며 소통하기
4. iOS 개발자들과도 소통하며 안드/iOS의 차이점을 알 수 있음
5. 서버 개발자들과 소통하며 데이터를 주고 받는 방식 등을 협의하며 api 붙이기
6. 같은 안드로이드 개발자와 제대로된 협업 (TIL, 회고, 깃 플로우, 컨벤션 구성 등등)
7. 애자일 프로세스 기반의 협업
물론 이는 3주 간 이루어지기 때문에 합동 세미나와는 사이즈가 굉장히 다르고, 꽤 딥하다. 어떻게 하면 서로의 코드를 보며 더 쉽게 이해할 수 있을지 논의하며 컨벤션을 구성하고, 실제 IT스타트업에서 사용하는 깃 플로우 전략을 가져와 사용했다.
앱잼은 경험적으로 굉장히 높은 퀄리티라고 생각한다. 개발자로서 타 개발자/기획자/디자이너와 협업할 수 있는 매우 좋은 기회다. 다만 아무래도 8주 간의 세미나 이후 3주 간 진행하는 거라서 실제 시장에서 요구하는 신입 안드로이드 개발자에게 요구하는 조건을 완벽하게 충족시킬 순 없다. 그래서 앱잼이 끝난 후 본인이 더 공부해야 제대로 성장 할 수 있다. 앱잼은 성장의 시작이다
28기 앱잼
28기 앱잼 땐 난 "펫로스 증후군 방지를 위한 반려동물 일기 서비스"인 "마스코타"의 안드로이드 개발자였다.
MVVM 패턴을 사용했다. 실제 회사에서 많이 사용하며, 앱의 유지보수에 유용한 패턴이기 때문이다. MVVM이 처음이었지만 OB 언니의 리드로 그래도 어떻게 잘 완성할 수 있었던 거 같다. 매우 어려운 개념이었기 때문에 앱잼 기간 땐 제대로 이해하지 못했지만 그래도 아키텍쳐를 체험 할 수 있어서 신기했다. 유지보수를 위해 개발자로서 무엇을 해야하는지 알 수 있었다.
그리고 이때 제대로된 깃 플로우와 코딩 컨벤션을 처음 배울 수 있었다. 세미나 과제를 할 땐 진짜 생각없이 했었다. 코드는 구현과 동료 개발자를 배려하기 위해 작성해야한다는 걸 알 수 있었다. 이런 규칙들을 지키다보니 예전보다 코드를 좀 더 깔끔하는 구성하는 방법을 알게 되었던 거 같다. (앱잼이 끝난 후 이전 내 세미나 과제 코드를 보고 너무 더러워서 경악했다. 그래서 리팩토링을 좀 했다 )
아쉬웠던건 안드로이드 개발자는 처음이라서 기능 사이즈 협의에 굉장히 서툴렀었다. 그래서 앱 사이즈가 좀 컸어서 고생을 했었다.
29기 앱잼
29기 앱잼 땐 "나만의 미디어 감상 아카이빙 서비스"인 "Beforeget"의 안드로이드 개발자였다
28기와 다르게 MVC 패턴으로 했다. 3주 간 MVVM 같이 어려운 상위 지식보단 세미나 때 배운 걸 더 공부하잔 목표가 있었기 때문이다. TIL(Today I Learned), 회고(매일 회고를 하며 상황을 공유, 갈등을 방지함)를 했다.
실제 우리 안드로이드 TIL
진짜 맨날 안드로이드끼리 맨날 회의함,,,
앞서 언급한대로 28기 땐 안드로이드 개발자는 처음이라 구현 방식을 제안하거나, 기능을 줄이는데 서툴러서 앱 사이즈가 커져버려 고생을 좀 했었다. 그래서 29기 앱잼 땐 OB로서 먼저 나서서 기능 협의에 적극적이었다. 덕분에 적당한 사이즈가 나올 수 있었다. 그리고 어려운 아키텍쳐를 쓰지 않으니 좀 더 이해 위주의 코딩을 할 수 있어서 좋았다. 물론 28기보다 좀 더 하드코딩을 했단 단점이 있었지만,,,
그리고 28기 보다 안드로이드에 나 포함해서 OB들이 더 있어서 안드로이드 내 협업을 더 세세하게 했다. 매일 내가 공부한 걸 정리하고, YB에게 내가 알려주느라 더 공부하게 되었다.
28기보다 조금은 더 성장한 나를 볼 수 있었다.
** 협업 전략, 아키텍쳐 사용 유무 등등은 팀마다 다 다릅니다 **
28기 데모데이 Symphony
29기 데모데이 팝티클
그리고 대망의 데모데이! 모든 앱잼팀들이 나와서 서비스를 발표하고, 시연하는 자리다. 28기 땐 코로나 떄문에 gather town을 활용해 온라인으로 진행 되었다. 29기는 오프라인으로 진행 되었다.
다른 팀들이 어떤 방식으로, 어떤 서비스를 만들었는지 둘러 볼 수 있어서 매우 재밌었다. 그리고 멘토님에게 궁금한 것을 물어보고, 개발면/협업면에서 조언을 구할 수 있어서 좋았다.
마무리하며
내가 안드 파트를 한 이유, 전반적인 후기, 추천 유형, 합격팁
난 27기 기획 파트 수료 후 28기 안드로이드 OB를 했다. 서비스 기획쪽으로 진로를 잡은지라 개발자로서의 경험이 무척 도움이 될 거 같았다. 또한 과 특성상 코딩을 좀 배웠기 때문에 아예 안맞는다고 생각은 안했다. 앱잼 때 클라이언트 개발자들이 옆에서 작업하는 걸 보며 매우 큰 흥미를 느끼기도 했다.
" apk파일로 구현된 걸 처음 봤을 때의 기쁨을 아직도 잊지 못합니다. 이제 제가 안드로이드를 통해, 팀원들에게 받은 만큼 그 기쁨을 주고 싶습니다. 좋은 IT서비스를 만들기 위해 여러 방면으로 참여하고 싶습니다. 이번엔 기획자가 아닌 개발자로서 그럴 차례입니다. "
- 실제 내 28기 안드로이드 OB 지원서 일부 -
우리 28기 안드로이드 파트장은 나의 성장 가능성을 보고 OB로 합격 시켰다.
(안드로이드란 새로운 세상을 열어준 나의 28기 안드 파트장아,,,고맙다)
29기 때 한번 더 안드로이드 파트를 한 이유는, 이대로 끝내기에 부족한게 많기 때문이다. 제대로 더 안드로이드를 공부하고 싶었다.
SOPT를 통해 안드로이드 개발자로서의 시작과 성장을 할 수 있어서 매우 좋았다. 학교에서 배울 수 없는 지식과 경험(Github, 아키텍쳐, 클린 코딩, 타 파트와의 협업 등)을 할 수 있었고, 좋은 사람들과 함께 했다. 파트장과 임원진, OB들의 많은 도움이 있었다. 20대의 좋은 추억이다
또한 팀마다 다르지만 출시와 출시 이후 유지보수까지 할 수 있다. 실제로 구글플레이스토어에 출시된 앱잼 서비스가 굉장히 많다! 물론 파트 수료 후엔 혼자서도 열심히 해야한다. 그래야 진짜 제대로 성장 할 수 있다.
추천하는 유형의 사람
1. 안드로이드 개발을 한번도 해보지 않았지만 도전하고 싶은 사람
2. 안드로이드 개발은 좀 해봤지만 기획자/디자이너/서버개발자와의 협업 경험이 없는 사람
3. 안드로이드 개발을 하며 함께 성장하고 싶은 사람
합격팁
안드로이드 공부를 "혼자서만" 열심히 할 목적이라면 추천하지 않는다. SOPT는 "안드로이드 개발자"를 뽑는게 아닌 "안드로이드 파트원"을 뽑는거니까. 타 안드로이드 파트원과 융화 되어 "같이 성장" 해야한다. 그리고 타 파트와 협업을 해야한다.
안드로이드 공부뿐만 아니라 안드로이드 파트 내 여러 활동에 적극적으로 임할 수 있다고 어필하는 것을 추천한다.
또한 안드로이드 경험이 없다고 해서 걱정하지 않아도 된다. 당신의 실력이 아닌, SOPT를 통한 "성장 가능성"과 "열정"을 본다. 그러니 SOPT 안드로이드 지원을 위해 혼자서 안드로이드 공부를 조금이라도 하고 있는 모습이나, 안드로이드에 대한 관심을 많이 보일 것을 추천한다. 이를 확인하기 위해 면접에선 val, var 차이점 같은 기본 코틀린 문법을 물어볼 수 있다.
실제로 SOPT엔 개발, 협업 경험이 처음인 사람들이 굉장히 많다. 이들이 SOPT를 통해서 여러 경험을 하며 성장을 한다.
그러니 왜 하필 안드로이드인지, 왜 SOPT 안드로이드 파트인지 이유를 명확하게 작성할 것을 추천한다.
28기 BE SOPT 안드로이드. 28기는 방역 수칙 때문에 오프라인 단체 사진이 없어서 너무 아쉽다
29기 WE SOPT 안드로이드.... 후기 쓰다보니까 추억에 빠져가지고,,, 저때가 그립네,,
마지막은
나의 2021년 23살을 다채롭게 만들어주었던
28기, 29기 SOPT 안드로이드 파트 단체 사진으로 마무리~
이 글을 보고 계신 여러분께도 SOPT 안드로이드 파트를 통한 즐거운 추억과 성장이 가득하길 바랍니다.