프론트엔드와 백엔드 차이 + 내가 백엔드 개발자가 되고 싶은 이유
프론트엔드
우리 눈에 보이는 영역을 개발하는 일.
웹사이트 내 '이 화면'처럼 사용자가 볼 수 있는 화면을 구성합니다.
직접적으로 이용자들의 눈에 보이는 영역을 개발하기에 사용하기 쉽고 사용자의 경험에 맞춰 서비스를 개발해야 많은 사용자들이 사용하기 때문에 최적의 인터페이스를 갖추는 것이 가장 중요합니다.
프론트엔드 개발을 위해서는 어떤 것이 필요할까?
HTML, CSS, JavaScript
프론트엔드를 개발하기 위해선 위의 3가지 언어를 모두 반드시 알아야 합니다.
백엔드
우리 눈에 보이지 않는 뒷단을 개발하는 일.
사용자가 볼 수 없는 환경을 구성하는 영역을 뜻합니다.
사용자가 원하는 정보를 제공할 수 있게 데이터를 저장하고 관리하거나,
서버가 터지지 않게 운영하는 일을 합니다. 즉, 프론트엔드에 있는 사용자들이 원하는 행동을 처리하는 것입니다.
사용자가 원하는 일을 에러가 나지 않고 원활하게 실행되도록 만드는 것이 중요합니다.
예를 들면, 티켓팅을 하거나 수강신청을 할 때 서버가 터지지 않게 하고, 응답 시간을 최적화하는 것이 있습니다.
백엔드를 개발하기 위해선 어떤 것이 필요할까?
웹 서비스의 전체적인 구조를 이해해야 합니다.
흔히, 논리적인 사고로 접근해야 합니다.(+효율성)
프론트엔드의 언어와 다르게 백엔드는 한 가지 언어에 집중해서 학습하면 됩니다.
대표적인 언어는 PHP, 파이썬, 루비, 자바(Java)가 있습니다.
PHP | 개발을 위해 고안된 서버 측 스크립트 언어이자 수많은 웹 시스템의 기반이 되는 언어. 오직 웹개발을 위해 쓸 수 있음. |
파이썬 | 가독성이 높고(쉬움) 다른 언어나 라이브러리에 쉽게 접근해 연동이 가능해 높은 확장성이 있음. 하지만 느림. |
루비 | 동적 객체 지향 스크립트 언어. 확장성도 높지만 느리고, 국내 사용률이 저조해 많이 사용하지 않는 언어. |
자바 | 백엔드에서 가장 많이 사용. 객체 지향 프로그램 언어이며, 보안에 강하지만 속도 문제로 앱 개발에는 적합하지 않음. |
내가 백엔드 개발자가 되고 싶은 이유
저는 학창시절 수학문제를 해결하는 것에 열정이 있고 좋아했습니다.
또 다양한 아이디어를 구현시키는 것에 흥미가 있습니다.
다양한 문제와 아이디어를 오직 컴퓨터 하나로 해결하고 구현한다는 점이 개발자의 가장 큰 매력이라고 생각해요.
저의 단점은 새로운 환경에 빠르게 적응하지 못하는 점인데,
백엔드 공부는 한 번 배우기까지는 매우 어렵지만,
프론트엔드 공부처럼 시시각각 변하는 트렌드에 맞추어 발 빠르게 공부하지 않아도 되어
백엔드 공부가 저에게 더 잘 맞을 거 같습니다.
물론 프론트엔드처럼 오류가 생기면 시각적으로 보이지 않기에
문제해결은 훨씬 더 역경이겠지만,
효율적인 해결방법을 생각해내는 걸 좋아하는 저에겐 또 하나의 재밌는 도전이라고 생각합니다!