커리어일반/비전공개발자전직기

프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유

bsh6226 2024. 5. 17. 17:46

 

1. 백엔드 개발자 (Backend Developer)

- 역할과 작업
백엔드 개발자는 웹사이트나 애플리케이션의 서버 측면을 담당함. 이들은 데이터베이스, 서버, API, 핵심 애플리케이션 로직 등을 구현하고, 프론트엔드와 데이터를 주고받는 시스템을 만듬. 주로 데이터 관리, 서버 사이드 로직, API 개발 등을 포함하며, 이 모든 것이 사용자에게 직접 보이지는 않지만 사용자의 요청을 처리하고 데이터를 전송하는 중요한 기능을 함.

- 사용하는 기술
프로그래밍 언어: Python, Java, Ruby, PHP, Node.js 등
프레임워크: Django, Spring, Ruby on Rails, Express.js 등
데이터베이스 기술: MySQL, PostgreSQL, MongoDB, Oracle 등

 

- 적성과 특성
백엔드 개발은 복잡한 시스템을 설계하고, 문제를 해결하는 능력을 요구. 데이터 구조와 알고리즘에 강한 관심과 이해가 필요, 시스템 아키텍처 설계에 대한 통찰력이 중요. 또한 보안, 데이터 보호, 효율적인 데이터 처리에 대한 이해가 필요.

2. 프론트엔드 개발자 (Frontend Developer)

- 역할과 작업
프론트엔드 개발자는 사용자가 직접 상호작용하는 웹 페이지의 구현을 담당. 이들은 사용자 경험(UX)과 사용자 인터페이스(UI)를 개발하여 사용자와 서버 사이의 상호작용을 가능. 디자인과 코드를 결합하여 사용자가 웹사이트를 통해 정보를 보고, 입력하고, 상호 작용할 수 있도록 하는 것이 주요 역할임.

- 사용하는 기술
HTML, CSS, JavaScript
프레임워크 및 라이브러리: React.js, Angular, Vue.js 등
디자인 툴: Adobe XD, Sketch, Figma 등

 

- 적성과 특성
프론트엔드 개발은 시각적 요소에 강한 관심과 미적 감각을 요구. 사용자 경험을 향상시키는 인터페이스를 디자인하고 구현하는 데 중점을 둠. 또한 사용자 피드백을 받아 반영하는 과정에서 빠르게 수정하고 개선할 수 있는 유연성이 필요함.

3. 내가 백엔드를 선택한 이유

  여태까지 나의 학습경험과 사회생활 경험을 비추어 봤을 때, 나는 추상적인 것보다는 명확하게 표현되어 누가 보아도 자명하게 증명할 수 있는 성질의 업무과 학문을 좋아했다. 그러한 업무는 대부분 숫자, 데이터와 관련된 일이었고 이에 백엔드가 내게 적합하지 않을까라는 생각을했다. 반면, 이러한 나의 성향을 고려하면 추상적이고 주관적인 유저의 디자인 선호 및 편의성을 고려해야하는 프론트엔드는 나의 성향과 맞지않는다는 것은 쉽게 판단할 수 잇었다. 나의 일상적인 지론처럼 무엇을 할 수 있는지 무엇을 해내었는지가 중요하지 어떻게 해내었는지 다른사람들에게 어떻게 보이는지는 그다지 중요한 요소가 아니었다고 할까?

 

피상적인 인상뿐만아니라 실제 프로그래밍 경험에서도 나의 호불호는 확연히 갈렸다. 본격적으로 개발공부에 들어서기전에 python으로 여러가지 toy project를 진행했었는데 프로젝트 중, 화면의 layout 조정을 통해서 버튼 크기와 위치를 조정하는 프로젝트는 내게 고역 그 자체였다. 반면, 알고리즘과 데이터구조 이론과 코딩테스트 문제들은 상당히 재미있었고 네트워크나 CS이론들도 흥미롭게 들었다.

 

따라서, 요약하자면 아래와 같은 기준으로 백엔드를 선택했다고 할 수 있다.

 

1.  복잡한 원리를 배우고 심도있게 이해하는 것이 필요한 업무

2. 명확하게 답이 수치화되어 떨어지고 퍼포먼스가 측정이 가능한 업무

3. 분석을 통해 수치적 개선과 최적화를 이루어내는 업무