http://30quiz.com/

이미지 클릭

 

GitHub - MoonJaeSeung/QuizShow: initial commit

initial commit. Contribute to MoonJaeSeung/QuizShow development by creating an account on GitHub.

github.com

 

한 서비스를 처음부터 끝까지 1인 구현 후의 회고

 

한 서비스를 기획, DB, 프론트엔드, 백엔드, 배포, 유지 및  보수(모니터링)까지 마무리해보았습니다.

아직 부족하지만 한 서비스를 마무리한 소감을 적어보려합니다.

 

 

 

 

1인 프로젝트로 서비스를 수행한 이유 

1. AI의 출현으로 인한 T자형 인재가 요구될 것이라 판단

 

AI의 발전으로 여러명의 개발자들이 하던 업무가 소수의 인원이 담당하는 방향으로 바뀔것이라고 판단했습니다.

 

이러한 변화에 대비하기 위해 개인 프로젝트를 진행하였습니다. 이 프로젝트를 통해 모든 단계를 경험하며 자신이 담당한 구역뿐만 아니라 DB, 프론트엔드, 백엔드(main) ,그리고 DevOps까지 다양한 역할을 수행할 수 있는 T자형 인재로서의 능력을 갖추고자 했습니다

 

이 생각을 바탕으로 저는 개인프로젝트를 진행함으로써 한 서비스를 배포하기까지의 모든 단계를 경험해보고자 했습니다.

 프로젝트 기획부터 사용자 인터페이스와 사용자 경험을 고려한 어플리케이션을 개발하였고 배포, 운영, 모니터링 등을 자동화하고 효율적으로 관리하기 위한 환경을 구축하였습니다.

 

정말 힘들었지만 너무나도 많은 것을 배웠습니다. T자형 인재로서의 발판을 마련했고 프로그램의 전체적인 흐름을 이해하며 다양한 역할을 수행할 수 있는 자신감을 얻을 수 있었습니다.

 

2. 타 부서와의 소통

백엔드 업무를 맡게 되더라도 다른 부서와의 원활한 소통은 필수적입니다. 기획자, 프론트엔드 개발자, 그리고 DevOps 담당자와의 원활한 소통은 프로젝트의 성공과 팀의 협업에 매우 중요합니다. 그들의 고충과 요구사항을 이해하고 반영하기 위해서는 직접 해당 역할을 경험해보는 것이 필요하다고 판단했습니다.

 

따라서 본 프로젝트를 계기로 각 부문을 구현해보면서 그들과 소통할 수 있는 최소한의 준비자세를 갖추고자 했습니다.

이러한 경험은 다른 부서의 요구사항을 이해하는 능력을 갖추는데 도움이 될 것이기에 매우 좋은 기회라 생각하고 전념했습니다.

 

 


 

주요 기술 및 아키텍처

 


힘들었던 점

사실 이전에 DB 설계 및 프론트, 백엔드는 팀프로젝트로서 진행한 경험이 있어서 크게 어렵진 않았습니다.

하지만 DevOps 단계인 배포, CI/CD, 모니터링과 같은 부분은 처음 진행해보는 것이였기에 많이 힘들었습니다.

 

특히 AWS를 이용하며 보안을 신경쓰지 않을 수 없었습니다. AWS 계정이 해킹 당할시 그 사람들이 비트코인을 캐는데 이용한다는 소문이 있었기때문입니다. 이는 바로 비용 발생으로 이어질 것이기 때문입니다. 이로 인해 AWS 배포를 포기할까도 생각해봤지만 지금 물러서면 나중에도 못한다는 생각으로 보안에 철저히 신경을 쓰며 AWS 배포를 진행하였습니다.

 

AWS 보안 시스템 구축 과정 : https://iwin.tistory.com/125

 

AWS 철통 보안 장치 만들기 - AWS 사이트 내 설정

AWS가 해킹 당하는 순간 수백만원 수천만원까지 돈이 나가는 불상사가 발생할 수 있다고 합니다. 이는 개인 프로젝트 진행 중에 발생해도 문제가 되겠지만 회사에 입사해서 만약 내 실수로 인해

iwin.tistory.com

 

DevOps 단계를 수행 함에 있어서 인터넷에 있는 자료를 참고하되 모든 단계를 하나하나 이해하며 진행하였습니다. 제가 대충 판단하고 넘어가면 이는 후에 반드시 에러라는 결과로 돌아왔습니다. 특히 DevOps 단계는 단순 코드 실수처럼 디버깅도 힘들어서  정말 매순간순간 심혈을 기울였고 이 과정에서 많은 CS 지식을 배울 수 있었습니다.

 

 


느낀 점

AI의 등장으로 인해 단순 코더는 무조건 사라질 것이라는 확신이 들었습니다. 전 GPT를 활용하며 GPT의 한계와 부족한 부분, 인간의 판단력과 통찰력이 필요한 업무에 집중하여 분석하였습니다.

 

실무에서는 업무 기간, 회사 재정, 보안, 프로젝트의 전체적 흐름 등 인간의 판단과 의사결정이 필요한 요소가 존재할 것입니다. 이러한 요소들은 AI에 의존할 수 없기에 업무를 맡게 된다면 구조 설계, 코드 검증 능력, 프로젝트의 전체 흐름 파악과 같은 역량이 중요하다고 생각했습니다. 이를 위해 클린코드와 리팩토링과 같은 개발자 필독서를 구매하여 읽어나갈 계획입니다. 또한, 회사에 입사하여 프로젝트를 맡게 된다면 타부서와의 소통을 자주하며 회사의 문화와 팀의 방향성, 프로젝트의 전체적인 흐름을 파악하여 최고의 결과물을 만들어내는데 필요한 모든 요소를 고려하고 배워나가겠습니다.

 

또한 DevOps 단계를 진행하며 CS의 중요성을 실감했습니다.  AutoScailing, EC2 보안 설정 등을 통해 다양한 프로그래밍 용어와 CS원리에 대한 이해를 깊게 하였습니다. 이는 이론적인 지식뿐만 아니라 실제 프로젝트에 적용하며 학습한 것으로, AI가 침범하기 어려운 분야라고 판단했습니다. 보안과 밀접한 이 과정은 AI에 의존할 수 없기에 저는 계속해서 CS 공부를 진행하여 컴퓨터 자체에 대한 지식을 키울 것입니다.

 

마지막으로, AI를 잘 활용하는 것도 개발자의 능력 중 하나입니다. 다양한 AI를 활용한 도구들을 적극적으로 활용하고 최신 뉴스를 읽으며 개발 트렌드를 파악하고자 합니다. 결국 개발자의 핵심 역량은 가장 효율적인 선택으로 문제를 해결하여 비즈니스 가치를 창출하는 역할이기에,

 

항상 시대의 흐름에 맞춰 최고의 결과물을 만들어내는 방법을 고안하고 발전시키는 개발자가 되겠습니다.

 

'Deep Dive' 카테고리의 다른 글

웹 소켓을 활용한 채팅 구현  (0) 2023.07.11
iam 계정으로 ec2 접속하기  (0) 2023.07.09
셔플링 알고리즘  (0) 2023.07.02
타이머 기능  (0) 2023.07.02
JPA Repository & QueryDSL  (0) 2023.06.23

+ Recent posts