프론트엔드와 백엔드 각 개발의 차이
프론트엔드(FE)
웹 화면 또는 모든 SW의 화면, 즉 앞 부분을 만드는 포지션이다. JS(JavaScript)를 기반으로 하는 언어를 주로 사용한다. JS기반의 프레임워크를 사용하는 추세이기도 하다. 백엔드보다 상대적으로 시각적인 결과를 확인하기 쉽기에 러닝커브(미리 만들어놓은 소스코드이 집합) 가 낮다고 생각되지만, 프레임워크나 라이브러리의 원리와 사용 이유 등 근본적인 기술을 걔우치는 부분에 있어서 마냥 낮다고는 할 수는 없다.
FE를 배우기 위해선 먼저 HTML(뼈대) + CSS(피부) + JavaScript(행위) 를 담당하는 언어들을 배워야 한다.
후에 React.js, Vue.js, TypeScript 등을 배우며, 각 회사별, 개발하는 웹 또는 앱의 기능과 사용 목적에 따라서 실사용 여부가 갈리는 경우가 있지만 대체적으로 이 루트대로 학습을 이어간다.
백엔드에 비해서 기술 트렌드가 빠르게 바뀌는 분야라서 취업을 이어간다 하더라도 꾸준히 트렌드를 따라가야하는 분야이기도 하다.
백엔드(BE)
흔히 서버 개발자 라고 부르며 서버 개발, 유지보수 등을 하는 포지션이다. 시각적으로 볼 수 없는 기술 로직을 구성하거나 컨트롤 하는 소스코드들을 만드는 포지션이다. 예시로 회원가입 기능을 구현한다고 하면, 사용자가 '회원가입' 버튼을 누르면 즉시 다음 절차가 이어지도록 로직화 하는 것이 백엔드 개발자의 역할이라고 보면 된다.
국내 대다수의 기업들은 Java를 많이 사용하며, JS, 파이썬, Ruby, GO, C#, C++, PHP 등 다양한 언어를 이용해서 백엔드를 유지하는 회사들도 있긴하다. 다만 취업시장에선 Java를 기본으로 스프링이란 프레임워크를 사용하는 회사들이 많기에 다수의 취준생들은 Java를 학습한다.
그리고 단순 서버 관리 뿐만 아니라 데이터 관리, 보안 등도 업무에 해당되는 경우가 있어서 해당 관련 지식도 틈틈히 알아둬야 한다. 데이터 처리 시간을 어떻게 효율적으로 관리하는가 역시 백엔드 개발자로서의 역량 중 하나이기에 웹 전반적인 지식을 필수로 한다.
프론트와 달리 기술 트렌드의 변화가 무딘편이지만, 서버라는 곳은 24시간 동안 가동되는 곳이기에 긴급 상황 때 대처 능력이 필요로 되기도 한다.
백엔드 개발자가 되고 싶은 이유.
나는 20대 후반에 들어서 내 적성을 알게 되었다. 도전적이고, 무언가 뚝딱 만들고 처음 해보는 것에 호기심이 많다는 점 등등 앞서 20여년 살았던 삶과 정반대의 적성을 있단 걸 알게 되었다. 알게 된 과정이 솔직히 별 것 없지만.. 그러면서 직업관도 바뀌었고 가치관도 많이 바뀌었다. 그와중에 개발자라는 것에 관심을 갖고 알아보고 백엔드를 택했다.
데이터를 관리한다는 점이 가장 인상깊었다. 어느 데이터를 가지고 어떤 서비스를 만드는가에 따라 소비자들에게 좋은 서비스를 제공할 수 있다는 점이 흥미로웠다. 코로나 시대때 코로나 현황을 사이트화 시킨 학생을 보면서 '나도 저런걸 해보고싶다' 라는 생각이 먼저 들었다. 그러다보니 회사를 다니면서도 개발자라는 직업에 막연한 동경심을 품게 되었고 얼마 안 있어서 퇴사를 결심하고 실행했다.
다만 조금만 더 알아보고 퇴사할 걸이라는 후회는 얼마 안 있어서 들긴 했다. 그러다보니 개발 공부하는 것에 있어서도 슬럼프가 오고 내 환경 자체가 공부에 온전히 집중하기 어려운 환경이라는 것도 슬럼프를 겪으면서 알게 되었다. 물론 지금은 그것도 수긍하고 내 환경에서 뽑아낼 수 있는 최적의 환경을 찾고 있다.
백엔드 개발자가 된다면 한 번은 내가 만든 웹 또는 앱으로 사업을 해보고 싶다. 작년 이맘 때 회사를 다닐 때도, 그 생각을 했었지만 아직까지 유효하다. 쉽진 않겠지만 해보고 싶다.
'PAST' 카테고리의 다른 글
앞으로의 백엔드 공부 계획 (1) | 2024.01.05 |
---|---|
2024 백엔드 커리어 로드맵 - 어떤 백엔드 개발자가 되고 싶은지 (1) | 2024.01.05 |
백엔드 스쿨 20기 시작.... (0) | 2023.12.01 |