개발 관련 정보/기타

프론트엔드, 백엔드, 데브옵스, 그리고 풀스택

veritas153 2021. 3. 30. 21:36

국비지원 과정 중, '뭐가 되든 나중엔 풀스택이 짱 아니겠어?' 이러면서 막연히 공부할 때가 있었다. 취직하면 자기개발을 열심히 배우고 포폴도 만들어가면서 비전공자이지만 실력있는 개발자가 되겠다며 공부...라 하긴 그렇고 버티면서 마쳤다. 뭐 그렇게 작은 기업에 취직한 후 이제 기초 공부 및 기술들 싹 조지겠다(?)고 다짐했으나... 

 

출처: 대학생 몽글이 (인데 맞나... 나도 어디서 찾은거라)

 

그렇다. 조져지는 건 나였다. 써본 적도 없는 php와 그누보드를 써서 운영 웹사이트를 만들라 그러지 않나. 이클립스 깔려고 톰캣만 설치했던 나에게 구글 클라우드 통해서 웹 서버 구축해서 테스트해보라 그러지 않나. 역시 인생은 실전이더라. 그러면서 현타 씨게 오다가 블로그 만들면서 다시 공부하는데 왠걸? 데브옵스는 뭐여? 그래서 정리했다. 이것들은 뭔가?

 

1. 프론트엔드(Front-end)

- 사용자들과 서버가 소통할 수 있게끔 사용자 인터페이스(UI)를 개발하는 사람들을 말한다. 정말 이름 그대로 전면에 보이는 부분들을 위주로 작업하는 개발자들이다. 

- 웹 퍼블리셔와 종종 헷갈리기도 하는데 (글을 쓰는 나도 이 글쓰기 전엔 동일한걸로 이해했다...) 일반적인 정의는 다음과 같다. (물론 다 그렇다는 건 아니기에 만약 구직을 할 때 잘 알아보시길)

 

1) 웹 퍼블리셔는 UI를 위주로 담당 (그래서 해외에선 UI 개발자라고 부른다고.)하고 때문에 HTML과 CSS위주로 개발한다. 물론 JavaScript도 일부 다루지만 개발자라고 하기엔 거리가 멀기에 어디까지나 디자인 영역에 국한 되는 경우가 많다.

2) 프론트엔드는 HTML, CSS, JavaScript를 다루어 웹 퍼블리셔보다는 좀 더 동적인 UI를 구현하며 실제 웹 사이트를 고려해서 개발 한다. 그래서 웹 퍼블리셔는 프론트엔드에 속하는건 맞는데 프론트엔드 개발자는 웹 퍼블리셔가 아니라고 할 수 있다.

 

2. 백엔드(Back-end)

- 보이지 않는 부분. 즉 웹의 데이터베이스와 API를 담당하는 개발자를 말한다.

- 기본적으로 CRUD와 게시판 구축 부터 좀 더 나가면 인증 및 서버 관리까지 운영에 관련된 모든 것들을 개발하는 사람들이라고 보면 된다.

- 우리나라에선 그놈의 전자정부웹프레임워크 때문에 Java/Eclipse가 대세인데... 최근 해외에선 C# 기반의 ASP.NET이 뜬다고 하더라. Native는 뭐 여전하고. (그렇다고 Java가 구리다는 말이 아니다. 단지 Python이나 JavaScript과는 달리 오랫동안 대세였기 때문에 배울 사람들은 이미 배워서 그런거지...)

 

3. 데브옵스(DevOps)

- 단순히 개발과 운영을 합친게 아닌 두 분야를 이해함으로서 둘 사이의 간극을 줄여 원할한 개발 속도와 높은 성과를 달성하기 위한 방법론에서 나온 말. (그래서 애자일 방법론과 밀접한 관계가 있다.)

- 그래서 업무를 효율적으로 만들기 위해 개발 과정에서 반복적인 일들을 자동화하고 그 과정 중에 발생 할 수 있는 예외 사항들이나 팀들간의 갈등을 예방 및 최소화 시키게끔 개발 환경을 구축하는 개발자라고 보면 된다. (이것도 간단하게 설명하려다보니 원래 의미와 맞지 않을 수 도 있다. 그러나 일단 이정도로 이해해도 충분할 듯 싶다.)

 

4. 풀스택(Full stack)

- 프론트엔드와 백엔드의 영역을 모두 걸친 개발자를 통칭해서 말한다. 그러다보니 데브옵스의 영역도 다루는 경우도 많으며 몇몇 사람들은 이 것도 포함해서 설명한다.

- 그런데 이 정의를 잘못 이해해서 만능 개발자라고 오해하는 사람들이 많은데 (특히 우리나라의 SI업체가...) 엄밀하게 말하면 '웹의 모든 영역을 개발할 수 있는' 사람이지, '웹의 모든 영역을 마스터한' 개발자가 아니다. 특히 기술이 점점 빠르게 발전하면서 진정한 의미로서의 풀스택은 이젠 없다는 말도 나오고 있는 상황.

- 그래서 풀스택 개발자를 지향하는건 맞는데, 풀스택 개발자를 원하는 곳은 지양하라는 말이 괜히 있는 게 아니다. (특히 PHP 개발자들!) 정말 제대로 된 곳이라면 풀스택이라도 어떤 부분에서 최적화된 개발자를 원한다고 쓰여있을 것이니 이 점을 참고하시라.

 

그래서 결론은 뭐냐? 간단하다. 내가 어떤 위치에 있고 어떤 분야에 적합한지 파악한 다음 내가 배울 것들을 정리하고 하나씩 시작해보자. 이 블로그도 사실 그걸 위해서 운영하는거고. 다들 같이 공부합시다. 화이팅