1. 프론트엔드와 백엔드
: 우리가 흔히 접하고, 개발하는 앱과 웹에서 이를 개발하기 위해 일반적으로 사용되는 두 가지 용어이다.
이 프론트엔드와 백엔드는 사용자들은 웹페이지를 처음 접했을 때 보이는 화면만을 볼 수 있기 때문에 프론트엔드와 백엔드의 포지션이 나누어져 있다는 것을 모를 수 있지만, 각자의 독립적인 역할과 책임을 가지고 있기 때문에 앱, 웹 개발 분야에 있어 매우 중요한 포지션이다. 따라서 이 둘의 차이점을 명확히 인지하고, 숙지하여야 개발 프로젝트에 대한 이해도를 높일 수 있다.

2. 프론트엔드(Front-end)
프론트엔드는 직접적으로 사용자들의 눈에 보이는 영역 즉 사용자 인터페이스(UI)를 개발하고 관리하는 영역이다.
쉽게 말해 회원가입 칸이나 로그인 칸을 예쁘게 꾸미고 위치를 조정하는 역할을 한다. 똑같은 프로그램이라도 경쟁력을 갖기 위해서는 더 간단하고, 보기 좋게 꾸밀 필요가 있다. 따라서 사용하기 쉽고 사용자의 경험에 맞춰 서비스를 개발해야 많은 많은 사용자들이 사용하기 때문에 사용자 경험을 핵심 가치로 삼아 직관적이고, 사용하기 쉬운 최적의 인터페이스를 갖추는 것이 중요하다. 이를 수행하는 것이 프론트엔드 개발자이다.
또한 프론트엔드 프로그래밍은 웹 사이트가 다른 장치 및 브라우저와 반응하고 호환되는지 확인해야 되며, 반응형 디자인 기술을 사용하여 웹 사이트가 모든 화면(모바일, 태블릿 등) 크기에서 잘 보이도록 하고 서버로 전송되는 요청의 크기와 수를 최소화하여 웹 사이트 성능을 최적화하는 것이 포함되기에 서버 및 웹에 대한 전반적인 이해가 필요하다.
이러한 프론트엔드 개발자가 알아야 하는 프로그래밍 언어는?
- HTML: 웹 페이지의 콘텐츠를 구조화하는 데 사용되는 표준 마크업 언어이다. 이는 웹 페이지의 각 요소를 표시하고 구조화하기 위해 사용된다.
- CSS: CSS는 콘텐츠의 스타일을 지정하는데 사용되며 HTML과 같이 웹 페이지를 꾸미는데 필수적인 언어다. HTML로 정의된 요소들의 디자인, 레이아웃, 색상, 폰트 등을 꾸며준다.
- JavaScript: 자바스크립트는 만들고자 하는 웹페이지를 동적으로 만들어주는데 필요하다. ex) 웹페이지에서 클릭이나 스크롤등의 이벤트가 일어났을 때, 그 기능(동적효과와 상호작용을 생성)을 할 수 있게 만들어준다.
즉, HTML과 CSS는 웹페이지의 구조와 스타일을 정의하기 위한 언어, JavaScript는 웹 페이지의 동적인 동작을 제어하기 위한 프로그래밍 언어이다.
추가로..
프론트엔드 프로그래밍에는 개발자가 복잡한 사용자 인터페이스를 보다 쉽게 만들 수 있도록 하는 React, Vue 및 Angular과 같은 라이브러리 및 프레임워크의 사용도 포함된다.
3. 백엔드(Back-end)
백엔드는 사용자들의 눈에 보이지 않는 뒷단을 개발하는 영역이다.
즉, 프론트엔드는 현재 사용자들이 보고 있는 웹 사이트 내 화면처럼 사용자가 볼 수 있는 화면을 구성하고, 백엔드는 사용자가 볼 수 없는 환경을 구성하여, 사용자가 원하는 정보를 제공할 수 있게 데이터를 저장 및 관리하거나, 서버가 터지지 않게 운영하는 일을 한다. 즉, 프론트엔드에 있는 사용자들이 원하는 행동을 처리하는 것이 백엔드이다.
백엔드는 사용자가 원하는 일을 에러가 나지 않고 원활하게 실행되도록 만드는 것이 중요하다. 흔히 티켓팅을 하거나 수강신청을 할 때 서버가 터지지 않게 하고, 응답 시간을 최적화하는 것이 백엔드의 역할이다. 따라서 백엔드 개발자들은 웹 서비스의 전체적인 구조를 이해하고, 단순히 문제를 해결하는 것이 아닌, 효율성을 따지고, 빠르게 풀 수 있는 방법을 찾는 능력이 필요하다.
이러한 백엔드 개발자가 알아야 하는 프로그래밍 언어는?
백엔드는 앞서 말한 프론트엔드완 달리 한 가지 언어에 집중해서 학습하면 된다.
- Java: 자바는 데이터베이스, 네트워크 등 다양한 분야에서 활용되는 1위 프로그래밍 언어이다. 객체 지향 프로그래밍 언어라는 가장 큰 장점이 있으며, 보안에 강하지만 속도 문제를 가지고 있어 앱 개발에는 적합하지 않다.
- Python: 파이썬은 머신러닝, 사물인터넷과 같은 신기술에 자주 사용되는 스크립트 언어이다. 세계에서 가장 인기 있는 언어이기도 하고, 라이브러리와 짧은 코드로 구현이 가능하다는 장점이 있지만 느린 단점이 있어 빠른 속도를 요구하는 프로그램에는 적합하지 않다.
- PHP: PHP는 웹 개발에서 사용되는 언어이기 때문에 웹에 대한 이해가 필수적인 백엔드 개발에서 자주 사용되는 언어이다. 이 언어는 웹 개발을 위해 쓸 수 있다.
- 루비: 루비는 독적 객체 지향 스크립트 언어로, 확장성도 높고, 다른 언어들과는 다르게 단순하게 코드를 작성할 수 있다는 장점이 있어, 코드를 몇 줄 작성하지 않아도 애플리케이션을 만들 수 도 있다. 하지만 느린 속도 때문에 국내 사용률이 저조한 언어이다.
- C#: C#의 경우 출시된 지 오래된 프로그래밍 언어여서 이미 많은 분야에서 사용되고 있다.
추가로..
백엔드 프로그래밍에는 Ruby on Rails, Django 및 Flask와 같은 프레임워크 사용도 포함되며, 이러한 프레임워크는 웹 애플리케이션 구축에 대한 구조화된 접근 방식을 제공하고 개발자가 애플리케이션을 보다 효율적으로 구축할 수 있도록 지원한다.
또한 백엔드 프로그래밍의 주요 책임 중 하나는 데이터 저장 및 검색을 관리하는 것인데 여기서 MySQL, PostgreSQL 및 MongoDB와 같은 데이터베이스 작업이 포함되어 구조화된 방식으로 데이터를 저장하고 관리한다.

차이점 요약
1. 초점
프론트엔드는 사용자 인터페이스와 사용자가 웹사이트와 상호작용하는 방식에 초점을 맞추는 반면, 백엔드는 웹사이트를 구동하는 서버 측 로직 및 데이터 처리에 초점을 맞춘다.
2. 사용되는 프로그래밍 언어와 도구
프론트엔드는 일반적으로 HTML, CSS 및 JavaScript를 사용하는 반면 백엔드는 React, Vue 및 Angular와 같은 라이브러리 및 프레임워크 사용도 포함되며 Ruby on Rails, Django 및 Flask와 같은 프레임워크 사용이 포함된다.
내가 백엔드 개발자가 되고 싶은 이유?
1. 계속해서 발전할 수 있다.
언어와 프레임워크가 다양하기 때문에 끊임없이 공부해야 된다.
이 말은 계속해서 발전할 수 있다는 뜻이다.
2. 재밌다.
프론트엔드와 달리 서버와 프론트 사이에서 정보를 가공해 주는 보이지 않는 과정이 나로 인해 일어나고, 그 결과가 정확히 프론트에서 보일 때 성취감을 느끼며 재밌다.
3. 연봉과 안정성
백엔드의 장점인 안정적이고, 많은 선택권과 좀 더 높은 연봉은 큰 메리트다.
그래서 내가 되고 싶은 백엔드 개발자는?
클린코드를 잘 짜는 머신러닝 엔지니어가 될 때까지 최선을 다해 공부하겠다.
'[ZB]끄적끄적' 카테고리의 다른 글
| 앞으로의 백엔드 공부 계획(feat. 백엔드 공부법) (0) | 2024.03.01 |
|---|---|
| 백엔드 커리어 로드맵 & 어떤 백엔드 개발자가 되고 싶은지 (0) | 2024.02.23 |