본문 바로가기
우테코 프리코스/프리코스 오픈미션

[프리코스] 오픈 미션 회고

by sloth365 2025. 11. 29.

올해 프리코스는 기존의 프리코스에서 4주 차 미션이 사라지고 오픈미션이 생겼다.

이번 우테코의 키워드가 도전인 만큼 4~5주 차동안 도전할 목표를 정하고 해결하면 된다.

우테코에서 예시로 준 오픈미션은 총 세 가지다

1. 낯선 언어로 기존의 프리코스 문제를 해결하는 것

2. 기존에 익숙한 언어로 난이도가 더 높은 문제를 해결하는 것

3. 협업을 통하여 문제 정하고 해결하는 것

미션을 정하는 과정에서의 고민

사실 처음엔 협업을 통하여 문제를 해결하는 것을 고민했다.

하지만 다른 과정을 지원한 지원자들과의 협업은 자바를 이제 막 공부한 나의 성장에

기반을 다지기보단 문제를 해결하냐 못하냐의 결과에 집중하게 될 것 같았다.

 

낯선 언어로 문제를 해결하는 것은 사실 그나마 쉽게 해결할 수 있을 것 같아서 배제했다.

우선 기존의 문제는 해결해 봤기에 설계나 기능 동작을 어느 정도 이해한 상태로 접근하기 때문에

언어를 어떻게 쓸지에 대한 고민만 할 뿐 문제를 어떻게 설계하고

어떻게 접근할지는 고민하지 않을 것 같았다.

 

그리고 아직 자바도 제대로 사용하지 못하는데 겉핥기식으로 다양한 언어를 사용해 보는 것보다

한 가지 언어를 깊이 있게 학습하고 싶었다.

 

그래서 자바로 기존의 미션보다 어렵게 구현하자 생각했고 여기에 미션을 고민하던 중 DB를 추가하면

더 어렵지 않을까?라는 생각에 처음엔 DB를 추가하려고 했다.

 

그렇게 생각한 미션은 세 가지가 있는데  첫 번째는 가게 사장의 시점이다.

각 아르바이트생들에게 월급을 입금하는 과정을 미션으로 나타낼 생각이었고,

두 번째 아이디어는 배달 기사가 주문이 들어오면 서점에서 책을 배달해 주고 수당을 지급받는 것이다.

세 번째 아이디어는 직원이 마트에서 재고를 정리하는 것이다.

 

첫 번째 아이디어는 입금할 계좌와 금액 정도만 입력하면 되는 간단한 미션이 될 것 같아서 제외했다.

두 번째와 세 번째를 고민했는데 나는 자바의 다형성, 상속, 추상화 등의 개념을 오픈미션에서 제대로

학습 못해본 것 같아서 자바의 이런 장점을 학습해 보고 추가적으로 객체지향적 사고와 설계를

고민해보고 싶었다.

 

미션에 구현에 대한 고민

그때 든 생각은 마트의 고기류, 음료류, 야채류 등등 이런 카테고리가 다형성을 나타내기에 좋지 않을까?

생각하여 세 번째 아이디어로 미션을 정했지만 지금 생각해 봤을 때 그렇게 따지면 두 번째 아이디어도

소설, 에세이, 자기 개발서 등등 다형성을 나타내기에 좋을 것 같다.

 

결론적으로는 이름만 가지고 행위가 없는 객체이지만 미션을 정할 당시에는 그렇게 생각하고 접근했다.

다형성은 우연히 옵션의 선택지를 정해서 게임의 흐름을 변경하려고 했는데 이 문제를 다형성으로

해결했다.

 여기에 추가적으로 랜덤 한 물품이 주어지고 정리를 하면 두 번째 미션처럼 수당을 지급받는 것으로

결정했다.

 

문제를 해결하는 과정에서 객체지향적으로 사고하고 설계하는 것이 정말 힘들었고 난이도를 너무 높게

잡았다고 생각이 들었다.

설계에서 이미 충분히 어려웠으니 사용자 입력을 수정하여 예외 상황을 줄이고 싶다는 생각이 강하게

들었다.

 

하지만 도전이 만큼 어떻게든 구현하고자 생각했고 구현이 어려울 때는 절차지향적으로 구현을 한 뒤에

리팩토링을 하며 책임을 분리하려고 했다.

결과적으로 문제를 해결하며 성취감을 얻었고 어느 정도 자바로 문제를 해결하는 것이 조금은 이해된 것 같다.

 

https://github.com/tomato716/java-arrangement-8.git

 

GitHub - tomato716/java-arrangement-8

Contribute to tomato716/java-arrangement-8 development by creating an account on GitHub.

github.com

 

오픈 미션 시간 분배

추가로 오픈미션은 4~5주 차 동안 미션을 해결하고 6주 차 동안 소감문을 고민하라고 했다.

미션은 5주 차 마지막날부터 6주 차까지 제출가능하도록 열린다.

총 3주 치 미션인데 시간은 자유롭게 분배하여 사용해도 된다고 해서 나는 거의 6주 전부를 구현하는데

집중하고 마지막 이틀정도 소감문을 고민했던 것 같다.