지금까지 사용했던 기술
Node.js와 TypeScript를 활용한 Express 서버 구축
개발단계에서 타입스크립트를 쓰면서 배포 후 런타임에러가 나는 것을 방지
채팅 뿐만 아니라 전이중 TCP 방식을 활용한 프로젝트 경험
MySQL과 Redis를 활용한 DB구축
잦은 I/O요청을 하는 데이터를 캐싱하여 서버 부담 감소
Docker MSA
마이크로서비스 아키텍처를 적용하여 부하가 큰 서버를 늘리고 관리가 용이하기 위해 도커 활용
GitHubAction을 활용한 Elastic Beanstalk배포
AWS 오토스케일링, 로드밸런서를 관리하고 빈스톡으로 Blue/Green배포전락 구현
어떤 개발자가 되고 싶은가?
상상만 해오던 아이디어를 직접 프로젝트에 자유자재로 구현할 수 있고 발생하는 에러를 쉽고 빠르게 해결하며 코드만 짜는 것이 아닌 유동적인 데이터의 흐름을 파악하여 성능을 개선하는 개발자
실전 프로젝트 후기
이전 까지는 그저 작동만 되면 그만인 코드 만들 짜왔다고 생각이 든다. 예를 들면 글목록 불러오기 기능이라고 했을 때, 그저 브라우저 상에서 글목록만 보이면 되는 식으로 코드를 작성하였었는데, 실전프로젝트는 그 이상의 무언가를 나에게 요구하는 것 같았다.
단순히 글 목록만 불러오는 기능이라고 하더라도 그 글목록이 어떤 과정과 어느 정도의 시간이 걸려서 최종적으로 브라우저에 나오기까지의 과정에 대해 제대로 이해하고, 복합적인 데이터구조를 가졌을 때 최적화하는 과정을 거쳐 서버 부담을 줄이고 사용자가 답답하지 않을 수 있는 방법에 대해 진지하게 고민해 볼 수 있는 기회가 되었던 것 같다.
또, 코드를 짜기 전에 계획을 최대한 구체적으로 세우고 의존성을 줄이고 유지보수가 용이하게 할 수 있는 OOP에 대해 좀 더 깊이 있는 이해도를 키워야겠다고 생각했다.