기업협업이 끝이 났다!
진행했던 프로젝트와 기업협업 생활에 대해 회고록을 작성해보려 한다.
기업협업에 BE 3명이 가게 되었다. 나를 제외한 2명의 BE 친구들은 학생이었고 회사 경험이 전무했다. 전 직장에서 본사 내의 모든 본부들과 소통을 해보았던 내가 PM 을 맡기로 하였다.
이사님께서 Docker 가 처음인 우리들을 생각하셔서 다같이 진행할 수 있는 프로젝트를 주시겠다고 하셨고
프로젝트는 함께, PM 인 내가 이사님과 의사소통을 진행하기로 했다.
결론적으로, 두 가지 프로젝트 모두 Client ip 와 Request_time 정보를 가져와 PostgreSQL 에 저장하는 로직을 구현하는 프로젝트였다.
Docker, AWS 총 두 가지의 로직으로 구현해보는 테스크를 받았다.
1. Docker 프로젝트 관련 블로그
2-1. AWS 프로젝트 관련 블로그
2-2. AWS 프로젝트 관련 블로그
아마존 EC2 인스턴스를 생성해 우분투 환경에서 프로젝트를 진행했다.
도커를 활용해 배포하였고, docker compose 를 통해 여러개의 컨테이너를 한 번에 관리했다.
컨테이너는 총 2개였다.
1. Python 이미지(docker image)를 바탕으로 동작하는 Django Container (url, view)
2. PostgreSQL 이미지(docker image)를 활용해 만든 DB Container
(Docker image 란? docker 컨테이너를 생성하기 위한 명령어들을 가진 템플릿)
API Gateway 를 통해 대용량 데이터(우리는 10,000개를 임의로 넣어줬다.) 가 들어오면,
첫 번째 Lambda 가 SQS 대기열로 데이터를 전송 해주고
Gateway 는 메시지를 잘 받았다고 리턴을 해준다.
첫 번째 Lambda 가 전해준 10,000 개의 데이터를 SQS 가 받아서 한줄서기로 정리해주면,
두 번째 Lambda 가 DB 에 배치인서트(일괄처리: 여러 작업들을 병렬처리) 해준다.
개발 공부를 시작한지 3개월차인 나에게 Docker는 참 가혹한 아이.. 였다...
Docker 를 잘 활용하면 편리한 아이라는 것은 알았지만, 도대체 그 안에서 무슨 일이 일어나는 건지 가늠이 잘 되지 않았고 에러도 디테일하게 알려주지 않았다.
코드를 잘 못 짰을 경우, "엥! 에러!!!!" (제가 느끼기엔.. ) 와 같이 출력돼서 Docker 의 마음을 파악하기 위해 애썼다...
우리는 블로그와 인터넷 강의를 통해 프로젝트를 해결해 나갔는데, Docker 는 원래 변수가 많고 버전이나 명령어의 대소문자로도 에러가 날 수 있었기 때문에 코드와 명령어를 꼼꼼하게 체크하려고 노력했다.
(인터넷 강의 선생님께서도 Docker 강의를 진행하시다가 한 번에 성공하면 오옷! 소리 치시는 걸 보고 많은 위안을 받았다,,)
이번 프로젝트를 통해 Docker 를 왜 사용하는지 Docker 의 장점은 무엇인지에 대해 알 수 있었고 리눅스 명령어도 다뤄볼 수 있었다! 데브옵스는 이런 작업을 하는 구나 경험해볼 수 있는 좋은 시간이었다.
기업협업 전까지 내가 알고 있는 DB는 Oracle 과 MySQL 뿐이었다.
이사님께서는 PostgreSQL 을 현업에서 많이 사용하고, 한 번이라도 다뤄보는 게 도움이 될 것이라고 하시면서 PostgreSQL 에 데이터를 넣는 테스크를 주셨다.
PostgreSQL 은 현업에서 많이 사용해서 그런 것일까? 구글에 검색을 해도 관련 정보가 잘 나오지 않았다. 그리고 검색해서 나온 정보들도 기초 지식들은 당연히 알고 있다는 전제하에 쓰여진 글들이 대부분이라 팀원들과 추리하는데 많은 시간을 사용했다. (우리 팀원들 너모 감사해,, 덕분에 해냈어요)
추후에 PostgreSQL 에 대해 지금보다 디테일하게 파악하게 된다면(Docker 와 AWS 도) 현재의 나와 같은 친구들을 위해 블로그 정리를 잘 해두고 싶다. (특히 PostgreSQL 에 관련된 한글로 된 블로그 너모 소중했습니다.)
원래 이사님께서 한 가지 프로젝트만 제안하시고 남은 기간(기업협업 기간은 한 달)에는 각자 필요한 공부를 해도 좋다고 하셨는데, 기업협업의 기회는 쉽게 주어지지 않기 때문에 역으로 다른 프로젝트도 더 해보고 싶다고 제안 드렸다!
우리에게 주어진 상황에서 우리팀이 원하는 사항과 회사의(이사님) 실무 환경을 고려해 우리가 원하는 바를 명확하게 전달하고 어필해볼 수 있는 좋은 기회였다.
결론적으로 이사님께서도 다른 프로젝트를 더 진행해보는 것에 찬성을 하셨고, 우리는 두 번째 프로젝트까지 받게 되었다.
혼자 Docker 와 AWS 를 마주보았다면 훨씬 오랜 시간이 걸렸을 텐데, 함께 프로젝트를 해준 친구들에게 너무 고맙다!
개발 공부 3개월차에 Docker와 AWS 프로젝트를 해낸다는 것은 쉽지 않은 일이었는데, 우리팀은 분위기가 좋아서 회사에 출근하는 길이 매일 즐거웠다! (회사가 아닌 부트캠프의 연장선 느낌)
역시 무슨 일을 하든 좋은 사람들과 함께하면 힘이 나고 일도 즐겁구나! 느끼게 되었고 앞으로 나도 어떤 회사를 가든 많이 웃을 수 있는 분위기를 조성해야겠다고 다짐했다. (문화가 좋은 회사를 가고 싶은 마음도 생겼다.)
또한 AWS 과금 무서움도 알게 되었는데, 단순히 AWS 를 잘 못 사용하면 나에게 요금 폭탄이 날아온다는 것 뿐만 아니라, 회사를 가게 된다면 서버에 관련된 비용이 상상 이상이겠구나 싶은 생각에 앞으로 내가 맡을 업무에 대한 책임감도 느끼게 되었다.
프로젝트를 해볼수록 결국 모든 일은 사람이 하는 것이고, 맡은 바에 최선을 다해 책임감을 갖고 임해야 된다는 것을 상기하게 된다. 어려울 때마다 독려해주고, 사소한 것으로 웃을 수 있게 해준 팀원들과 책임감을 느끼게 해주시고 역제안을 받아주신 이사님께, 기업협업을 진행해주신 회사에 감사하다.