백엔드 개발자(보단 그냥 software engineer)이고, 어쩌다보니 취준생을 위한 멘토링을 간간히 진행하고 있다. 


요즘 내가 진행하는 곳에서는 팀프로젝트든 개인프로젝트든 배포까지 해보는 걸 많이들 시도하는데, 대부분 aws은 ec2 기반으로 배포하려고 하더라.


개인적으로는 ec2 배포도 한번씩 해보면 좋은 경험이겠지만, ec2 배포를 어려워하거나 이미 해봤다면, docker + ecr + (lambda나 app runner) 등으로 다른 구성을 추천해주면서 더 편한 배포 + 도커기반 배포를 경험해보게 추천해주는 편이다.


내가 그렇게 생각하는 이유에는 아래와 같은 생각들이 있다 


1. (시간 아끼기) 어려워하는 사람들의 경우 ec2 삽질에 많은 시간과 리소스를 쓰는 걸 방지. 열정이 있지만 개발에 익숙하지 않은 사람들이 멋도모르고 어려운 거에 달려들고 고통을 받는 경우가 있어서, 그런 고통을 줄이고 싶은 취지같은 게 좀 있다


2. (공부 및 키워드 확보) docker, serverless 등을 경험해보고 이런 기술들이 왜 나왔는지, 왜 좋은지 직접 사용해보면서 공부해볼 수 있음. 면접에서 질문 받는다면 이런저런 이야기를 꺼내오는 소재가 될 수 있을 것이고.


3. (현업 환경) 실제로 그들이 취업하게 되었을때 직접 다루게 될 배포 환경은 높은 확률로 쌩 ec2보디는 다른 서비스(eks라던가..)이고, 도커 기반 생태계일 확률이 놓다.


4. (성공 경험) 이런 서비스의 사용법을 본인이 공부하고 적용해보면서 얻는 문제해결 경험은 정말 좋은 경험이다. 난 위의 과제가 이 경험을 하기에 적당한 난이도라도 생각한다.  문서 잘 읽기 + 딸깍딸깍 수준인데 성취감도 쫌 있으니(내가 간단한 가이드를 제공해주고 있음), 문서 잘 읽고 에러로그 잘 읽고 하나씩 수행하면 많은 문제를 해결할수 있다 뭐 이런 자신감과 습관을 주려는 취지도 있음.



3의 경우 내가 모든 회사를 잘 아는 것은 아니지만, 별도의 devops가 있어서 백엔드가 직접 배포와 관련된 깊은 부분을 다루는 (적어도 ec2를 만지고 있은) 일은 없을 것이고 그마저도 요즘 많은 IT서비스 기업들이 쿠버네티스 기반으로 가고있으니 ec2를 직접 만질 일은 더 없다고 생각한다..만 말한 것 과 같이 내가 온갖 회사들의 상황을 알지는 못해서 정확하지 않을 수 있다. 주로 나 + 내 주변 사례는 주로 빅테크거나 몇멸 스타트업 사례임..



반대로 그냥 포폴에서 ec2 계속 쓰는걸 추천하는 입장에 내가 서본다면, 아래 이유가 떠오른다.


1. 어려워하는 사람들이 ec2를 직접 다뤄보면서 간단한 리눅스 명령어, vpc 등 네크워크 관련 설정 등을 직접 수행해보는 것은 상당히 유의미하고 권장되기에, 어렵더라도 한번 꼭 해볼만 하다.


2.  새로운 배포 방법 새로 공부하고 익히는 게 비효율적이거나 오버하는 것처럼 느꺄질 수 있다. 그 시간에 그냥 ec2 쓴다음 다른 것(ex 서비스 기능) 집중하는 게 나을 수 있다. 지칫하면 키워드 가짓수 늘리기에 치중한다는 느낌을 줄 수도 있다


3. 내가 직간접적으로 경험해보지 못한 많은 곳에서 사실 쌩 ec2가 사용되고 있으며 백엔드가 그걸 다룬다


등등? 간단히 생각해본거라 더 있을 수 있음.




당연히 내 생각이 틀릴수도 있고 다른 이유나 다양한 사례가 있을 수 있음. 내가 전문적으로 멘토링만 하는 사람이 아니라 직접 아는 사례가 적기도 하고.


여기에 이 글을 올리는 이유는 나도 멘토로서 더 좋은 도움을 그들에게 주고싶기 때문인데, 이 곳에 취준생/현직자들도 많은 것 같아서 의견을 들어보러 왔음. 어떤 사람은 뭐 포폴인데 배포 왜하냐 하지 말게 해라 이런 의견일수도 있고


개인적인 사례든 의견이든 공유해주시면 ㄱㅅㄱㅅ



(아 추가로, 완성도에 따라 다르겠지만 배포된 서비스는 도메인 사서 연결해보고 그들의 주변 지인들한테 써보게하라고 하기, 최대한 유지해서 구직 시 작동하는 링크로 제시하기를 권장하고 있다. )