본문 바로가기
답수실Log

답수실Log | 220307 | 개발 과제 끝. 해야 할 게 진짜 많구나

by 답수 2022. 3. 7.
728x90
반응형

 

 

한 3주 전에 한 기업의 웹프로그래머를 지원했었고, 운이 좋게도 서류 합격하여 과제를 볼 기회를 얻었었다. 

 

과제는 2주 동안 진행이 되었고, 과제 내용은 유출이 불가능하지만 대략적인 개요는 하나의 웹 사이트를 가이드라인에 맞게 제작하면 된다.

 

즉 클라이언트부터 해서 API 서버, DB연동, 배포 등 처음부터 끝까지 다 혼자서 완성시켜야 했다.

솔직히 2주면 이정도 과제는 충분히 할 수 있다고 생각했다. 그런데 결과는? 제대로 완성시키지 못하고 제출했다.

과정이 어찌됐든 실패한 과제다. 스스로 피드백을 해보자구우우

 

1. 프로젝트 설계를 할 때, 많은 자료를 통해 계획을 디테일하게 세웠어야 했다.

프로젝트를 시작하고 이틀 동안은 코드를 작성하지 못했다. 왜? 초반에 프로젝트 설계를 완벽하게 세우고 싶어서. 하지만 일단 뭐든 시작은 해야 반은 간다! 라는 마인드로 닥치고 우선적으로 클라이언트 상에서만이라도 기능이 정상적으로 작동하도록 개발을 시작했다. 

 

프론트부터 배포까지 전체의 과정을 혼자 진행하는 프로젝트는 작년에 SW사관학교 정글에 지원할 때 한 번 경험해봤던 것이 전부였고(그나마 가이드라인이 있었음), 이때에 비해 수준이 많이 높았기 때문에 되게 조급했던 것 같다. 무엇보다 나는 백엔드 개발자를 희망하면서 공부를 했기 때문에, 클라이언트쪽의 코드를 짜는 것이 매우 어려웠다.

 

그래서 일단은 클라이언트 사이드에서 유저 인터페이스를 완성시키는 것을 우선적으로 개발했던 것이다. 이 생각은 악수가 되어 돌아왔다. DB연동과 API를 통해 인터페이스를 작동하게 하려면 뜯어고쳐야할 것들이 예상 이상으로 많았고, 거의 일주일 시간은 허비하게 되었다. 즉 일주일 남았을 때 결국 다시 처음부터 설계를 시작했어야 했고 역시 시간이 없다는 조급함에 또 제대로 계획 없이 무작정 하나씩 코드를 짜기 시작했었다. 완전 악순환에 악순환....!!!

 

2. AWS EC2 메모리 이슈

프로젝트를 시작하자마자 로컬 말고 AWS EC2로 시작을 했다. npm 설치 후 node.js와 express, pm2를 설치하고 코딩하기 시작했다.

 

express로 최소한의 상태로 웹서버를 열었고, 조금씩 코드를 짜기 시작했는데 갑자기 서버가 터지기 시작했다. 서버를 재부팅하고 다시 시작해도 10분 만에 또 서버 다운.. 모니터링을 해본 결과, 서버를 ON 하면 몇 분 지나지 않아 메모리가 미친듯이 오르기 시작하다가 CPU 과부하로 서버가 터지는 거였다. 어딘가에서 메모리 누수가 발생하는건가...? 메모리 누수라고 하기엔 작성한 코드가 몇 줄 있지도 않은데..? 아니면 npm 설치할 때 뭔가 문제가 있었나...? 이 문제를 해결하기 위해서 2~3일은 고생한 것 같다. 이 문제로 해결해야 하는 것은 맞지만, 우선 순위를 생각해 봤을 때, 먼저 해결해야 할 과제는 아니었다.

 

결국 제때 해결하지 못하고 로컬에서 다시 시작쓰...

 

더군다나 MySQL 연동에도 약간의 문제가 생겨서...ㅠㅠ 기본적인 사용 방법들을 더 숙지해보고 경험해봐야 한다고 느낌..!!!

 

 

그래도 이번에 과제를 진행하면서 얻은 것이 많다. 혼자서 진행해본 토이 프로젝트를 어떻게 접근해야 하는지, 어떤 기술 스택들을 어떻게 사용해야 하는지, 그리고 마냥 공부하는 것보다는 직접 서비스를 구현하면서 코드를 짜는 것이 재밌다는 것!!!

 

사실 그동안 프로그래밍을 공부하면서 심적으로 많이 힘들고 회의감이 들 때가 있었다. 이번 과제를 하면서 콘솔을 한 줄씩 찍어보면서 디버깅을 하고, 그러면서 문제를 하나씩 해결하면서 정상적으로 인터페이스가 작동하는 것을 확인할 때마다 진짜 즐거웠다!!!

 

이번 과제는 비록 제때 완성시키지 못했지만, 혼자서라도 완성시켜보려고 한다. 그 과정에서 공부하고 배우는 것들이 생각보다 많기 때문에..!!

 

그리고 이 경험을 토대로 다른 토이 프로젝트를 시작하면서 포트폴리오도 만들고 스스로 역량도 많이 쌓을 것이다.

 

 

 

 

 

 

 

728x90
반응형
LIST

댓글