티스토리 뷰

끝날 것 같지 않았던 긴 군생활이 막바지를 달려가니 군생활 동안 느끼고 얻었던 바를 정리하고 앞으로의 방향성을 정하기 위해 글을 써보기로 했습니다.


한편으로 끝내기에는 주제가 너무 산만하여 깔끔할 거 같지 않아 주제별로 여러 편으로 나눠서 글을 써볼까 합니다.

이번 글은 컴퓨터공학과를 3학기 마치고 입대하여 무작정 개발해보고 싶은걸 마구잡이로 만들어보고 이리 막히고 저리 막히면서 얻었던 것들을 풀어보겠습니다.

 

입대 전

군대를 가긴 해야 하는데 1년 반 ~ 2년이라는 시간을 버리긴 아깝고 뭔가라도 얻어가는 곳에 가고 싶었습니다.

 

그래서 군대도 전공 관련 업무를 하고 싶은 욕심에 여러 지원 가능한 전문특기병을 찾아보았고 입대 시기가 가장 가까운 공군 정보보호병에 지원했습니다.

서류는 컴퓨터공학과 재학생으로 통과했고 면접도 짤막한 전공지식으로 어떻게든 합격하고 입대하게 되었습니다.

 

But

입대 후 적응하는데 정신없이 시간이 지나고 이제 슬슬 다시 공부를 하려고 생각이 들 때 즈음 제 업무가 정말 제게 도움이 될까 하는 생각이 들었습니다. 실제 하는 일은 제 전공을 살리기에는 거리가 먼 (하드웨어, 네트워크) 분야였기 때문입니다.

 

여기서 제가 얻을 수 있는 건 그리 없다고 생각해 혼자 공부하고 만들고 싶었던 서비스를 개발해보기로 했습니다.

 

뭘 하지?

무언갈 만들어 보자 하니 제 손에 쥐어진 도구들은 학교에서 배운 C언어와 리눅스 환경을 조금 다룰 줄 아는 것뿐이었습니다. 실제 서비스를 만드는데 상용적으로 쓰이는 js, python, 프레임워크, 웹, 모바일 등 아는 게 하나도 없었습니다.

기본적인 CS 지식은커녕 함수형, 객체지향, 절차지향 프로그래밍 구분도 못했으니 프로젝트를 진행할 베이스가 너무 부족했습니다.

 

그래서 뭔가 새로운 걸 만들어 보는 것보다 기존에 했던걸 변형시켜보는 것부터 시작하는 게 좋을 것 같아 과제로 했던 C로 테트리스를 만들었던걸 새로운 게임으로 또 통신 기능을 추가하여 대전 형식으로 만들었습니다.

 

https://cocopam.tistory.com/3

 

[Puyo tetris] #0 터미널 상에서 뿌요뿌요를 구현해보자 (게임 설명, 구현 목록)

뿌요뿌요란? 테트리스와 비슷하게 블럭을 쌓아가며 블럭을 지워가며 점수를 얻는 게임 학교에서 과제로 터미널상에 테트리스를 구현한 것을 바탕으로 뿌요뿌요를 만들어 보자. 게임 룰 블럭의

cocopam.tistory.com

 

쉽지 않네...

뿌요뿌요라는 게임으로 만들기는 했지만 멀티, 즉 통신기능을 추가하기가 어려웠습니다.

 

인터넷의 단편적인 정보만으로는 구현도 힘들고 제대로 이해되는 것 같지 않아서 따로 TCP/IP 소켓 프로그래밍 책을 하나 사서 서버와 클라이언트, TCP와 UDP, 웹 통신 프로토콜(http)에 대해 공부했습니다. (추가적으로 proccess, thread와 같이 시스템 프로그래밍 쪽도 살짝 맛봤습니다)

 

우여곡절 끝에 완벽하진 않지만 제가 원하는 기능의 게임을 만들었습니다.

 

지금 다시 와서 짰던 코드를 보니 어떻게 이렇게 설계도 대충 무작정 코드를 짰나 싶습니다. 하하... 이러니 버그가 터져 나오지...


그래도 개발할 때 설계하고, 모르는 분야가 있으면 공부하고, 구현할 때 재밌었고 아직 진로를 고민하고 있었던 저에게 시야를 넓혀주는 기회가 되었습니다.

 

근데 해줄 사람이 없네..?

그랬습니다. 열심히 게임을 만들었지만 제약(리눅스 , 버그로 인한 안정성 문제등)으로 배포가 쉽지 않았습니다.

 

일단 프로젝트를 정리하고 한동안 알고리즘 문제를 풀면서 어느 정도 휴식기를 가졌습니다. 정말 시간이 날 때마다 구현을 고민 고민하면서 몰두했기 때문에 조금 지쳤던 것 같습니다.

 

잠깐 쉬자

그동안 공부를 잠깐 멈추고 개발 말고도 주식, 인문, 소설  등등 다양한 분야의 책도 읽고 운동도 하면서 앞으로의 길을 고민했습니다.

 

내가 하고 있는 일이 정말 내 적성에 맞는지, 앞으로 이 분야를 업으로 삼을만한가 정말 생각을 많이 했습니다. 정말 개발쪽으로 가도 개발에도 Frontend, Backend, PM, Architect, Infra 등등 여러 분야가 있었기에 과연 어디에 집중을 해야 할까, 뭘 해야 가장 나에게 맞을까가 걱정이었습니다.

 

이때 내렸던 결론은 결국 아직 시간은 많으니 최대한 많은걸 해보고 그중에 골라보자 이었습니다. 

 

다시 달려보자

이번에도 새로운 프로젝트를 구상했는데 기준을 이렇게 정했습니다.

 

  • 배포할 수 있어야 한다.
  • 남이 쓸만한 서비스를 만들자 (정 안되면 나라도 쓰게)
  • 너무 애자일하게 진행하는 것보다 필요한 기능을 먼저 구상하자
  • 난이도가 너무 높은 개발보단 가능한 개발을 하자 (프레임워크 사용)

저번 게임을 구현했을 때의 문제를 다시 또 겪긴 싫어서 이번에는 최대한 위의 기준에 맞게 프로젝트를 진행하려고 했습니다. 이번엔 Django 프레임워크를 사용한 주식 모의투자 사이트를 만들었습니다.

 

python을 쓰기 때문에 배우기도 그렇겐 어렵지 않았고 Django 관련 문서들이 잘 정리되어있고 사용할 수 있는 안정적인 라이브러리도 많았기에 필요한 부분은 구글링하며 그렇게 어렵진 않게 구현했던 것 같습니다. 현재는 pythonanywhere에서 배포 중입니다.

 

https://cocopam.pythonanywhere.com (현재 크롤링 중지)

 

그래도 좀 엉성하네

웹이 처음인지라 그런 것도 있겠지만 UI/UX 등이 제가 원하는 대로 구현하기가 어려웠고 특히 차트를 그릴 때는 결국 javascript에서부터 자유롭진 않아서 jquery와 마구 섞어서 구현했습니다.

 

마구잡이 구현하다 보니 코드 스타일도 보기에 불편하고 딱 기능만 그대로 구현한 서비스가 되었습니다.

나중에 제대로 코드도 리팩토링하고 추가적인 기능도 구현해서 다시 디자인할 생각입니다.

 

아직 할게 많네

프로젝트를 진행하면 할수록 많이 부족하단 걸 느꼈습니다. 깨끗한 코드를 짜는 능력, 설계를 원활하게 하기 위한 수많은 경험, 협업, CS 공부, 알고리즘 풀이 등등 할게 많았습니다.

 

제가 욕심이 많아서 그런지 오히려 할게 많다는 건 더욱 저를 고무시키기 좋았습니다. 기회가 돼서 SCPC 2021에 참가해보기 하고 (예선 2차에서 광탈했지만...) 시간 남을 때마다 조금씩 전공책으로 OS를 공부하기도 하고 좋은 코드를 작성하기 위해 Clean Code을 반복해서 보고 있습니다. 

 

시간 날 때마다 만들어보고 싶은 서비스를 짧게나마 직접 만들어보며 새로운 스택을 배워보기도 하고 저에게 맞는 분야를 계속해서 찾아갈 예정입니다. (아직 졸업까지 빨라야 3년은 남았기에....) 

 

https://cocopam.tistory.com/14

 

[Code Runner] #0 Web에서 알고리즘 문제를 풀어보자

왜 만들었나...? 학교에서 실습을 하거나 알고리즘 문제를 풀 때 리눅스 환경이나 윈도우 vscode에서 소스코드를 컴파일하고 실행하는데 상당히 귀찮다.. 심지어 자리를 옮기거나 다른 PC 환경을

cocopam.tistory.com

 

이 글을 쓰는 지금, 좋은 친구들 덕분에 동아리에서 쓸 서비스를 만들기로 뭉쳐서 Flutter 기반으로 모바일 애플리케이션을 개발하고 있습니다. 개인 프로젝트만 진행했던 저에겐 협업은 쉽지 않았지만 팀원들 덕분에 제가 맡은 파트를 원활하게 진행하고 있습니다. 

 

https://github.com/ljy2855/cspc_recog_app

 

GitHub - ljy2855/cspc_recog_app: mobile App for cspclab members

mobile App for cspclab members . Contribute to ljy2855/cspc_recog_app development by creating an account on GitHub.

github.com

 

마치며

이렇게 1년 하고도 반가량이 지난 지금 군생활 동안 해왔던 것들을 정리하다 보니 충분히 값진 시간들이었던 것 같습니다. 비록 군생활 동안 여러 요인들로 스트레스를 받고 힘들었던 시기도 있었지만 어떻게 보면 그 시기마다 저를 더 단단하게 만들어준 계기가 되었습니다.

 

또한, 밖에 있었다면 읽어볼지도 모를 다양한 주제의 책들을 읽어볼 기회들이 있었기에 제 가치관 확립에 크나큰 거름이 되었다고 생각합니다. 아직 군 복무가 완전히 끝나진 않았지만 전역하는 전날까지도 전 계속 앞만 보고 달릴 것 같습니다.

 

아직 군생활 중이신 분들, 곧 입대를 하시는 분들께 한마디만 감히 첨언하자면, 마냥 힘든 시간일 수도 있지만 주변에 휩쓸리지 말고 갇혀있는 시간을 오히려 기회로 만드셨으면 좋겠습니다. 

 

 

 

이미지 출처:

Technology 벡터는 freepik - kr.freepik.com가 제작함

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함