본문 바로가기
개발자

프론트엔드와 백엔드 역할, 개발언어 : 다양한 개발자의 세계

by 펄블리네 2022. 6. 29.

 내가 생각했던 개발자는 앱을 만들고, 웹사이트를 만들고, 게임을 만드는 사람이었습니다. 하지만 간호사도 병동 간호사, 중환자실 간호사, 수술실 간호사 등으로 나뉘는 것과 같이 개발자도 하는 업무에 따라 다양하게 나뉜다는 것을 알게되었습니다. 우연히 보았던 부트캠프 광고에서 백엔드 수업 공고를 보게 되었습니다. 백엔드가 뭐지? 싶었고 이 외에도 프론트엔드 등 다양한 교육이 있다는 것을 알게 되었습니다. 대표적인 개발자인 프론트엔드, 백엔드에 대해 정리해보겠습니다.

 

 

웹 페이지 개발

 웹 페이지의 개발은 기본적으로 프론트엔드와 백엔드의 두가지로 나누어집니다. 웹 페이지는 먼저 프론트엔드 개발자가 사용자의 눈에 보이는 화면을 만듭니다. 블로그로 예를 들면 상단 배너를 만들고, 오른쪽에 카테고리를 만들고, 중간에는 게시물들을 한 번에 볼 수 있도록 구성합니다. 프론트엔드에서 백엔드로 페이지를 구성하는 값들을 요청하면, 백엔드에서는 데이터베이스에 접근해 관련 정보를 가지고와 프론트엔드에 보내줍니다. 그리고 프론트엔드에서는 백엔드로부터 받은 정보를 바탕으로 사용자들에게 보여줄 화면을 구성합니다.

 대부분의 웹사이트는 하나의 페이지가 아닌 다양한 페이지로 구성되어있습니다. 각 페이지마다 프론트엔드가 백엔드로 요청하는 정보가 다르기 때문에 백엔드에서 프론트엔드로 응답해주는 정보들도 또한 페이지마다 다르게 됩니다. 이처럼 하나의 웹을 만들기 위해서는 프론트엔드와 백엔드 개발자가 모두 있어야 하며, 이들은 상호 유기적으로 움직이는 것이 중요합니다.

 

개발언어(프로그래밍 언어)

 개발언어는 다음 포스팅에서 자세히 다룰 예정이므로 이 포스팅에서는 간단하게 소개를 하겠습니다. 전세계에는 다양한 언어가 존재합니다. 그리고 각 나라의 사람들과 대화를 하기 위해서는 각 나라에 맞는 언어를 사용해야 합니다. 예를 들어 미국인 친구와 대화를 하려면 내가 직접 영어를 쓰거나 다른 사람 또는 기기 등을 통한 통역이 필요합니다. 이처럼 컴퓨터도 마찬가지입니다. 컴퓨터와 대화를 하기 위해서는 0과 1을 사용하여야 합니다. 하지만 이는 외국어를 배우는 것보다 어렵기 때문에 통역을 해줄 수 있는 사람 또는 기기가 필요합니다. 이것이 바로 개발언어(프로그래밍 언어)입니다.

 개발언어는 웹, 서버, 앱 등 프로그램 운영체제에 따라 다양하며, 플랫폼의 발전에 따라 개발언어도 꾸준히 발전하고 있습니다. 새로운 개발언어가 만들어지기도 하고, 기존에 있는 개발언어가 사라지기도 합니다. 그렇기때문에 자신이 개발하고자 하는 분야에 따라 적절한 언어를 배우고, 변화에 맞게 꾸준히 공부를 해야 합니다.

 

 그러면 이제부터 프론트엔드 개발자와 백엔드 개발자의 역할과 학습해야 할 개발언어에 대해 알아보겠습니다.

 

프론트엔드 개발자

 프론트엔드 개발자는 기본적으로 사용자의 눈에 보이는 화면을 구성하는 역할을 합니다. 즉, 우리가 웹·앱 페이지를 이용할 때 보는 모든 화면은 프론트엔드 개발자가 만드는 것입니다. 따라서, 고객들과 가장 가까이에서 마주하는 부분이기 때문에 프론트엔드 개발자의 역할은 매우 중요합니다.

Q. 그렇다면 프론트엔드 개발자는 디자인 실력이 있어야 하나요?
A. 기본적으로는 그렇지 않습니다. 왜냐하면 보통 프론트엔드 개발자는 디자이너가 구상해주는 디자인을 토대로 화면을 구성하기 때문입니다. 하지만 작은 규모의 회사에서는 직접 디자인을 하기도 합니다.

 프론트엔드 개발자는 눈에 보이는 작업을 하는 일이다 보니 꼼꼼하고, 바로바로 눈에 보이는 결과물을 만드는 것을 좋아하면 잘 맞을 수 있습니다.

 프론트엔드는 크게 웹과 앱으로 나누어집니다. 그리고 앱은 다시 안드로이드와 IOS로 나누어집니다. 따라서 웹 프론트엔드 개발자를 하고 싶은지, 앱 프론트엔드 개발자를 하고 싶은지에 따라 배워야하는 언어가 달라집니다. 웹 프론트엔드 개발자는 기본적으로 HTML(HyperText MarkUp Language), CSS(Cascading Style Sheets) 그리고 JavaScript 언어를 사용합니다. HTML과 CSS는 웹페이지의 화면을 구성하고, JavaScript는 백엔드로 필요한 요청을 보내는 역할을 합니다. 따라서 웹 프론트엔드 개발자는 HTML, CSS, JavaScript 3가지 언어는 기본적으로 배워야 합니다.

 앱 프론트 개발자는 안드로이드와 IOS 각각의 운영체제에 맞는 언어로 개발을 해야 합니다. 보통 안드로이드는 코틀린과 Java를 이용하고, IOS는 스위프트와 오브젝티브-C를 활용합니다. 최근에는 안드로이드와 IOS를 한 번에 개발할 수 있는 기술들도 나오고 있습니다. 개발 언어에 대해서는 다음 포스팅에 자세히 다루도록 하겠습니다.

 

백엔드 개발자

 백엔드 개발자는 프로그램 뒤에서 일어나는 일을 담당합니다. 백엔드 개발자의 역할은 크게 기존 서비스에 대한 유지보수와 새로운 기능 개발입니다. '기존 서비스에 대한 유지보수'는 기존에 제공하던 서비스에서 미처 생각하지 못했던 부분이나 서비스를 제공함에 있어 다양하게 발생할 수 있는 에러에 대해 확인 및 개선하는 작업입니다. 그리고 기존에 없던 '새로운 기능을 개발'하는 역할을 합니다.

 백엔드 개발자는 기본적으로 Python, Java 등을 익힙니다. Python은 백엔드(서버)를 만들 때 주로 사용되는 언어로 대규모 데이터를 다루기에도 편리한 언어입니다. Java는 Python이전에 가장 많이 사용된 언어로 다양한 프로그램을 개발할 수 있으며, 주로 백엔드(서버) 또는 안드로이드 앱과 게임을 만드는데 이용이 됩니다. 우리나라의 경우 규모가 큰 서비스의 대부분은 Java를 이용하고 있습니다. 그래서 Java를 배우면 처음 개발자로 들어갈 때 일자리가 많다는 장점이 있지만 최근에는 Python 또는 Javascript로 백엔드를 구축하는 회사도 많기 때문에 상황에 따라 적절한 언어를 배우는 것이 좋습니다.

 

마무리

 개발자에는 프론트엔드 개발자와 백엔드 개발자 이 외에도 다양한 개발자가 존재합니다. 한 예로, 서비스가 이상 없이 잘 돌아가도록 돕는 데브옵스 개발자가 있습니다. 프론트엔드 개발자와 백엔드 개발자가 코드를 설계해 서비스가 돌아갈 수 있는 로직을 만들면, 데브옵스 개발자는 만들어진 서비스에 고객들이 문제없이 접근하고 서비스를 이용할 수 있도록 운영합니다. 서비스를 안정적으로 운영하기 위한 일련의 과정(서버 스케일 인, 아웃, 배포, 고가용성 유지 등)들을 모두 자동화하여 개발자가 더 자유롭게 개발하고 더 빠른 배포를 할 수 있는 환경을 만들어주는 것이 데브옵스 개발자의 역할입니다.

 이처럼 개발자의 세계에는 다양한 직군이 존재합니다. 그리고 그에 맞는 개발언어도 다양하기 때문에 우리는 모든 개발언어를 익힐 수 없습니다. 따라서 개발자에 입문을 하기 위해서는 가장 먼저 어떤 개발자가 될지 방향을 설정하는 것이 중요합니다. 하지만 직접 뛰어들지 않고서는 내가 어떤 개발자에 적성이 맞는지 모를 것입니다. 그렇기 때문에 이후 포스팅에서 자세히 다룰 예정인 내용으로, 개발언어 중 가장 기본적인 HTML과 CSS, JavaScript(위에서는 프론트엔드 개발자의 필수 언어로 소개했지만 사실 모든 개발자에게 기본이 되는 언어임)를 공부하면서 프론트엔드 개발자와 백엔드 개발자 중 어떤 분야가 맞을지, 또는 새로운 직군에 대해 접근을 할지 기반을 다지고자 합니다.

 위의 내용은 쌀팔다 개발자가 된 김병욱 작가님의 '오늘부터 개발자' 책으로부터 많은 도움을 받았습니다. 이 책은 개발에 입문하는 분들께 길잡이 역할을 해주는 책입니다. 먼저 '오늘부터 개발자' 책을 통해 개발자의 세계를 맛보고, Doit! 시리즈로 본격적으로 개발 공부를 할 예정입니다.

 


개발 공부를 시작한 이유 

 

개발자 공부하는 간호사 : 개발 공부를 하게 된 계기

 안녕하세요:) 개발을 공부하는 간호사 펄블리에요. 오늘부터 나름 개발자를 꿈꾸며 공부한 내용을 블로그에 차곡차곡 정리해보려고 합니다. 긴 여정의 시작은 개발을 공부하게 된 계기와 앞으

1.pearlvely.com

 

반응형

댓글