오픈 미션은 이번 8기에서 새롭게 도입된 미션으로, 참가자 각자가 도전적인 목표를 설정하고 2주 동안 이를 완수하는 것을 목표로 한다. 우테코에서 제시한 도전의 예시는 다음과 같다.

낯선 도구 해커톤

  • 난이도는 평범하나 평소에 잘 사용하지 않는 개발 도구나 언어로 문제 해결
  • 반드시 동작하는 작은 결과물 제출

고난도 문제 해커톤

  • 평소에 익숙한 기술을 사용하여 난이도가 높은 문제를 해결한다.
  • 난이도가 높은, 정답이 없는 문제를 정의하고, 해결해 가는 과정, 결과물을 제출한다.

제한 협업 미션

  • 2 ~ 3명이 한 팀이 되어 처음 보는 사람과 협업한다.
  • 제한 조건을 만들어서 진행한다.

미션 설정

나는 2주 중 절반은 거의 미션 설정에만 시간을 쏟은 것 같다. 뒤돌아서 생각해보면 프리코스를 합격한다는 것에만 치중하다보니 나에게 도전적이고 의미있는 건 무엇인지에 대해서 점점 잊었던 것 같았다. 우선 다음과 같은 미션 기획들 중에서 고민을 했었다.

  1. TCP 소켓을 활용한 채팅 애플리케이션 개발
  2. Kotlin을 활용한 백엔드 애플리케이션 개발
  3. Webflux를 활용한 백엔드 애플리케이션 개발
  4. React.js + Tailwind를 활용한 간단한 프론트앤드 개발

초기에 여기서 1번을 선택하고 실제로 2일 정도 구현을 하고 있었다. 하지만 이게 과연 나에게 의미있는 도전인지에 대한 의문이 들었다. 졸업 프로젝트에서 TCP 소켓을 적용해봤고, 개인적 학습 차원에서 CLI기반 채팅 애플리케이션도 개발해봤기 때문이다.

물론 Git에 이러한 흔적이 없어서 이런 것들을 못본 척 실제로 개발을 진행해도 상관 없었을 것이다. 그렇지만 그럴 경우 프리코스를 합격하지 못하면 나에게 남는 건 별로 없다곡 생각했다. 그래서 진행하던 채팅 애플리케이션 개발을 멈추고, 나머지 후보들 중에서 나에게 가장 의미 있는 도전이 무엇일지 다시 고민했다. 그 과정에서 합격에 매몰된 생각에서 벗어나 나의 성장을 위한 도전에 초점을 맞춰서 다시 생각할 수 있었다.

미션: WebFlux를 활용하여 개시판을 개발하라

처음에는 React.js에 도전하고 싶다는 생각이 들었다. 하지만 아직은 백엔드에서 배울 것이 많기도 하고, 언젠가 한 번 Spring WebFlux를 공부해봐야지 하고 미뤄왔던 것이 생각이 났다. 그리고 오픈 미션 예시의 낯선 도구 헤커톤에도 들어맞는 것 같아서 Spring WebFlux를 이용해서 백엔드 애플리케이션을 개발하는 것을 미션으로 설정했다.

미션 목표

이번 미션에서는 다음과 같은 목표를 달성하고자 한다.

  • 리액티브 프로그래밍에 대한 학습 및 이해
    • 리액티브 프로그래밍의 등장 이유 작동 원리 학습
    • 순수 Java를 활용한 리액티브 프로그래밍 간단 예시 작성을 통한 이해
  • Spring WebFlux를 활용한 CRUD 기능 구현
    • 데이터베이스와의 연동을 통해 실제 동작하는 게시판 API 구현
    • Spring WebFlux에 대한 테스트 코드 작성 방법 학습
    • 기존 Spring MVC와 성능 비교

미션 설정에 절반 가까이 쏟았기 때문에 시간이 여유롭지는 않다… 하지만 최대한 내가 이해할 수 있고 직접 구현할 수 있는 한계까지 최선을 다하고자 한다.

카테고리:

업데이트:

댓글남기기