홈서버 프로젝트 - prologue
프롤로그 🎬
나는 프론트엔드 분야로 웹 개발을 시작했다. 이제 개발자로 일한 지는 2년이 되어가지만, 대부분의 일들은 백엔드에서 내려준 데이터를 화면에 어떻게 효율적으로 그려줄지에 대한 것들이었다. 물론 첫 회사에서 프런트엔드 프로젝트를 배포하는 작업까지 맡아 하긴 했지만, 배포를 자주 하지도 않았고 거기다 CI-CD를 적용했고 자동으로 빌드, 배포가 되는 형태를 한번 구축해놓으니, 그 이후로는 인프라에 대해서는 크게 들여다볼 기회도 많이 없었다.
그리고 작성한 코드가 화면에 즉각적으로 시각화되는 프런트엔드 분야와 달리, 백엔드 서버와 그 인프라 구조는 나에게 추상적인 지식으로만 남겨져 왔었다.(까만 터미널과 항상 함께하는 백엔드 개발자들이 존경스러웠다) 프런트엔드 개발자이지만, 웹 개발자로서 일을 해나가면서 미뤄왔던 이 추상적인 지식들을 실체화해야겠다는 생각이 들었다.
어떤 것을 만들 것인가? 🧑🏼💻
궁극적으로는 웹 서비스 전체를 셋팅부터 시작해 개발 및 배포,운영까지 한 사이클을 구성한다.
만들 서비스 주제는 고민 중이다.
준비물 🔨
- 공유기
- 2018년 intel 13 inch 맥북 RAM 8GB
- M1 16 inch 맥북 RAM 32GB
- 아이폰 11 pro (테스트용)
- 아이폰 15 pro (테스트용)
2018년 intel 13 inch 맥북 RAM 8GB
M1 16 inch 맥북 RAM 32GB
커플 사진 👩❤️👨
어떻게 만들 것인가? 🧐
집에 맥북이 2개가 존재한다. 하나는 2018년 intel 맥북이며(나를 개발자로 만들어준 고마운 맥북이고 현재는 은퇴한 상태이다), 다른 하나는 메인으로 사용하고 있는 M1 16inch 맥북이다.
2018년 intel 맥북은 홈 서버 컴퓨터가 될 것이다. 공유기를 사용하며, Public IP와 Private IP를 사용하여 외부 클라이언트에서도 이 홈 서버 컴퓨터에 접근할 수 있도록 만든다. 즉 인프라는 이 맥북 2018년 intel 맥북에 구성된다.
메인 M1 16inch 맥북에서 모든 코드 작업(개발)을 진행하고 테스트를 진행한 후, 2018년 맥북에서 코드가 돌아가도록 세팅을 한다.
살짝 큰 그림을 그려보면,
처음에는 인프라 구축을 해보며, 정적 파일 서빙과 서버는 몇 개를 돌릴지, DB서버는 어떻게 붙일지를 고민한다. 간단한 인프라가 구축되면, 백엔드 코드를 간단하게 작성하고, 프런트엔드 코드를 작성하여 배포를 어떻게 할지 고민한다. 배포 시스템이 갖춰지면, 간단한 기획을 거친 후 백엔드 개발 => 프런트엔드 개발을 진행한다. 테스트 후 정상적으로 운영이 된다면, AWS 서비스를 사용하여 외부 사용자에게 노출 시킨다.
얻을 수 있는 지식 🧠
- 네트워크
- 공유기
- 각종 리눅스 명령어
- 인프라 구조 및 설계 기법
- 웹 서버, WAS, DB
- api 설계
- AWS
- 도커 컨테이너
- 그 이외의 지식들
얻고자 하는 바 💪🏻
나는 어떤 일이든 흐름을 파악하는게 중요하다고 생각한다. 내가하고 있는 웹 개발도 마찬가지이다. 물론 흐름을 모르는 것은 아니다. 하지만 그 흐름 내면에는 어떤 상호작용을 하며 웹이 구성되는지 궁금했다. 이를 흐린눈 처리 하면서 여기까지 온 것 같다. 근본을 탐구 하는 것은 어쩌면 굉장한 리소스가 들 수도 있고, 수 많은 이슈들을 직면하게 되며, 계속해서 해결되지 않는 상태의 무한루프 지옥을 겪을 수도 있다.그런 역경들을 해쳐나가며 얻는 쾌감에서 더 나아가, 궁극적으로 기존에 추상적으로 남아있던, 혹은 둥둥 떠나니며 파편화 되어있던 웹 지식들을 실체화 시키며, 그 지식들이 모여, 하나의 웹을 이루게 되는 그런 상태가 되길 원한다.
더 나아가 그 지식들을 정리하고 검증하고, 기록하여 같은 고민을 하고 있는 프론트엔드 개발자들에게 공유하고 싶다.
댓글남기기