[MUKBO.log] Backend Intro.

먹보·2022년 10월 29일
0

MUK_BO's General Info.

목록 보기
1/9
post-thumbnail

커리어의 시작👞

내 나이 31살, 우연히 얻은 기회를 살려 해외영업분야에서 일을 한지 5년, 
코로나로 인해 해외영업 업무가 줄어들면서 자연스럽게 다른 분야에 관심을 가지고 발을 담그게 되었고 
그렇게 기획에 관심을 가지게 되었다.

대학교를 가기 전부터 항상 다양한 분야의 관심을 가지고 있어서인지 
엉뚱한 아이디어를 항상 마음속에 품고 있었고 
언젠가는 이러한 아이디어를 현실로 옮기고 싶다는 생각을 많이 했었기에 
기획자로써의 삶을 살아가기에 충분한 역량을 기르고자 길을 찾기 시작했고 
미래사업 발전에 꼭 필요하고 최근 몇 년동안 전문직업으로써 
사회의 이목을 끌어온 개발자에 관심을 갖게되어 커리어 빌드업을 시작하게 되었다

...그렇게 내 인생의 2막은 시작되었다. 

백엔드 개발자의 등장🎉

백엔드 개발자가 정확히 몇 년, 몇 월, 몇 일에 등장했다고 말 할 수는 없지만. 우리가 흔히 알고 있는 인터넷 & Web(웹)의 발전과 함께 세상에 대두했다고는 할 수 있다.

그럼 백엔드 개발자의 배경이 되는 인터넷 & Web(웹)의 역사에 대해 간략하게 알아보자.

1. 웹의 역사🎬

우선 웹에 대해서 간단히 정의부터 내려보자면...

Web이란
World Wide Web(WWW)를 한 단어로 줄임말로 "전 세계 컴퓨터에 설치되어 있는 여러 통신망을 하나로 연결하는 컴퓨터 네트워크"를 뜻하는 인터넷을 통해 접근 할 수 있는 정보들의 집합 장소이다.

지금에서야 웹은 우리가 손에 들고 있는 핸드폰으로 인터넷과 연결하여 손 쉽게 접근할 수 있기에 일상과 동화되어 별다른 감응이 없지만 과거 그림[1-1]과 같이 아주 단순한 웹이라도 세상에는 큰 혁신이었다. !

그림 [1-1] : 최초의 웹페이지

웹은 지금도 발전하고 있고 기술도 추가되고 있기에 오늘은 단순하게 세대에 따라 웹에 어떤 큰 변화가 생겼는지 간단하게 짚어두고만 넘어갈 것이다.


📌'1'세대 웹의 특징

1세대 웹은 정적인 웹이라 불리우며 위의 그림 [1-1]과 같이 단순한 정보 제공 위주의 웹으로서 개발이 되었다.

  • 서버가 HTML 페이지 전체를 클라이언트에게 전송
  • 당시의 기술로 채택되었던 HTML/CSS만으로 정적인 것이 큰 특징
  • 단순한 정보 제공 위주, 기능이 많이 없음
  • User Interaction 요구와 로직이 없음

📌'2'세대 웹의 특징

2세대 웹은 1세대 웹과는 다르게 자바스크립트라는 언어가 등장하여 기존 세대의 웹보다는 조금 더 다이나믹한 요소들이 추가되었으며 사용자들도 즐길 수 있는 장소가 되기 시작하였다.

  • 웹 기반의 언어 자바스크립트의 출현 및 간단한 사용 추가
  • 단순한 정적 페이지가 아닌 다이나믹한 요소들이 사용
  • 서버와 클라이언트가 HTML페이지와 JAVASCRIPT 로직을 통해 필요한 데이터를 서로 주고 받으며 User Interaction 구현

📌'3'세대 웹의 특징

시대가 빠르게 변함에 따라 웹에서 전송되는 정보의 양이 기하급수적으로 늘어났고 이에 따라 서버의 크기도 점점 커지면서 서버를 나누게 되는 것을 기점으로 3세대가 시작되었고 이 시점에 프론트엔드와 백엔드 개발이 뚜렷하게 구분되었다.

  • 단일의 HTML 페이지로 전체적인 웹페이지를 구현하는 형식인 SPA (Single Page Application) 방식의 등장!
  • 프론트(작성된 JavaScript코드가 최초의 통신에서 한 번에 송수신되고 그 이후에는 서버와 실시간으로 데이터를 주고 받으며 필요한 화면을 동적으로 구성)와 백엔드(웹 클라이언트가 필요한 서버와의 통신은 데이터 전송 및 연산 작업) 개발의 분리

위에서 알아 볼 수 있듯이 웹은 서서히 발전 하고 있으며, 그 발전의 트리거는 물론 새로운 언어의 등장과 같은 기술의 발전도 있지만 삶의 질(Quality of Life)이 좋아지면서 인구수 급격한 성장세 및 인터넷의 공급량으로 인한 정보량의 증가 또한 한 몫 했다.

[그림 2-2] : 현대 웹 구조

아직 4세대 웹 구조가 실질적으로 정의 되어지지는 않았지만 3세대와는 다르게 사용자와 동시 접속자가 많아 짐에 따라 그림 [2-2]와 같이 프론트와 백엔드 서버를 분리하여 관리하기 시작하였고 API서버도 분리하여 보다 더 정규하고 세밀하게 데이터를 관리할 수 있게 되면서 보다 더 나은 웹으로 발전하게 되었다.

2. 현대 웹 개발의 구성원👔

그럼 이제 현대 웹 구조가 변함에 따라 어떤 직군들이 생겼는지 그리고 내가 앞으로 어떤 개발자가 될 것인지 한 번 계획해보자!!!✨


📌Product

  • Product Manager (PM : 기획자) : 개발하고자 하는 서비스를 정의하고 기획하는 역할
  • Designer : 웹 시스템 상 UI와 UX를 구현 및 디자인하는 역할을 담당
  • Scrum Master / Project Manager : 프로젝트의 일정 및 출시 관리
    Scrum : 팀이 협업하고 영향력이 큰 업무를 수행하는 데 도움이 되는 애자일 프레임워크
  • Tester : 시스템을 테스트하여 검증하는 역할 (Ex. QA)

📌Frontend (프론트엔드)

  • 프론트엔드 개발자 : HTML / CSS / JavaScript등으로 프론트엔드 시스템을 구현
  • Publisher : 주로 HTML / CSS 담당

📌Backend (백엔드)

  • 백엔드 개발자 : API 개발자 / 데이터 관련 시스템 개발자

📌FullStack (풀스택)

  • 풀스택 개발자 : 프론트엔드와 백엔드 개발에 숙련되어 양쪽 모두의 업무를 맡을 수 있는 개발자

📌Dev System / Data

  • DevOps : 시스템 개발 및 시스템 운영 담당
  • SysOps : 시스템 인프라 구현과 관리 및 운영 담당
  • Software Architecture : 시스템의 전체 구조 디자인 담당
  • Data Engineer : 데이터를 정리하고 정석화 시키는 시스템 구현
  • Data Scientist : 머신 러닝, AI 등의 데이터 분석에 필요한 알고리즘과 모델링 구현

현재 개발자 관련 직무에는 이렇게나 많은 직업군들이 있다는 것을 볼 수 있다. 물론 이게 전부는 아니겠지만 내가 개발자란 직업을 알게되면서 찾아 보게된 전부는 저것으로 한정되어 있다.

이 글의 첫 부분에도 언급을 하였지만 난 기획자가 꿈이다 그럼에도 불구하고 백엔드 개발자를 택한 것은 자고로 기획을 함에 있어서 가장 중요한 것은 기획하는 능력도 있지만 내가 기획을 하게된 프로젝트의 일거수일투족을 파악 할 수 있어야 한다고 느끼는 바이다. 그래서 미래 산업을 생각했을 때 가장 필요한 것은 프로그래머들이고 그 것을 이끌 수 있는 것이 나라고 확신하는 만큼 얼른 개발을 시작해야 된다고 생각했다. 물론 막무가내로 개발을 시작한 것은 아니다. HTML부터 CSS 그리고 JAVASCRIPT에 이어 NODE.JS까지 하나 하나 익숙해지면서 실제로 재미도 느끼고 있다. 프론트에서 전달받은 요청을 보고 로직을 내 머릿속에서 짜고 행하는 것이 이렇게 재밌을 줄은 몰랐다. 아직 힘든 점은 많지만 시작한지 얼마 안되었기에 힘든 것은 너무나 당연하고 힘든 만큼 발전 할 수 있는 내 모습이 상상되기에 이제는 앞으로 걷는 것만 남았다. 내 인생의 마지막 순간까지 불타오를 수 있도록 거북이처럼 느릴 수 있지만 거북이도 완주는 할 수 있기에 천천히 주변을 돌아보며 앞으로 나아갈 예정이다.

잘 부탁드립니다!!

profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글