개발자취

나는 왜 Backend 엔지니어가 되어야 하는가 본문

개발/Dev | 테크트리

나는 왜 Backend 엔지니어가 되어야 하는가

hnhnhun 2023. 6. 9. 23:30

# Part 1. 들어가며

본문은 필자가 왜 Backend 엔지니어가 되고 싶은지에 대한 성찰을 담고 있습니다. 따라서 객관적인 견해보다는 주관적인 견해가 훨씬 많습니다. 객관적인 정보만을 얻기 위함이라면 나가주셔도 좋습니다-😃

나가주세요 (google)

 
 

# Part 2.1 프론트엔드와 백엔드의 차이

프론트엔드와 백엔드의 차이를 제가 이해한 바로 설명하자면, 프론트엔드는 사용자에 가까운 파트라면, 백엔드는 사용자 보다는 데이터에 더 가까운 파트라고 생각합니다.

백엔드와 프론트엔드

 
 

# Part 2.2 웹 백엔드 개발자

특히 웹 백엔드 개발자라 하면, 유저가 Frontend 부분에서 이벤트를 발생시켜서 데이터와 관련한 CRUD를 Backend에 URL로 요청을 한 뒤에 일하는 개발자라고 생각합니다. 백엔드 개발자는 서버도 다루지만, 예시와 같이 DB에 데이터와 관련한 Create, Read, Update, Delete 동작을 하게 합니다. 그래서 웹 백엔드 개발자는 Backend에 입력된 데이터가 메모리 상에만 남아있지 않게 기타 장치에 영구적으로 기록하게 하는 역할을 담당합니다.
또한 사용자의 서비스를 원활하게 제공하기 위해서 데이터를 가공하고 전달할 때 더 효율적인 방법으로 로직을 구현해내는 파트라고 봅니다.

사용자의 클릭 이벤트로 발생하는 과정들

 
 

# Part 3.1 테크트리의 원천 | IT 창업 

2015년, 과학 실험 도구를 얻기 위한 학습용 게임을 만들자! 라는 막연한 생각으로 개발에 관심을 잠깐 가진 적이 있었습니다. 그땐 사실 컴퓨터 과학적인 지식이 전무했던 시기여서 개발자와 협업을 했다면, 고객정도의 위치였을 것 같습니다. 그래서 학부를 졸업할 즈음에 IT 교육 서비스를 만들자는 계획으로 창업 아이디어를 PT까지 했었으나, 누가 개발을 할거냐는 질문에서 말문이 막혀버렸고, 개발자 없이는 더 진행이 어려워서 계획을 접었습니다.
 
 

# Part 3.2 2017년 8월 | 미국여행 중에 얻게 된 개발과 관련한 동기부여

2017년, 6월에 잠깐 미국으로 여행을 다녀오면서, 우연한 계기로 미국 초등학교 커리큘럼을 접하게 되었고, 커리큘럼 중 코딩교육이 정규 교육으로 활발하게 이뤄지고 있다는 사실을 알게 되었습니다.

코딩교육 (google)

그때 IT 창업을 하고 싶었던 기억이 새록새록 떠오르면서 능력있는 개발자와의 협업이 어렵다면, 그 능력을 직접 가지자는 생각을 하게 되었습니다. 그리고 집에서 30분 거리에 위치한 국비지원 교육이 열리는 컴퓨터 학원에서 JAVA 교육을 수강하게 되었습니다. 사실 이때, 처음으로 클론코딩으로 안드로이드 앱을 개발하게 되었고, 나동빈님의 수강신청앱 개발 25개 강의를 수강하면서 이와 비슷하게 자기주도적 학습앱인 아하 앱을 제작해봤습니다. DB와 연동한 기본적인 검색 기능을 구축했고, 웹 페이지에 접근하는 링크를 버튼으로 제작했습니다. 이때 처음으로 웹개발을 접했었고, php로 짜여진 코드를 가지고 cafe24에 웹 서버 호스팅을 하여 회원정보를 관리도 해봤습니다. 이때 웹 백엔드를 처음으로 경험한 것 같습니다. 아주 야심차게 만든 앱이어서 디자인 일부와 기능 일부가 약간 수정하여 검색 서비스를 운영해보려고 했으나, DB에서 가져오는 데이터만 조회하는 검색서비스는 너무 경쟁력이 떨어져서 아주 짧은 기간동안 서비스를 운영하게 되었습니다. 그리고나서 저의 클론코딩으로 만든 앱은 1-2년 후에 플레이스토어에서 사라지게 되었습니다.

google 이미지

 

# Part 3.3 2019년 9월 | 윈앱 기반 개발 실무 경험

2019년, 9월부터 .NET Framework로 Windows Application을 구현하는 일을 했습니다. 그러면서 C#을 주 프로그래밍 언어로 2년간 개발을 하였습니다. 이때, 컴퓨터 공학적인 사고를 하기 위한 노력으로 POCU Academy를 통해 C# 소프트웨어 공학용 수학을 수강했습니다. 16주간 매주 과제를 해결하는 과정에서 성장이 있었고, 이 성장은 저의 업무에도 긍정적인 영향을 끼쳤던 것 같습니다.
그런데 개발을 하면서도 개발 포지션에 대한 고민을 많이 했던 것 같습니다. 그래서 일을 그만두고서는 업무 포지셔닝을 어떻게 해야할 지에 대해 고민을 많이 했던 것 같습니다. 그래서 C#을 계속 공부하여 .NET 기반으로 윈앱 기반의 소프트웨어를 다루는 중급 개발자를 향해 준비해야 할 것인가, 아니면 다른 개발 포지션을 도전해볼 것인가에 대해 꽤 오랜시간동안 고민을 했던 것 같습니다.

선택의 기로, 윈앱이냐 웹앱이냐 (google)

오랜 고민 끝에 결정한 방향으로는 Node.js로 Web을 경험하는 것이었습니다. 그래서 Node 기반인 vue.js, Nuxt.js 그리고 express.js를 공부하게 되었습니다. 하지만 몇가지 걸림돌이 있었습니다. .NET을 써오면서 Microsoft의 VisualStudio에 너무 익숙해져 있던 터라, VSCode로 개발을 하는 게 사실 쉽지 않았던 것 입니다. 그래서 강의를 듣는 일이나, 사이드 프로젝트로 시간을 오래 들였던 것 같습니다. 게다가 강의 제작년도와 얼마 차이 나지 않는다고 생각한 수강 시기임에도 버전 업데이트가 이뤄지는 바람에 패키지가 제대로 동작하지 않는 경우를 다수 경험하기도 하였습니다. 그래서 프로젝트마다 필요한 패키지를 설치하고 실행하는 과정에서 굉장히 많은 이슈를 만났던 것 같습니다. 지금 생각해보니, 이런 이슈를 해결했던 경험으로 많은 것을 얻은 것 같습니다.
 

# Part 3.4 2022년 10월 | 웹 개발 실무 경험

2022년 10월부터 웹 개발 경력을 쌓게 됩니다. 그래서 Node로 서버를 띄우는 Nuxt기반의 프론트엔드 프로젝트를 통해 웹 개발 경력을 쌓았습니다. 이때 일을 하면서도 공부를 병행하여, 현업에 종사하지 않고 공부만 했을 때와는 다르게 비약적인 성장을 했던 것 같습니다. Node_modules의 의존성과 관련하여 다양한 트러블슈팅을 경험하였고, 이를 해결하는 과정 중에 npm 패키지를 다루는 방법과 관련해서 유의미한 경험을 했다고 생각합니다.

Nuxt.js (google)
Vue.js (google)

하지만, 웹 개발에서 프론트엔드 개발 포지션을 맡아서 일하면서 Backend에 대한 갈증이 심화된 것 같습니다. 특히 사용자 풀이 좀 더 큰 서비스를 다루고 싶다는 생각을 하게 되면서, 백엔드 개발자들이 겪는 트래픽 초과로 인한 이슈를 해결하는 일을 하고 싶다는 생각을 많이 한 것 같습니다. 그래서 웹 프론트엔드의 HTML이나 CSS와 Javascript로 UX/UI를 고려한 개발보다는 웹 DOM을 동작시키는 것과 같이 서버를 어떻게 동작시키고, 사용자와 서비스에 관련된 데이터를 다루는 로직을 고민하는 포지션에서 꼭 일을 해보고 싶었습니다. 그래서 spring 강의를 들으며 백엔드 포지션을 미약하게나마 준비하게 되었습니다. :>

Spring (google)

 
그래서 이러한 길고 긴 개발 여정으로 인해 웹 개발에서도 백엔드 포지션을 선택하게 되었습니다!
 
 

한 줄 요약

백엔드 개발자가 되기 위함은 백엔드가 웹서비스 구축에 반드시 필요한 파트이기 때문입니다. (그 역량을 쌓기 위해 백엔드 스쿨을 통해 밤낮 없이 공부하는 중입니다-! :>)
 
잘못 적힌 내용이 있으면, 댓글이나 메시지로 아낌없이 알려주시면 감사드리겠습니다- :>

'개발 > Dev | 테크트리' 카테고리의 다른 글

2023/6월 회고글  (0) 2023.07.08
테스트 케이스가 통과된 뒤  (0) 2023.07.07
백엔드 공부 파이프라인 구축.log  (0) 2023.07.07
개발에 문제 많습니다  (0) 2023.06.17
개발 경험이 쌓인다는 것  (2) 2023.03.21
Comments