일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 재귀
- Flutter
- Crossfit
- D1
- 백준
- 14863
- DP
- 동적프로그래밍
- 재귀함수
- spring boot
- 스택
- 해시해킹
- 1781
- 그리디
- BOJ14889
- sw expert academy
- 브루트포스
- 회전하는큐
- 26008
- 4811
- dart
- 15353
- 1로만들기2
- 서울에서경산까지
- C++
- BOJ
- 15662
- 삼성
- 크로스핏
- Python
- Today
- Total
곧죽어도 콛잉
프론트엔드 vs 백엔드, 뭐가 다를까?, 왜 나는 개발자가 되고 싶을까? 본문
프론트엔드
원래 프로그래밍에서의 프론트엔드라 함은 컴퓨터 소프트웨어에서 사용자와 상호작용하는 부분을 지칭하고, 백엔드는 반대로 프론트엔드로부터 사용자의 입력을 받고, 그 입력을 처리하여 출력할 결과물을 다시 프론트엔드로 넘기는 부분을 지칭한다. 전 세계적으로 프론트엔드/백엔드 관련 얘기를 한다면 거의 대부분은 웹 프로그래밍을 말하지만, 개념 자체는 웹 개발에 한정되진 않는다. 아예 프론트엔드와 백엔드가 완전히 별개의 주체에서 개발하여 따로 배포하는 경우도 있다.
프론트엔드 개발자는 백엔드 API에서 가져온 데이터의 출력, 입력을 통한 비즈니스 로직 구성과 사용자와 대화하는 UI(사용자 인터페이스) 부분을 작업하는 개발자를 말한다.
프론트엔드 개발자는 프론트 영역 전반과 서버에 대한 이해력을 필요로 한다. 프론트엔드 개발자가 담당하기도 하지만, 종종 업무 효율을 위해 디자인 영역(HTML, CSS)만 작업해주는 마크업 개발자가 따로 있는 경우도 있으며, 프론트엔드 개발자는 해당 작업 파일을 받아 포팅 작업을 하고, 프론트엔드 영역을 개발하게 된다. 즉 프론트엔드 개발자는 바닐라 JS와 HTTP 프로토콜, 웹팩 등이 중요하다고 볼 수 있다.
읽을거리 - 프론트엔드의 종말 : https://yozm.wishket.com/magazine/detail/2201/
GPT의 등장이 프론트엔드 개발자의 실직을 만들까? - 더 나은 프로토타입을 만드는데 도움을 줄 뿐 완전히 대체하기엔 무리다.
AI가 지금까지 학습한 것은 인터넷에서 쉽게 찾아볼 수 있고 제너럴한 내용들 뿐이다. 대규모 오픈소스 코드베이스는 거의 다루지 못했다. 즉, AI로만 대규모 실서비스를 만드는 것은 분명한 한계가 있다.
백엔드
백엔드 개발자는 웹사이트나 앱의 보이지 않는 서버를 담당하는 역할을 하는 개발자입니다. 사용자가 웹사이트나 앱과 상호작용할 때 필요한 서버, 데이터베이스, 애플리케이션 로직을 개발하고 유지보수합니다. 사용자가 무언가를 저장하면 데이터베이스에 정보를 저장하고, 검색을 원할 때는 서버에서 검색 결과를 불러오는 등 서버를 구축하여 사용자 요청을 처리합니다.
백엔드 개발자는 주로 아래와 같은 언어를 사용합니다. 이러한 언어들을 사용해 서버를 구축하고 유지보수합니다.
- 자바(Java) : 객체 지향 프로그램 언어로 현재 백엔드 개발 언어 중 가장 사용도가 높은 1위 언어입니다. 폭넓은 분야에서 굉장히 많이 쓰이고 있습니다.
- 자바스크립트(Java Script) : 프론트엔드에서도 사용되는 언어입니다.
- 파이썬(Python) : 연동성이 좋고 유연하며, 개발 언어 중 난이도가 무난한 편에 속합니다. 데이터 분석, 금융 등 다양한 방면에 쓰이는 언어입니다. 그렇기 때문에 백엔드 개발자만 사용하는 언어는 아닙니다.
- PHP : 웹 기반 개발 또는 서버 개발을 할 때 쓰이는 언어로, 현재는 많이 쓰이지 않습니다.
- C, C++ : 매우 오래된 레거시 있는 개발 언어입니다. 인간보다 컴퓨터에 가까운 로직으로 이루어져 배우고 다루기 어렵고 까다롭다는 평이 많습니다. 하드웨어 메모리에 직접적인 접근이 가능한 언어이기 때문에 아주 빠른 속도 또는 매우 높은 효율을 목표로 할 때 사용합니다.
백엔드 개발자가 담당하는 서버에 생기는 문제는 서비스의 유저에게 직접적인 영향을 미칠 수 있습니다. 서버 셧다운, 에러 등이 발생하면 모든 사용자에게 불편함을 줄 수 있죠. 그렇기 때문에 빠른 대응이 필요합니다. 이러한 이유로 신속한 대응 능력, 다양한 에러를 마주하고 해결해 본 경험과 연륜이 중요하게 여겨지기도 합니다.
왜 개발?
어렸을 때부터 만드는 것을 좋아했습니다. 저에게 만드는 것의 재미를 가져다준 것은 처음에는 레고였습니다. 블럭 하나하나 쌓아가는 맛에서 쾌감을, 완성된 것을 보며 보람감을 그리고 내 머릿속으로 창작한 것을 원하는대로 구현해내는 짜릿함을 정말 좋아헀습니다. 그리고 가장 좋아했던 것은 이렇게 만든 것을 친구들에게 보여주고 자랑할때 그때가 웬지 모르게 더욱 기분을 좋게했습니다.
공책게임이라고 아시나요? 공책에 캐릭터를 그리고 놀이 같은 걸 하는건데 친구들과 이 게임을 하는게 즐거웠습니다. 항상 열심히 만들고, 마치 지스타에서 새로운 게임을 발표하듯이, CES에서 새로운 기술을 보여주듯이 새로운 공책게임을 자랑스럽게 소개하며 입문시키고 즐거워했습니다.
또한 개인적으로 스타크래프트라는 컴퓨터 게임을 좋아했는데, 이 게임에는 유즈맵이라는 시스템이 있어, 게임 속에서 게임을 만들 수 있습니다. 저는 이러한 유즈맵을 만드는 것을 즐겨했었는데 사람들에게 이렇게 만든 게임을 공유하고 즐기는게 저의 어릴적 취미였습니다.
어릴적 취미들은 생각해보면 창작을 정말 좋아했습니다. 지금도 가끔 그림그리기나 양모펠트를 취미로 합니다. 사실 창작도 창작이지만 재 작품이 남에게 보여지고 특히 사용될때의 재미가 더욱 크게 느껴졌습니다.
고등학생을 지나 대학생이 된 후 앞으로 무엇을 할지 곰곰이 되새김질해보는 시간을 가졌습니다. 그냥 막연하게 게임을 만들고 싶어 컴공과로 진학하게 됐지만, 게임에 대한 흥미가 떨어진 지금 내게 그것이 맞을까라는 생각을 갖게 됐습니다.
그리고 아무생각없이 군대까지 전역하고 어느덧 취업 걱정할 시기에 도달해,
내가 하고 싶었던 일을 찾는걸 잠시 잊고 무엇이 가장 빨리 취업할 수 있는 길일까 찾아보게 됐습니다.
마침 주변을 둘러보니 동기들은 대부분이 백엔드 개발자를 바라고 있었습니다. 따라서 저도 그냥 그길을 따라가야겠다고 다짐했습니다. 컴공생으로서 취업문이 가장 열려있고 수요도 많은 곳이 바로 백엔드라는 직무였기 때문입니다.
그리고 지금, 백엔드를 이렇게 시작했습니다.
저처럼 막연하게 백엔드를 선택하시는분들이 많다고 들었습니다. 아니 사실 주변 제 동기들이 그런 느낌으로 있어서 더 그렇습니다. ㅋㅋㅋ.... 개발에 대한 큰 틀을 흥미는 느꼈지만 구체적으로 모바일, AI, 웹, 정보보안을 한번씩 경험해본 저의 입장에선 아직까지 어디로 가야할지 이렇다할 분야를 정했진 못했습니다. 그래서 저는 결정했던게, "그냥 제일 많이하는거 하나 정해서 그거만 깊게 파보자" 였습니다.기술 스택으로 Java, Spring을 고른 것도 이 이유 때문이고요. 갈팡질팡하기보단 딥다이브가 ...... 나을거에요 ㅎㅎ!
개발자 준비하시는 분들 모두 화이팅!