우테코(프리코스)

우아한 테크 코스 | 프리 1주차 후기

_Jin_ 2023. 10. 27.

우아한테크코스

우리에게 익숙한 배달의민족 어플을 만든 회사인 '우아한 형제들'의 개발자 양성 부트캠프이다. 

본 과정에 합류하여 좋은 학습의 기회를 얻고 싶어 지원하게 되었고, 합류하기 위한 선별과정인 프리코스 1주차를 경험하게되었습니다. 

# 프리코스 1주차 과제 

🚀 기능 요구 사항

기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다.

  • 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다.
    • 예) 상대방(컴퓨터)의 수가 425일 때
      • 123을 제시한 경우 : 1스트라이크
      • 456을 제시한 경우 : 1볼 1스트라이크
      • 789를 제시한 경우 : 낫싱
  • 위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택한다. 게임 플레이어는 컴퓨터가 생각하고 있는 서로 다른 3개의 숫자를 입력하고, 컴퓨터는 입력한 숫자에 대한 결과를 출력한다.
  • 이 같은 과정을 반복해 컴퓨터가 선택한 3개의 숫자를 모두 맞히면 게임이 종료된다.
  • 게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다.
  • 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되어야 한다.

입출력 요구 사항

입력

  • 서로 다른 3자리의 수
  • 게임이 끝난 경우 재시작/종료를 구분하는 1과 2 중 하나의 수

출력

  • 입력한 수에 대한 결과를 볼, 스트라이크 개수로 표시
더보기
1볼 1스트라이크
  • 하나도 없는 경우
더보기
낫싱
  • 3개의 숫자를 모두 맞힐 경우
더보기
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임 종료
  • 게임 시작 문구 출력
더보기
숫자 야구 게임을 시작합니다.

실행 결과 예시

더보기
숫자 야구 게임을 시작합니다.
숫자를 입력해주세요 : 123
1볼 1스트라이크
숫자를 입력해주세요 : 145
1볼
숫자를 입력해주세요 : 671
2볼
숫자를 입력해주세요 : 216
1스트라이크
숫자를 입력해주세요 : 713
3스트라이크
3개의 숫자를 모두 맞히셨습니다! 게임 종료
게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.
1
숫자를 입력해주세요 : 123
1볼
...

 

# 회고록

개발자라는 직무에 관심이 생긴 이후, 인프런을 통해 자바 언어를 학습한 후에 처음으로 무언인가 구현하는 과제를 수행해 봤다. 그리고 git을 사용해야 하는 상황이었기에 당황스러웠는 데, 디스코드에서 뛰어난 많은 분들의 정보 공유와 도움 덕분에 과제를 제출하는 것까지는 수행할 수 있었다. ( 다만, 기능 단위  커밋, 리드미 작성과 같은 과제는 수행하지 못한 아쉬움이 있다. 그래서 깃을 좀 많이 활용해보면서 터득해야겠다고 생각했다. )

무엇보다 함께 공유하고 성장이라는 우테코의 슬로건에 맞춰 형성된 공유와 학습의 분위기가 한몫한 거 같기도 하다. 

 

처음 과제를 읽었을 때, 내가 상상했던 무시무시한 과제의 느낌보다는 해볼만하지만, 규칙을 지키고 생각해볼 것이 많다고 느껴졌다. 다른 분들을 보니, 테스트코드/MVC패턴/객체지향 등 다양한 경험과 지식을 바탕으로 생각하고 적용하는 모습을 보며 중간에 현타가 오기도 했지만, 누구나 처음부터 잘하는 것이 아니다라는 생각과 본 과정은 교육에 참여하여 성장하고 싶은 인원을 선별하는 것이지 잘하는 사람을 채용하는 과정이 아니라고 생각하며 일단 끝까지 주어진 과제를 완성하였다. 

 

그리하여 겨우 마감 1시간 전에 구현을 마치고 제출하였다. 그리고 제출한 과제의 테스트에서 맞이한 '예기치 못한 오류로 테스트 실패' .... ㅜㅜ 분명 기능 요구 조건에 나온 것들이 전부 제대로 돌아갔는데.. 찾아보니 기능 구현이 아닌 뭔가 요구 조건을 제대로 만족하지 않은 부분이 있어서 테스트가 실행되지 못한 것 같다. 그리고 안타깝게도 수정하지 못한 상태에서 제출을 마무리했다. 

 

1주 차 과제를 진행하면서 아직 현직자가 아닌데도 정말 잘하시는 분들이 많구나라는 점을 느꼈고, 반면에 스스로의 부족함을 체감했다. 하지만 과제을 진행하면서 자의적이든 타의적이든 목표가 설정되고, 모르거나 부족한 점이 있으면 찾으면서 어떻게든 부딪혀 일단 완료하는 과정이 재미있었다. 내가 생각한 방향성으로 코드가 안 흘러가면 이유를 찾고 해결책을 찾으면서 왜 구글링을 잘해야 하는 지도 많이 느꼈다.ㅎㅎㅎ 

그래서 잘하는 사람들과의 비교보단 동기부여와 학습을 중점적으로 목표로 두고 2주차 과정도 열심히 참여해봐야겠다.  

 

 

 

댓글