개발자
프론트엔드는 상대적으로 배포에 대한 지식을 덜 요구하는거 같은데 보통 vercel로 배포를 하는데도 봤었고 aws 자체와 좀 거리가 멀었던거같은데 요즘에는 HTML, CSS를 퍼블리싱의 영역으로 보내고, JS, React에 성능 위주의 개발과 프론트엔드만의 독자적인 인프라 구축에 예전보다 많은 관심을 받고 있다고 들었습니다. aws나 docker 같은 것도 요즘 프론트엔드 개발자라면 어느정도 지식 습득이 필요하다고 생각하는데 어떻게 생각하시나요? 아는 동생이 프론트엔드 개발자 지망인데 vercel로 배포만 해보고 어떤식으로 배포되고있는지 효율적으로 배포 플로우를 만들어 보거나 해보지를 못 했다길래 필요한지 궁금해서 qna에 남깁니다.
답변 3
여전히 아직까지 프론트엔드는 백엔드에 비해 데브옵스에 관련해서는 많이 요구하지 않는 것 같습니다. 물론 잘 알고있으면 좋고 도커랑 쿠버네티스 개념정도는 약간 상식 느낌으로 알면 좋지만 모른다고해서 문제는 크게 없는 것 같습니다. 특히 신입 입장에서는 vercel이나 amplify로 딸깍 배포정도만 해도 큰 무리는 없을 것 같아요.
당연히 역할인 프론트엔드(html,css,js)실력이 우선이겠지만, 백엔드 개발자가 백엔드 서버를 만들고 배포할 줄 알듯이 프론트엔드 개발자도 자신이 만든 정적 웹 또는 프론트 서버를 배포할 줄 알아야 한다고 생각합니다. 다들 아시겠지만 aws를 통해 직접 배포 해 보는 경험은 처음 하면 어렵지만 그만큼 배울 수 있는 게 많습니다 요즘은 react 나 next에 대한 배포 자료가 많아서 금방 배울 수 있습니다 https://github.com/aws-samples/react-cors-spa https://github.com/vercel/next.js/tree/canary/examples https://github.com/orgs/nextjs/repositories https://youtu.be/sIVL4JMqRfc?si=gyQg0XQ4OZ06r7Q1
여러 사람들이 좋은 의견들을 줬지만 저는 배포는 무조건 할 줄 알아야 한다고 생각합니다. 배포를 모르면 단점들이 여러 가지 있습니다. 1. 자신이 한 작업을 공유하기 쉽지 않습니다. 기획 회의라도 하면 모두 본인 자리로 와서 localhost보면서 회의해야 됩니다. 2. 배포 환경에 본인의 소스가 올라갔을 때, 차이가 생기는 부분들이 터져나옵니다. 즉 '로컬에선 잘되는데 서버(인스턴스)에선 안된다' 가 바로 이런 상황입니다. 3. 로컬과 인스턴스의 차이를 모르는 상태에서는 해결할 수 없는 것이 존재합니다. 예를 들면 CORS 처리. 이런건 로컬에선 절대 발생하지 않아서 인지조차 못합니다. 4. 열심히 서비스 잘 만들어놓고 정작 서비스 오픈이 불가능합니다. 이건 회사에 있어 중차대한 이슈입니다. 배포를 알고 여러 가지 상황을 해결할 줄 알면 좋은 점이 있습니다. 제 경험에 빗대서 얘기해보겠습니다. 이 회사에 들어왔을 때, 모두가 고민하던 문제가 바로 '아무도 배포를 해본적이 없다' 였습니다. 그래서 다들 리눅스나 OCI에 대해 학습은 하는데 접근 방법이나 방향을 잘 몰라서 헤매고 있었습니다. 제가 입사해서 일주일만에 배포 가이드부터 만들었습니다. OCI 교육을 받았는데, 가만히 지켜보니 리눅스랑 걍 똑같습니다. 리눅스라면 예전 다니던 회사 중 한곳에서 정말 지겹도록 했기 때문에 그땐 Apache를 썼었지만 이번에는 Nginx 써볼려고 검토를 해봤습니다. 그리고 바로 OCI에 Nginx 설치해서 80포트부터 띄웠고 거기다가 소스 빌드 파일 옮기니 프론트 화면 떴습니다. 제가 한 방법을 일정 부분 참고해 백엔드도 boot jar등 띄웠습니다. 이렇게 하고 나니 모두의 고민을 해결해준 사람이 되어서 신뢰도가 확 올라갔습니다. 제가 개발팀에서 시니어 Role을 수행하는 것에 모두 잘 따라주었습니다. 그 후에도 저는 인스턴스를 사용해서 여러 가지를 고안했고 항상 그 결과를 보여줄 수 있었습니다. CORS 처리, OKE를 사용한 K8S 적용, 도메인 적용, 파일 서버 구축, github Actions를 사용한 Storybook배포.. 재밌는 것들을 진행했습니다. 이처럼 개발의 즐거움을 배로 느끼기 위해서라도 배포는 꼭 해 보실것, 하실수 있을 것을 권해드리겠습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 12월 03일
프론트엔드 개발자의 경우, 가장 기본적으로 HTML, CSS, JavaScript 등 웹 프로그래밍 기술을 능숙하게 다루는 것이 중요합니다. 그러나 최근에는 사용자 경험(UX)를 향상시키기 위해 React, Vue.js 등의 프레임워크와 AJAX를 통한 비동기 처리 방식에 대한 이해를 요구하고 있습니다. 또한 프론트엔드 개발자가 배포 과정에 대한 지식을 갖는 것은 매우 유익합니다. 특히 클라우드 서비스(AWS 등)와 컨테이너 도구(Docker 등)에 대한 이해는 성능 향상과 시스템 안정성 제공에 큰 도움이 됩니다. 실제 프로덕션 환경에서 어떻게 작동하는지 이해하는 것은 디버깅과 최적화 과정에서 많은 도움이 됩니다. 정리하면, 프론트엔드 개발자가 인프라 관련 지식을 습득하는 것도 중요하지만, 그보다 더 중요하게 여겨질 수 있는 사항은 웹 표준과 접근성, 반응형 웹 디자인, 웹 성능 최적화 등 사용자 경험(UX)을 직접적으로 개선할 수 있는 능력을 키우는 것입니다. 그러나 클라우드 서비스와 컨테이너 도구에 대한 지식은 여전히 프론트엔드 개발자의 유용한 스킬셋으로 간주됩니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!