웹 개발에 있어 크게 두 갈래를 많이들 고민하게 되죠. 프론트엔드냐 백엔드냐… 당연히 본인이 끌리는 분야를 정하는게 좋지만, 아직 경험이 없다보니 어떤 판단 기준을 가져야할지 어려운게 사실입니다.
이러한 질문에 대해 '프론트엔드는 어떻고, 백엔드는 어떻다’ 는 얘기를 하는 것이 무척 조심스럽긴 한데요. 그간의 경험을 토대로 두 분야의 차이점에 대해 여러 각도로 생각해본 뒤 답변을 써봅니다. 읽으시면서 가볍게 참고만 해주세요!
<br>1️⃣ 백엔드보다는 프론트엔드 채용 시장이 조금 더 주니어들에게 열려있는 편 이라고 느끼곤 했어요. 이유를 나름 추론해보면, ‘프론트엔드 개발’ 이라는 개념이 하나의 개발 직군으로 여겨진 역사가 백엔드에 비해 길지 않기 때문이 아닌가 싶어요.
- 관련해서 조금 더 알아보고 싶다면? 구글에
프론트엔드 개발 역사
와 같은 키워드로 검색해보면 좋을 것 같아요. 웹 개발의 전체적인 역사에 있어 프론트엔드는 비교적 새로운 분야이고 짧은 히스토리를 갖고 있기 때문에, 이에 따라 발생하는 여러 특이사항에 대해 논하는 글들을 찾아볼 수 있어요. - 물론, 상대적으로 신규 분야이기 때문에 무조건 진입장벽이 낮고 주니어면 두 팔 벌려 환영이다! 이런 이야기는 아니에요. 반대로 ‘백엔드는 주니어는 안된다’ 는 것도 아니지요. 그저 분야의 특성상 그러한 경향성이 느슨하게 존재하는 것 같다는 것 뿐이지, 절대 진리가 아니니 오해는 없으셔야 합니다!
2️⃣ (정확한 이유는 모르겠지만)프론트엔드쪽 학습자들이 조금 더 활발한 느낌이 강했어요. 이건 운영을 직접 하면서도 매번 ‘왜 그럴까?’ 싶었던 부분인데요. 백엔드쪽보다 프론트엔드쪽에 모여있는 학습자분들이 더 커뮤니케이션 빈도가 높고, 분위기 자체가 활발한 경우가 종종 있었습니다. 물론 케바케지만, 전체적인 경향성을 봤을 때의 이야기에요.
- 제 나름 추론해본 바… 뭔가 사용자에게 보여지는 부분을 직접적으로 담당하고, 표현되는 방식에 대해 고민해야 할 일들이 있다보니 자연스레 그런 것들을 즐길 수 있는 성향이 모이게 되나? 하는 생각을 해본 적은 있지요. 물론 저의 뇌피셜입니다.
3️⃣ 상대적으로 백엔드쪽에서 Computer Science(컴퓨터 과학)
관련 지식을 강조하는 경우가 더 많았어요. 물론 이것도 프론트엔드는 그런거 몰라도 돼! 이런 얘기는 아니니 오해는 마시구요 😫 백엔드 개발자들이 고민해야 하는 주제들 중에는 Database, OS, Network, Data Structure, Algorithm… 과 관련한 지식이 필요한 경우가 상대적으로
더 많다보니 그런 것이라 생각합니다.
- 사실 프론트엔드든, 백엔드든 개발자로 오래오래 성장하면서 기술의 변화와 흐름에 따라 유연하게 잘 적응하려면… 단순히 몇 가지의 프로그래밍 언어를 사용하는 것 외에도, 그 근간에 있는 컴퓨터 과학 관련 지식을 함양해두는 것이 분명히 도움이 될거에요.
뭐든 해봐야 아는 것이지만, 제 경험을 토대로 ‘대~략 이런 특징이 있어보인다’ 정도의 의견을 몇 개 남겨보았습니다.
가장 먼저 말씀드리고 싶은 건, 더 쉬운건 없다 는 겁니다. 괜히 공부하는 분들 사이에서 ‘프론트엔드가 좀 더 쉽고, 백엔드가 배우기 좀 더 어렵다' 이런 얘기가 가끔 오고가는걸 봤었는데, 사실 그렇지 않습니다. 프론트엔드와 백엔드가 관심을 갖는 문제가 다른것 뿐이지, 둘 다 공부할 내용이 엄청 많다는 건 마찬가지입니다.
결국, ‘뭐가 더 쉽고 배우기 편해서' 선택할수는 없다는 걸 전제로 해주시면 좋을 거 같아요. 그렇다면, 다음은 ‘뭐가 나에게 더 잘 맞을까'의 문제가 될텐데요. 이 부분은 사실 개인의 성향을 타기 때문에, 얕게라도 직접 경험을 해보시고 판단하시는 게 필요합니다.
그런 의미에서, 부트캠프에 실제로 들어가시기 전에는 반드시 혼자 힘으로 ‘내가 배울게 뭐고, 뭘 하는 거고, 코딩이란건 도대체 뭐고…’ 등등 기본적인 내용을 찾아보고 미리 학습해보시길 당부 드립니다. 가능하다면 프로그래밍 언어 하나에서 두개 정도는 꼭 미리 맛을 보시고 어떤 분야로 깊게 학습할지를 판단하세요. 그걸 하고 안하고의 차이가 성장하는 속도나 취업 준비에 꽤 크게 영향을 미칩니다.
프론트엔드 백엔드 둘다 수요가 많습니다. 그러므로 취향에 맞게 고르는게 좋습니다.
개인적인 생각으로는 프론트엔드
는 눈에 보이는걸 바로 돌아가게 뚝딱뚝딱 만드는게 재밌다면 잘 맞습니다.
또한 프론트엔드는 유저와 직접 맞닿은 영역으로, 실제 유저들이 '서비스'라고 인식하는 부분이 프론트엔드이므로, 늘 유저 입장에서 사용성을 끌어올리는 것이 중요하다고 생각합니다.
백엔드
는 시스템을 어떻게 구현할지 설계하고, 그걸 실제로 돌아가게 하고 액세스와 데이터가 차곡차곡 들어오는게 뿌듯하다면 잘 맞습니다. 또한 365일 돌아가야하는 서버이므로 고가용성을 유지시키는 노력과 빠른 장애복구에 대한 책임감이 필요합니다.
하지만 직접 일해보기 전엔 내 취향을 잘 모를수도 있고, 또 취향은 언제든 바뀔 수 있습니다. 특정 포지션으로 취업을 해도 몇년 후 자신의 의지에 따라 다른 포지션으로 바꾸는 경우는 흔히 있습니다.