프론트와 백엔드 차이 - 왜 백엔드 개발자인가?

이진영·2023년 6월 16일
0
post-thumbnail

개요

프론트와 백엔드의 차이를 알고 그에 해당하는 내가 왜 백엔드 개발자를 선택한 이유를 자세하게 설명하기 위함을 항상 머릿속에 정리가 된 상태였지만 제로 베이스 부트캠프를 통해서 이번엔 블로그를 통해 정리해 나가면서 명확하게 해나가고 정리해 나가려고 한다.


먼저 내가 왜? 백엔드 개발자를 선택했냐를 더 명확하게 백엔드와 프런트를 설명하고자 한다. 이렇게 해야 내가 백엔드 개발자의 선택을 희망하게 된 이유를 나도 알고 다른 사람들도 이해하기 쉬울 거 같다고 생각했기 때문이다.

Frontend Developer

웹 애플리케이션에 있어서 프런트개발자는 일명 UI를 구현한다고 생각하면 편하다. Frontend는 일반적으로 디자이너와 일하게 되는 경우가 많으리라 생각한다. 고객들에게 제공될 화면 디자인을 받고 그것에 대한 UI(유저 인터페이스)를 구현한다.


그렇다면 이러한 인터페이스는 어떻게 만들까?

사용자 인터페이스를 만든다고 가정했을 때 주로 사용되는 것들이 있다. CSS , HTML, Front Framework 등이 있지만 나는 CSS 와 HTML을 통해 정리를 해나가려고 한다.


그렇다면 CSS들은 무엇이고? HTML은 무엇일까?

1.HTML(Hyper Text Markup Language)
HTML은 어떻게 보면 프론트엔드 개발자라면 기본적으로 숙지해야 하는 언어이다. 웹 페이지를 개발할 때 있어서 구조를 정의하는 마크업 랭귀지라고 생각하시면 됩니다. 실제로 우리가 일상생활에서 보이는 모든 UI는 마크업 랭귀지로 구성이 되어 있습니다.

1.CSS(Cascading Style Sheets)
일종에 여성분들의 화장이라고 볼 수 있습니다. 우리의 얼굴의 구조는 어쩔 수 없이 고정적이며, 이러한 얼굴을 조금이나마 이쁘게 꾸며나가는 것의 역할을 CSS가 합니다. 그리고 이것을 일명 종속형 시트라고 불립니다.

즉 HTML은 웹 페이지의 구조를 역할을 하고 이것을 예쁘게 꾸미는 역할을 CSS가 하는 역할을 합니다.


UI를 구현에 그치지 않는 Frontend 개발자

요즘들어 빠르게 발전하는 IT에 걸맞게 사용자들에 입맛은 항상 꾸준히 바뀌고 있습니다. 그렇다면 단순히 구현에 그치는 것이 아닌 재사용성도 고려를 하게 됐습니다.

빠른 현대사회 속 사람들은 정말 입맛이 다 제각각이듯이 유저들이나 고객들의 입맛은 항상 바뀌고 있는 시장입니다.

그렇기에 고객들의 소리를 발 빠르게 대응하는 UI를 구축하는 데 있어서 프런트앤드 개발자 또한 이러한 발 빠른 대응을 위해 항상 모든 구현에 있어 재사용성을 고려하지 않을 수가 없습니다.

그렇다면 재사용성 뭘 고려하는 건데?


최근에 네이버 UI가 바뀐 것을 아실까요?? 저는 깜짝 놀랐는데 정말 이 부분에 있어서 고생을 많이 했겠구나 싶었어요...ㅎ 이러한 발 빠른 UI수정을 고려했을 때 각 구현부 마다 하나의 그림으로 통으로 언제든지 바뀔 수 있을 것을 고려해야 합니다. 이러한 부분을 웹 애플리케이션 재사용성이라고 말씀드릴 수 있습니다.


하지만 이러한 구현능력과 재사용성을 모두 갖추고 있는것이 Frontend 개발자가 아니지 않을까 싶네요.

Backend Developer

웹 애플리케이션에 있어서 백엔드 개발자는 일명 사용자에게 보이지 않는 모든 부분을 관리한다고 생각하시면 편합니다.

보이지 않기 때문에 이러한 모든 부분이 세세하게 관리가 되지 않는다면 사용자들을 떠나기 마련이기 때문에 개인적으로 세부적인 설계가 필요로 하지 않을까? 라는 생각이 드는 부분이라고 생각합니다.


보이지 않는 부분?

그렇다면 보이지 않는 부분들이란 무엇일까 하는 생각이 드실 겁니다. 간단하게 설명을 해드리자면 우리는 일상생활 속에서 많은 정보가 있습니다.

그러한 정보들을 담고 있는 것을 DB라고 불리며, 데이터베이스라고 불리고 있습니다. 이러한 관리 또한 백엔드 개발자가 담당할 수 있습니다. (회사마다 다름)

그렇다면 정보들을 담고 있다고 다 끝나는 것이 아닌 사용자들의 요청에 해당 역할에 대해서 수행하기 위해서 필요로 하는 서버가 필요합니다. 해당 서버를 통해서 즉 보이지 않는 부분들을 통해서 사용자에 요청을 처리합니다.

그렇다면 유저에 요청들은 어떤게 있을까 싶지 않나요??

해당 화면은 Naver 로그인 화면입니다. 해당 화면에서 id 와 Password를 입력하면 해당 서버에 요청이 들어오게 됩니다. 편의를 위한 그림으로 설명을 드리자면

어느 한 사용자가 로그인시 id , password를 입력하고 로그인을 클릭하면 위와 같은 Flow로 백엔드 서버에 요청을 하게 됩니다. 그러한 요청을 통해 처리해 우리는 로그인된 메인화면으로 이동하게 됩니다.

이러한 요청에 대한 처리를 Backend 개발자의 주된 역할이라고 볼 수 있습니다.


여기서 그치지 않는 사용자에 최적화된 성능 제공

마찬가지로 단순히 요청에 대한 처리는 정말정말 기본적인 내용이지만 이러한 처리가 사용자들에게 불편함을 제공하지는 않아야 합니다.

예를 들어 요즘 들어 데이터 시대다 4차 산업 빅데이터 등등 들어보시지 않았을까요? 그러한 방대한 데이터처리를 고려하는 역할 또한 Backend 개발자의 역할이라고 볼 수 있습니다.

아마도 많은 사람이 이러한 로딩 중이라는 상태를 경험하시지 않았을까 싶습니다. 이러한 로딩이 지속되는 현상이 오래간다면 사용자들에게 불편함을 줄 수 있고, 그렇기에 사용자에 최적화된 성능을 제공해야만 합니다.

최적화된 현상을 Fronted도 관리하지만 Backend 개발자가 좀 더 심하게 관리한다고 보시면 됩니다. 그렇기에 이러한 부분 또한 관리를 하는 것이 백엔드 개발자의 역량이지 않을까 싶습니다.


이렇게 제가 알고 있는 Backend 와 Frontend의 차이를 알고 역할들을 알아 보았습니다.




그래서 왜 백엔드 개발자인가?

사실 나는 백엔드 개발자, 프런트엔드 개발자 둘 다 내 취향에 맞다... 각 개발에 대한 메리트가 내 기준에서 명확할 뿐만 아니라 내가 경험한 둘의 차이는 어떻게 보면 다를 수 있지만 큰 맥락에서는 비슷하지 않을까? 라고 생각한다. 왜냐하면 둘 다 프로그래밍이고 이러한 프로그래밍을 통해 웹사이트 개발은 고려해야 할 사항들이 어느 정도 비슷한 부분들이 있기 때문이다.

하지만 선택에 있어서 백엔드 개발자인 이유를 설명하기 앞서 왜 개발자를 선택했냐를 따져야할 부분인거 같다.

왜 개발자를 선택했는가?

제가 대학생 때는 무엇을 해야 할지 막막했던 시기가 있었습니다. 그러나, 대학 시절 바디프로필 활동을 통해 "아무것도 하지 않는다면 아무 일도 일어나지 않는다."라는 가치관을 깨달았습니다. 이를 계기로 무엇이든 도전하고 배우는 마음으로 대학 수업 내의 Rstudio 수업을 통해 시각화 도출이 저에게는 흥미롭게 다가왔고, 학원을 통해 좀 더 전문적으로 배우고자 했습니다.

학원을 통해서는 첫 번째 빅데이터 분석 과정에서 Python을 통한 분석을 공부하면서 알고리즘을 통해서 결과를 만든다는 것에 흥미를 느껴 빅데이터 분석 개발자가 되겠다는 다짐을 가졌지만, 두 번째 심화 과정 중 Frontend와 Backend를 알게 되면서 내가 만든 기능을 website에 표출하는 것 해당 기능은 내가 만든 기능을 나만의 알고리즘을 통해서 구현된다는 것에 두 가지를 한꺼번에 한다는 것에 메리트를 느껴 웹 개발자가 되기로 확정을 지었습니다.


결론

필자는 가치관을 가져감과 동시에 배움에 메리트를 알게 됐다. 그렇기에 교육과정을 통해 나는 두 가지를 동시에 겪으면서 둘 다 정말 메리트 있는 부분이라고 경험했으며,

무엇이든 학습에 끝이 없듯이 이러한 프로그래밍도 배움에 있어서 끝이 없다는 것을 겪었기 때문에 두 가지 다 포기할 수 없는 부분이라고 생각합니다.

하지만 그럼에도 선택해야 한다면 나는 Backend 개발자를 선택하게 될 것이다. 조금 전에 제가 백엔드 개발자가 좀 더 고려해야 할 부분이 있다고 말씀을 드렸는데 학습에 열망이 있는 저한테는 좀 더 공부하고자 하는 Backend 개발자를 선택하게 됐습니다.

참고

https://spartacodingclub.kr/blog/615192391014d41767f00955

profile
내가 공부한 것들을 적는 공간

0개의 댓글