Front-End ( 프론트 엔드 ) vs Back-End ( 백엔드 )


IT 전공자라면 진로를 결정할 때에 가장 먼저 고려하는 사항이 바로 프론트엔드 / 백엔드로서의 방향성이 아닐까 싶다.

불과 10여년 전만 해도 이러한 프론트엔드와 백엔드의 구분은 명확하지 않았고, 그럴 필요도 없었으나 이제는

웹의 발달과 더불어 앱 개발도 활발하게 이루어짐에 따라 세분화된 업무를 소수의 인원이 전부 담당하기는

사실상 불가능한 문제가 되었다.

결국, 프론트엔드와 백엔드 개념이 확립되면서 두 파트의 차이점이 확립되면서 많은 개발자 및 엔지니어들이 

이를 참고하여 본인의 기술에 적합한 파트에서 업무를 수행하는 형태로 이어지고 있다.

그렇다면, 정확히 Front-End와 Back-End의 주 업무 분야와 기술력 등을 알아보고 두 파트의 차이점을 구분해보도록 하자.


 

 출처 : bortfolio.kr/43

 Front-End (프론트 엔드) 

  • Front-End 영역 : 사용자(User)의 화면에 나타나는 웹 화면
  • 사용자와 직접 접촉하며 상호작용이 이루어지는 파트
  • 백엔드 개발자가 만든 집의 내부 디자인 담당

 

 Front-End 구성 

  •  UX Designer : 사용자에게 최상의 편리함을 제공하기 위한 사이트의 구성 및 기능 담당 
  •  Web Desginer :  UX Designer가 구성한 것을 토대로 디자인을 입히는 역할
  •  Front-End developer : 위의 디자인을 웹 어플리케이션으로 구현

 

 Front-End 개발자에 요구되는 기술 (Skill) 

  •  HTML, CSS, JavaScript 
    • 사용자가 이용하는 웹의 기본적 Architecture를 담당하므로
  •  Bootstrap, Foundation, Backbone, AngularJS, EmberJS 
    • 사용자의 도구에 따라 유연한 방식의 컨텐츠를 표현해야 함
  •  jQuery, LESS 같은 라이브러리 사용 
    • 보다 효율적인 코드 작성을 위함

 


 ※ 개발자 채용 시 Ajax 사용 경험을 요구하는 경우도 많은 이유 

백그라운드에서 서버 데이터를 가져와 페이지를 동적으로 만드는 JavaScript를 활용하는데 

보편적으로 사용되는 기술이기 때문.


 

 Front-End 개발자 주요 업무 

  • 위의 나열된 기술들을 사용
  • 목업(Mockup) / 와이어프레임(Wireframe) 개발에서부터 전달 단계
    • Designer와 사용자 경험 분석가와 긴밀히 협력 관계 유지
  • 사용자 경험 기준에서의 문제 발견
    • 디자인 수정에 관한 조언 및 문제 해결을 위한 코드 제공
  • 목표 / 필요(needs) / 기회에 대한 정확한 이해 및 수행을 위해 다른 팀과 유연하게 협력

 

# Front-End 개발자의 경우, 업무에 대한 능력 뿐 아니라 여러 영역에 대한 책임을 감당해야 함

 

 

 

 

 

출처 : bortfolio.kr/43

 Back-End (백엔드) 

  • 일반 사용자 눈에 보이지 않는 서버에서 작용하는 기술을 다루는 직군
  • UI나 GUI로 구성된 화면의 통신/요청에 대해 DB 또는 Interface 등을 통해 시스템 구성 실체에 접근하는 파트
  • 사용자와 접촉하지 않고 Front-End와 연동하여 기술적인 부분을 처리

 

 Back-End 구성 

백엔드 파트는 비교적 다양한 형태를 띈다. 그 중 몇가지 예로 들면 다음과 같다.

  •  서버관리자 :  서버 환경설정, 서버구성 관리
  •  DB관리자 :  DB 설계, Data 관리 및 최적화
  •  Back-End developer :  서버 자체를 코딩

 

 Baek-End 개발자에 요구되는 기술 (Skill) 

  •  PHP, Ruby, Python, Java, .Net 
    • 서버 측 언어 활용하여 응용 프로그램 제작
  •  MySQL, Oracle, SQL Server 
    • 데이터 검색, 저장 및 변경 후 프론트 엔드 코드로 사용자에게 다시 제공

이외에도

 

  1.  PHP 프레임워크에 대한 사용 경험  :  Zend, Symfony 및 CakePHP
  2.  버전 제어 소프트웨어 사용 경험 : SVN, CVS 또는 Git
  3.  개발 및 배포 시스템으로서의 Linux 사용 경험 

등을 요구하는 경우가 있다.

 

 

Back-End 개발자 주요 업무 

  • 비즈니스 이해 관계자와 소통하며 구체적 요구 사항 파악
  • 요구사항을 기술적 내용으로 변환
  • 기술설계를 위한 가장 효율적인 솔루션 제시
  • 위의 기술 및 도구(Tools)을 사용하여 모듈화가 가능한 코드로 웹 응용 프로그램을 제작

 

 

# 백엔드 개발자 작업 결과 프로세스 예

 

1) 특정 사이트 접속 

- 특정 웹 사이트 서버에서 넘긴 정보가 사용자의 단말기에 웹 페이지로 보여지는 프로세스

 

2) 회원가입 시 저장되는 개인정보

- 이후 로그인 할 때마다 계정의 정보가 불러지는 과정 포함

 

 

 

 Full Stack Developer  

  • Front-End와 Back-End 모두 교차적으로 작업할 수 있는 역할을 지칭
  • Full Package를 제공하는 개발자를 의미
  • 로딩시간부터 레이아웃, 사용자와의 상호작용성 및 구조적 토대까지 전체적인 흐름을 담당

 

도형 그림 출처 : Techrunch

 

Full Stack 개발자에 요구되는 기술 (Skill)

  • Linux 서버 설정 및 구성
  • 서버측 API 작성
  • 클라이언트 측 JavaScript, 디자인 CSS

 

#웹이 작동하는 모든 차원에서의 해박한 지식을 요구함

 

참고 : 

https://moolgogiheart.tistory.com/16

https://medium.com/code-states/

'Knowledge' 카테고리의 다른 글

Docker 명령어 정리  (0) 2022.05.03
⭐ 참고 사이트 정리  (0) 2021.07.03
네이밍 컨벤션 ( Naming Convention )  (0) 2019.09.23
도커 ( Docker )  (0) 2019.09.11
파일 시스템  (0) 2019.09.06