이번에는 웹개발에서 중요한 키워드인 프런트 엔드(Front-End, FE)와 백엔드(Back-End, BE)에 대해 알아보고,
더 나아가 풀스텍(Full Stack)에 대해서도 알아보려 한다.
맨 처음 소프트웨어 학과 공부를 시작할 때 가장 먼저 했던 고민이었던 것 같다.
'만약에 웹 개발자가 된다면 프런트 엔드로 나아가야 할까? 백엔드로 나아가야 할까?'
지금은 인프라쪽으로 진로 방향을 잡고 나아가고 있지만
모든 소프트웨어를 공부하려고 하는 사람들이라면 무조건 알아야 할 것들이라 생각한다.
Front-End

프런트 엔드는 말 그대로 '프로그램의 가장 앞'을 말한다.
우리가 사용하는 웹 사이트의 화면들을 프런트 엔드라고 한다.
사용자가 보는 화면의 인터페이스인 것이다(UI).
사용자 인터페이스는 사용자와 상호작용하는 것을 의미한다.
예를 들면 우리가 웹 사이트에서 볼 수 있는 여러 버튼들, 입력창, 반응형 디자인 등등
이러한 것들을 개발하는 직군이 프런트 엔드 개발자이다.
프런트 엔드 개발자들은 HTML과 CSS, Java Script, React, Vue.js 등으로 개발을 진행하며
관련 코딩 트렌드와 유행하는 툴들이 자주 업데이트 되어 커리어 중에도 습득해야 할 학습량이 어마어마하다.
그래서 이러한 고충 때문에 JavaScript Fatigue 라는 용어도 따로 있다고 한다..(이건 몰랐네)
매일 업데이트 되는 트렌드로 이를 팔로업 하기 위한 정보량이 많지만, 끊임없이 자신을 발전시키는 것을 좋아하는 분들, 최신 기술을 이용하는데 흥미를 갖는 분들이라면 정말 매력적인 직무라고 생각한다.
만들면서도 진행 상황을 레이아웃으로 한번에 확인 가능하고, 사용자 피드백도 즉각적으로 받을 수 있는 영역이기 때문이다.
Back-End

백엔드는 반대로 '프로그램의 가장 뒤'를 말한다.
데이터베이스(회원 정보 등등)와 라우터 등의 웹의 뒷 부분을 담당한다.
백엔드는 프런트 엔드와 달리 사용자가 눈으로 즉각적으로 볼 수 있는 부분이 아니지만, 실제 우리가 사용하는 기능들의 전반이다.
회원 생성, 글 업로드, 댓글 작성 등의 기능들을 백엔드에서 처리한다.
관련해 여러 프로그래밍 언어 및 SQL을 알고 있어야 한다는 고충이 있지만, 프런트 엔드보다 개발 환경이 안정적이라는 장점이 있다.
프런트 엔드가 불안정적이라는 뜻이 아니라, 백엔드는 개발자가 선택한 프래임 워크(Django, Spring,,,)에서 트렌드가 프런트 엔드와는 달리 확 바뀌지 않는다는 것이다.
하지만 프런트 엔드와 달리 사용자 눈에 보이지 않는 뒷면을 개발하다보니, 즉각적인 피드백을 받을 수 없다.
Full-Stack

풀스택은 프런트 엔드, 백엔드에 더해 데브옵스(DevOps)이다.
풀스택 개발자들은 이들을 다 할 줄 알아야 한다.
이때 데브옵스는 소프트웨어 개발 + 운영이다.
이들은 개발 뿐만아니라 데브옵스, 즉 서버 선정, 서버 셋업, 보안 등 수많은 것들을 담당할 수 있어야 한다.
이렇게 프런트 엔드, 백엔드, 풀스텍에 대해 알아보았다.
나 같은 경우 리눅스 서버를 주로 만지다 보니 개발 영역에는 모르는 부분들이 많다.
그래도 나름 웹/앱 관련 툴들이나 용어들에 대해서는 전반적으로 다 알고 있다고 생각했는데, 책을 읽으면 읽을 수록 내가 모호하게 알고 있던 부분이나 새로운 개념들이 명확해지기 시작했다.
'Book' 카테고리의 다른 글
[IT 5분 잡학사전] 후기 (1) | 2024.02.23 |
---|---|
[IT 5분 잡학사전] SQL과 NoSQL (1) | 2024.02.19 |
[IT 5분 잡학사전] 도메인 관리에 대하여 (0) | 2024.02.14 |
[IT 5분 잡학사전] 파이썬이 C보다 느린 이유 (21) | 2024.02.11 |
[IT 5분 잡학사전] C, C++, C#의 차이 (23) | 2024.02.10 |