wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Review

2020 국방오픈소스아카데미 OSAM

Kick_snare 2022. 3. 3. 22:51
728x90

이 글은 2020-11-13에 작성되었으며 티스토리로 이전된 글 입니다.


군대에서 공부하기

시간의 소중함을 깨닫고 자기계발에 목말라 있던 상병 쯤, 무언가 해보겠다고 연등시간에 웹공부를 하곤 했다. 우연한 기회에 OSAM 이라는 국방부와 과학정보통신기술부가 주관하는 군장병 소프트웨어 역량 교육 프로그램을 알게되었다.

OSAM 사이트에서는 군 장병 및 간부들에게 오픈소스와 여러 개발에 관한 강의를 제공해준다. 9월에는 강의를 수강하고 평가와 코딩테스트, 개발계획서로 우수자 150명을 선발하여 집체교육을 시켜준단다. 후기들을 찾아보니 개발자가 되고 싶은 나로서는 군복무 중 이 정도의 경험은 본인에게 좋은 기회라고 생각하였다.

OSAM

학부 1학년를 고만고만한 성적으로 끝내고 군입대한 필자는 개발에 대해 아는 것이 없었고, 사이트에서 제공하는 기초 강의를 들으며 해커톤에 참가하겠다는 의지로 개인정비와 연등시간을 투자하여 준비했다. 그러던 중 아쉽게 코로나로 인해 2020년도에는 교육프로그램이 파견형태에서 온라인으로 해커톤을 진행하는 방식으로 대체되었다고 한다.

몇일간 연수센터에서 사제 밥과 대여 노트북, 고급개발멘토들, 열정적인 팀원들과 밤을 지세우는 그런 그림은 아쉽게 날라갔다...

하지만 포기할 순 없었다. 열심히 하다보니 프로그램 참가는 남은 지루한 군생활의 목표가 되어버렸다. 군대에서 얻은거라고는 약간의 사회생활이나 운전경험뿐인이였던 나는, 1년반을 내다버린게 아님을 증명해내기 위해서 노력했다.

알고리즘 공부

선발조건인 기초강의들과 참여종목(WEB에 참가함)의 강의를 모두 수강하였고, 선발을 위한 평가요소중 하나인 군장병 알고리즘 대회를 준비하였다. 프로그래머스에서 대회를 위탁받았는데, 5개의 알고리즘 문제를 푸는 흔히 말하는 코딩테스트를 보는 형태였다.

학부 1학년을 생각없이 수료한, 사실상 비전공자이기에 아는게 없었다. 프로그래머스에서 제공해주는 문제SET 중 level 1,2,3 대부분을 프린트하여 무작정 풀기 시작했다. 연등시간에 여러 문제들을 풀기에는 시간이 턱없이 부족해서 남는 시간에 로직을 설계하고 pseudo코드를 짜놓은 다음, 연등시간에 코드를 돌려보면서 잘 돌아가는지 확인하는 식으로 코딩테스트를 준비했다.

c언어, 파이썬 전공수업을 들으면서 기본적인 정렬과 완전탐색 정도는 어느정도 해봤기에 레벨1~2는 그렇게 어렵지 않았지만, 3단계부터는 로직 자체가 떠오르지 않거나 짜도 너무나 비효율적이였다. 대회가 2주를 앞두었기에 탑다운으로 들이대며 공부하였던 기억이 난다.

설상가상으로 코로나 상황이 심각해지자 부대에서 사지방과 같은 다중이용시설을 금지해버렸다. 그때부터는 손코딩 뇌컴파일 눈디버깅

일단 문제를 최대한 여러번 읽으면서 이해한 다음, 블로그에 올라온 예시 답안들을 이해하려고 노력했다. 그 중 아예 모르는 개념은 구글링으로 블로그를 찾으며 공부했다. 시간이 많아 하루종일 붙잡고 있으니까 진전이 생기기 시작했다. 코드를 짜보고 고치고를 반복하니까 알고리즘의 로직 자체가 외워지긴 했다.

코딩테스트

결과가 나쁘지 않았다. 사실 치고나서 생각해보니 오픈북과 같아 누가누가 더 고민해서 잘 푸나의 경쟁이였기에 하루종일 시간을 때려박았던 내가 좋은 등수를 얻을 수 있었던 것 같다.

450명 중 19등

1번 2번은 맞추라고 낸 문제였고, 3번도 쉽지만 DP를 쓰지않으면 효율성에서 통과할 수 없었다. 4번도 간단하게 생각하면 로직이 어렵지 않았지만 효율성에서 100점을 맞지 못했다. 분명 LCA알고리즘을 쓰는게 맞는 것 같은데 결국은 풀지못했다.

5번은 너무너무 어려웠다ㅠㅜ 유향 Cactus 그래프를 조건에 따라 카운트해서 최대로 얻을 수 있는 edge수를 구하는 문제인데 찍기 야매신공으로 절반가까이 맞추었다.

선발

강의수강, 이론테스트, 코딩테스트, 개발계획서 등 모든 선발과정 끝나고 결과 발표를 기다렸다. 합격자 공지가 개인정비때 기습적으로 올라왔는데, 입대 이후로 오랜만에 떨렸다.

간부,병 상관없이 150명안에 선발되었다. 사실 아직 본 대회는 시작도 안했지만, 나에게는 3개월간 밑바닥에서부터 시간 쪼개서 공부한게 의미있었던거 같아 뿌듯했다.

 

 

728x90