비전공자에 개발자와는 거리가 멀었던 직업을 전전하다 앞으로의 직업을 개발자로 선택한 이유를 작성해보려한다.
가장 먼저 개발자가 되겠다고 생각했을 때 처음으로 고민한 부분은 프론트엔드와 백엔드였다..
그래서 그게 뭔데..
나름대로 구글링도 해보고 유튜브에 올라온 수많은 영상들을 보고 내가 선택한 부분과 선택한 이유들을 작성해보겠다.
(고로 이 글은 정보를 전달한다기보다는 내 회고록에 가깝다. 잘못되거나 틀린 정보가 있을수 있으니 가볍게 읽는걸 추천한다.)
웹사이트는 사용자가 경험하는 프론트엔드와 프론트엔드를 가능하게 하는 눈에 보이지 않는 구조로 구성된 백엔드 두 부분으로 구성된다.
WEB 환경에서의 프론트엔드는 사용자에게 시각적으로 보여지는 부분이다.
지금 보고 있는 이 화면을 구성하고 작성자가 작성하는데로 보이게되는 부분이 프론트엔드이다.
프론트엔드 개발자는 웹 사이트의 사용자 측면에 중점을 두고, 프로그래밍 언어, 디자인 기술 및 기타 도구를 사용하여 사용자가 사이트와 쉽게 상호 작용할 수 있도록 한다.
프론트엔드 개발자는 색상, 레이아웃, 글꼴 등 사용자가 상호 작용할 수 있는 웹 사이트의 시각적 측면을 디자인한다.
프론트엔드 쪽에서는 주로 HTML (레이아웃), CSS (디자인), JavaScript (대화형 기능)가 쓰이며, 요즘은 React도 많이 사용된다.
프론트엔드 개발자가 보여지는 화면을 만들기 위해서는 보여줄 데이터가 필요하게된다.
이 때, API를 통해 백엔드와 HTTP 요청/응답에 기반을 두고 통신하여 원하는 데이터를 호출하고 사용할 수 있게된다.
WEB 환경에서의 백엔드는 사용자에게 드러나지 않는 DB공간 (회원가입 로그인 등) 을 의미한다.
지금 보고 있는 이 화면에서 글의 내용, 댓글 내용, 회원 정보 등을 저장하고 꺼내오는 부분이 백엔드이다.
백엔드에는 어플리케이션, 서버 및 DB가 포함된다. 컴퓨터 사용자는 웹사이트 내부에 있는 백엔드 개발 요소를 보지 못하는 경우가 많다.
백엔드 개발자는 웹사이트의 서버 측에 중점을 둔다. 웹 사이트의 구조와 전반적인 기능을 생성하고 사이트의 프론트엔드가 존재하도록 하는 작업을 수행한다. 웹사이트가 제대로 작동하도록 돕는 보이지 않는 구조를 만든다.
백엔드 쪽에서는 서버 프로그래밍 언어로 주로 Java, Phyton, Ruby 언어를 사용하고,
데이터를 저장, 구성 및 변경하기 위해 SQL Server 및 Oracle 과 같은 도구를 사용하기도 한다.
국비지원 프로그램을 통해 개발이라는걸 처음 접해본 나는 공부할 당시 뭐가 뭔지 잘 몰랐었다..
그냥 단순히 백엔드가 돈을 많이 번다는 말에 혹해 시작했었다.
프로그램 특성상 딱히 백엔드와 프론트엔드의 구분을 모호하게 진행했었는데, 프로젝트 진행을 하면서 레이아웃을 짜거나, 스타일을 맞추는 등의 작업들은 너무 스트레스로 다가왔다.
하지만 프로젝트에 필요한 API 를 개발하고 밤을 새가며 구현한 기능들은 너무 뿌듯하고 재미있었다.
비전공이기에 프로그래밍 공부 뿐만 아니라 CS, 서버, 통신, DB 등 공부해야할 것들이 산더미지만 다행히도 그 공부마저도 너무 재밌고 즐겁기 때문에 나는 백엔드 개발자가 되고 싶다.
비록 프로그램 종료 후 제대로 된 취업을 하지는 못했지만, 이제라도 제로베이스에서 다시 제대로 공부하고 백엔드 개발자가 되기 위해 오늘도 코드를 작성해본다.