
들어가며
11월 마지막주 화요일날.. 3주간의 오픈미션을 마무리하며 총 6주간의 프리코스가 끝이 났다! 내가 오픈미션을 위해 3주간 어떤 생각과 시도를 하였는지 돌아볼까 한다.
본문으로
오픈미션이 뭘까? 🧐
이번 우테코 프리코스 8기에 처음 도입된 오픈미션은 무엇일까? 이름 그대로 Open Mission 이다.
코치님께서 가장 많이 하신 말씀이 "자유롭게" 미션을 진행하라 였다. 그렇다! 정말 자신에게 도전이 되는 모든 것은 다 허용된다고 하셨다. 개발과 관련없는 주제도 가능했다. 다만 평가기준이 정확하게 명시되어 있지 않다.
평가기준, 점수 그리고 주제가 없는 오픈미션을 처음봤을 때, 이게 바로 포비가 항상 언급하는 한국 교육방식과 다른 "우테코 스타일"이구나 싶었다.
그래도 그나마 힌트를 얻었다면 오픈미션동안 진행한 몰입과 도전으로 코치들에게 "울림"을 주면 합격이라고 직접 언급하셨다.
한국 교육방식에 절여져버린 나는 나만의 몰입을 기획하느라 귀한 하루를 통째로 날렸다. 정말 다양한 주제를 잡고 2~3주간 이어간다고 상상했는데, 설레거나 재밌어 보이는 아이디어가 도저히 떠오르지 않았다.
시간은 계속 가고 생각은 깊어지기만 하다가... 문득 그런 생각이 들었다. 꼭 엄청난 프로젝트여야 몰입인가..? 구현 자체는 쉬웠던 1주차 문제도 객체지향적으로 새롭게 풀어보려고 하니 너무나 재밌는 몰입이었다고 생각이 드는데 말이다. 그래서 나는 다음과 같이 나만의 오픈미션 주제를 정하였다.
작은 도전을 반복하여 큰 도전을 만들자
우테코에 잘하시는 분들이 너무 많아서 이 주제로 밀고 나갔을 때 상대적으로 퀄리티가 떨어지지 않을까 걱정되었지만, 이 주제로 3주간 최선을 다하면 몰입이라고 할 수 있는 결과물이 나올 것이라고 굳게 믿으며 오픈미션을 진행했다.
1. 코틀린 공부해보기!
가장 먼저 정한 나의 작은 도전은 새로운 언어를 공부해보는 것이었다. 완전 생소한 Rust, GO언어도 고려해봤는데, 비교적 자바와 비슷하다는 글을 봐서 흥미가 가버렸다. 그리고 첫번째 작은 도전으로 딱이었다! (우테코 합격하여 안드로이드 크루분들과 협업할 상상을 하며..)
유튜브에 널려있는 영상들을 보며 하나씩 타이핑해보며 공부했다. 3주차 문제였던 로또 문제를 코틀린으로 리팩토링 해보았다. 아래는 정리 블로그와 깃허브 주소이다. 자바와 문법은 비슷...? 하지만 지향하는 철학이 완전 다른 언어임을 느꼈다.
https://geniusjun4663.tistory.com/53
[Kotlin] 자바 개발자를 위한 코틀린 정리(차이점을 위주로)
들어가며누군가가 나에게 주언어가 뭐에요? 라고 물어본다면 "자바가 제일 자신있습니다" 라고 답할 것이다.그렇다. 이 글은 계속 자바와 비교하며 코틀린을 정리할 것이다. 내가 정리하려고 쓰
geniusjun4663.tistory.com
https://geniusjun4663.tistory.com/54
[우아한테크코스] 로또 문제 코틀린으로 리팩토링하기(코드리뷰 피드백을 반영하며)
들어가며 나의 첫번째 도전이었던 "3주차 로또 문제 코틀린으로 리팩토링 하기!" 를 완료하였다. 빠르게 코틀린 정리를 끝내고 바로 문제 리팩토링을 마친 지금은 코틀린과 많이(?) 친해졌다고
geniusjun4663.tistory.com
https://github.com/geniusjun/kotlin-practice
GitHub - geniusjun/kotlin-practice: 코틀린 공부 with 프리코스 3주차 로또문제 리팩토링
코틀린 공부 with 프리코스 3주차 로또문제 리팩토링. Contribute to geniusjun/kotlin-practice development by creating an account on GitHub.
github.com
2. 로또 미션 안드로이드 앱으로 만들어보기
코틀린으로 리팩토링도 해보며 어느정도 익숙해질 무렵 다음 도전으로는 로또 관련 프론트 화면을 구현해보자는 것이었다. 사실 프론트 구현은 예전 1학년 수업으로 html, css 실습해본게 전부이고, 프론트 개발자분과 협업만 해봤다. 즉 프론트를 직접 구현해본 적은 한번도 없었다. 그래서인지 자연스럽게 코틀린 기반의 프론트인, 안드로이드 앱 개발로 도전이 이어졌다.
https://github.com/geniusjun/woowa-lotto-android
GitHub - geniusjun/woowa-lotto-android: 로또 안드로이드 앱 프론트 코드입니다.
로또 안드로이드 앱 프론트 코드입니다. Contribute to geniusjun/woowa-lotto-android development by creating an account on GitHub.
github.com
초반 커밋을 보면 코틀린으로 화면을 구성하는 작업을 했다. UI를 구현하기 위한 로직들은 코틀린 문법과는 또 다른 차원이었다. Jetpack Compose의 선언적 UI 패턴, StateFlow와 Compose의 상태 연동, ViewModel의 생명주기 등등 처음 보는 개념들이 한번에 몰려들어와 정말 어려웠다. (관련 트러블 슈팅은 소감문에 열심히 적었다)
Android Studio의 에뮬레이터 기능은 매우 직관적이었다. 바로바로 화면으로 확인하면서 개발하는 경험은 신세계였다. 프론트 재밌을지도..?
잘 짜여진 코드라고는 못하겠지만, 첫 프론트 구현 경험이 나에게 또다른 성장감을 남겨주었다.
3. 코틀린 기반의 스프링 프로젝트 구현하기
기존 코드는 모든 로또 로직을 프론트에서 계산중이었다. 다음 도전은 백엔드 api를 호출하는 식으로 설계하고 싶어졌고, 회원도 구분하며 어느정도 구실을 갖춘 앱을 만들어 결과물로 제출하자고 다짐했다.
자바+스프링 기반의 프로젝트는 경험이 있어 어느정도 익숙하지만, 코틀린+스프링은 처음이었다. 이번 작은 도전으로 한번 적용해보기로 했다. 아래는 관련 레포지토리 주소이다. 코틀린+스프링은 확실히 자바+스프링 특유의 길어지는 코드를 줄일 수 있다는 장점이 있는 것 같다.
https://github.com/geniusjun/woowa-lotto-spring
GitHub - geniusjun/woowa-lotto-spring: 로또 안드로이드 앱 백엔드 코드입니다.
로또 안드로이드 앱 백엔드 코드입니다. Contribute to geniusjun/woowa-lotto-spring development by creating an account on GitHub.
github.com
4. 처음 구현해보는 소셜(구글) 로그인
회원을 구분하기 위한 로그인 기능도 구현했는데, 사실 나는 예전 인프런 강의를 보며 jwt기반 커스텀 로그인을 구현해본 것이 전부였다. 예전에 했던 프로젝트에서도 소셜로그인 부분은 다른 팀원분이 담당해주셔서, 이번 작은 도전의 일부로 첫 소셜로그인 구현에 도전해봤다!

그렇다.. ChatGPT가 구글 로그인이 가장 어렵다길래 도전했다가 정말 호되게 당했다.. 빌드하는 안드로이드 앱 자체에 구글서버의 인증 토큰을 등록해야 한다는 사실 때문에 몇시간을 날렸고... 인증 절차도 꽤나 까다로웠다. 모든게 처음이었던지라 많이 어려웠다. (자세한 트러블슈팅은 소감문에 적었다!) 그래도 이 기회에 Token 기반 인증 인가 방식에 대한 이해도가 많이 올라갔다고 생각한다. 나중에 해커톤이나 프로젝트 때 자신있게 구현할 수 있을 것 같다.
5. PostgreSQL 도입해보기
지금까지 사용해본 Database는 MySQL이 전부이다. 이번 기회에 새로운 DB 적용에도 도전해보고 싶었다. 그래서 새로 도입해보는 DB로 PostgreSQL을 골랐고 이 DB의 장점을 극대화 시킬 수 있는 랭킹 api도 적용해보았다. 아래 블로그에 MySQL과 비교하며 정리해보았는데, 옵티마이저 실행계획의 Window Function 실행방식이 아예 달라서 대규모 데이터에 대한 분석/집계/정렬을 하는 로직이 필요하다면 성능차이가 많이 날듯 하다.
https://geniusjun4663.tistory.com/57
[PostgreSQL] 처음 써보는 PostgreSQL 알아보기(MySQL과 비교하며)
들어가며이번 프로젝트에서 또 다른 도전적인 선택은 자주 쓰던 MySQL을 벗어나 PostgreSQL을 도입해봤다는 것이다! 막상 써보면 MySQL과 크게 다를 것이 없어 무슨 차이인가 싶기도 하다. 그래서 이
geniusjun4663.tistory.com
6. 과거 실패했던 기억을 되살려서 다시 도전해보기
평소 새로운 것에 대해 배우는 것을 좋아하기에, 계속 안해봤던 기술들을 적용하는 과정은 매우 재미있었다. 추진력도 붙어서 속도감 있게 프로젝트가 진행되었다. 하지만 어느순간
새로운 것만 계속 쌓아가는게 큰 도전처럼 보일까...?
라는 생각이 들었다.
그래서 예전 나의 능력 부족으로 실패했던 경험들에 대해 다시 생각해보며, 그때의 개념들을 깊게 공부하여 이번 프로젝트에 적용해보고자 다짐했다.
관련한 내용은 아래 블로그에 자세하게 정리되어 있다.
https://geniusjun4663.tistory.com/55
[Redis] 열받았던 탓에 도입해본 나의 첫 Redis
들어가며요즘 유명한 기술 스택을 적용해보면서 자주 드는 생각은, "왜 이 기술을 선택해야 했는가"를 설명할 수 있어야 한다고 생각한다. 이번 글에서는, 6개월전 나를 열받게 만들었던 한 상황
geniusjun4663.tistory.com
https://geniusjun4663.tistory.com/56
[Infra] 바라만 봤던 Blue/Green 무중단 배포 (Docker, Nginx, GitHub Actions) 구현해보기
들어가며왜 제목이 "바라만 봤던 Blue/Green 무중단 배포" 일까? 이 글은 이전에 작성했던 글과 자연스럽게 이어진다.https://geniusjun4663.tistory.com/55 [Redis] 열받았던 탓에 도입해본 나의 첫 Redis들어가
geniusjun4663.tistory.com
프로그램 규모상 무중단 ci/cd까지는 도입이유가 절대 없었지만, 과거 실패했던 기술들을 도입해보니 색다른 성장감을 느끼게 해주었다.
마무리하며
이렇게 나의 3주간의 도전을 나열했다. 일련의 과정들을 다 읽어봤을 때 큰 도전으로 느껴질까..?
우테코 디스코드에 올라운 크루분들의 결과물을 보면 진짜 감탄만 나온다... 하지만 나는 내가 생각하는 방향의 도전을 후회없이 이어나갔고 내 신념으로 뛰어나신 분들의 결과물과 부딫혀볼 생각이다.
사실 객관적인 판단이 되지 않는다. 3주간 후회없는 최선을 다했기에 내가 노력한 결과들이 울림으로 전달되기 바랄 뿐이다.
이렇게 6주간 깊게 몰입해본 경험이 내 인생에 있었나 싶다. 너무 좋은 기회를 주신 우아한테크코스에게 무한 감사하다..!
1차 합격까지 시간이 많이 남았다. 후회없이 진행한 나를 믿고 당당하게 최종 코딩테스트를 준비해야겠다.
아직 나의 몰입은 끝나지 않았다. 가보자🔥
'Various Dev > 우아한테크코스' 카테고리의 다른 글
| [우아한테크코스] 로또 문제 코틀린으로 리팩토링하기(코드리뷰 피드백을 반영하며) (0) | 2025.11.09 |
|---|---|
| [우아한테크코스] 프리코스 3주차 미션 회고 - 로또 (0) | 2025.11.05 |
| [우아한테크코스] 테스트 코드 작성 연습해보기(우테코 제공 라이브러리 적극 활용! NsTest, assertSimpleTest) (0) | 2025.10.30 |
| [우아한테크코스] 프리코스 2주차 문제 회고 - 자동차 경주 (2) | 2025.10.28 |
| [우아한테크코스] 프리코스 1주차 문제 회고 - 문자열 덧셈 계산기 (0) | 2025.10.19 |