[작성일: 2023. 01. 08]
개발자를 선택한 이유
나는 항상 새로운 것을 배우고 도전하는 것을 좋아한다. 몇 달 전에는 피아노를 배우고 싶어서 성인 피아노학원에 등록한 적이 있었다. 완주하고 싶은 곡을 선생님께 말씀드렸고 수업시간 뿐만 아니라 퇴근 후 평일 저녁, 주말 등 학원에 나와서 피아노 연습을 했었다. (그 곡은 마녀 배달부 키키 OST였다.) 처음에는 형편없던 실력이 점점 향상하는 게 느껴졌고 악보없이도 어느정도는 칠 수 있는 수준이 되자 희열을 느꼈다.
취미뿐만 아니라 운동도 그렇고 공부도 그렇다. 지금 하고 있는 일도 재미있지만 그 당시에도 흥미를 느껴서 이 직업을 선택했었다. n년차가 되니 매 년 반복되는 루틴업무가 지루하게 느껴졌고 내 자신이 나태해지는 기분이 들었다. 그럼 그 직업의 자격증을 더 따면 공부가 되지 않냐, 라는 주변의 반대가 조금 있었지만 자격증을 따도 이직할 때 조금 좋을 뿐, 직업 특성상 일을 더 받지는 않는다. 경력이 더 쌓이면 실무보다는 관리 위주가 되기 때문에 더 나태해질 확률도 있다고 생각했다. 지금보다 더 성장하고 배울 수 있는 직업은 없을까? 라는 생각이 문득 들었고, 그렇게 생각한 직업이 바로 개발자였다.
프론트엔드와 백엔드
개발자를 하기로 마음 먹었다면 조금만 검색해봐도 알 수 있는 것은 개발자 중에서도 프론트엔드와 백엔드로 나뉜다는 사실이다. 간단하게는 프론트엔드는 사용자가 볼 수 있는 부분, 백엔드는 사용자가 볼 수 없는 부분을 개발하는 것이다. 내 적성에는 프론트엔드가 맞는지, 백엔드가 맞는지 알아보기 위해 프론트엔드와 백엔드 차이점을 알아보았다.
프론트엔드(Front-End)
프론트엔드는 사용자 인터페이스(User Interface)를 구현하는 개발자로서 화면과 관련 깊다고 할 수 있다. 지금 보고 있는 홈페이지나 링크를 클릭하는 것도 모두 프론트엔드 개발에 포함되는 것이라고 할 수 있다. 쉽게 말해 웹페이지를 설계하는 '기술'이라고 생각하면 된다. 보통 프론트엔드 관련 코드는 사용자와 바로 접촉하는 경우가 많다.
그렇다고 사이트를 디자인 하는 일이라고 할 수 있을까?
그렇게 볼 순 없다. UIUX 디자이너가 사용자에게 좋은 경험을 제공하는 디자인을 가져오면, 프론트엔드 개발자가 디자인을 활용해서 실제 웹 페이지를 구현하는 것이다. 따라서 프론트엔드 개발자는 웹이나 모바일에서 사용자에게 보이는 UI와 관련된 코딩을 하는 사람을 프론트엔드 개발자라고 한다.
프론트엔드는 시각적인 결과물로 사용자와 상호작용하는 업무를 맡기 때문에 마케팅, 디자인 부서와 협업하는 경우가 많고 기술 트렌드가 빠르게 변화하는 특징을 가지고 있다. 사용자와 직접적으로 맞닿아 있고, 그 순간이 가장 가치있다고 느낀다면 프론트엔드 쪽으로 가면 좋을 거 같다.
주 사용언어
- HTML
- CSS
- Javascript
백엔드(Back-End)
백엔드 개발자는 눈에 보이지 않는 서버를 전체적으로 담당한다. 필요로 하는 데이터를 저장하고, 관리, 전달하는데 단순한 저장과 관리 개념으로 데이터를 다루지 않는다.
JAVA, Spring Framework 같은 프로그램을 활용해서 데이터 처리 시간을 10초에서 1초로 줄이며 효율적인 데이터 처리 코드를 개발한다. 또한, 갑작스러운 접속자 증대에도 서버가 터지지 않도록 관리하는 일을 한다. 사람을 만나기보다 컴퓨터를 다루는 시간이 많고 기술의 드라마틱한 변화가 덜하다는 특징이 있다.
주 사용언어
- Java
- PHP
- Node.js
- Javascript
- C++
- Pyhon
백엔드 개발자가 되고 싶은 이유
막연하게 개발자가 되어야겠다! 에서 백엔드 개발자 하고 싶다! 가 된 이유는 우선 나는 미적인 감각이 없다. 눈에 보이는 직관적인 것을 관리한다는 것이 자신없었고, 프론트엔드도 매력적이긴 하지만 내 욕구를 충족할만큼 그리고 직업을 바꿀만큼 끌리진 않았다. 백엔드의 업무가 성취감이나 성장에 있어서 더 도움이 될 거 같았다.
사용하는 언어가 백엔드 쪽이 더 다양하고, 백엔드를 배우면 자연스럽게 HTML과 CSS도 경험해볼 수 있을 거 같아서 더 많이 배울 수 있는 백엔드를 선택해야겠다고 생각했다.
눈에 직접 보이는 직관적인 일도 사실 나쁘지 않다. 내 업무능력을 한 번에 볼 수 있는 결과물이긴 하지만, 보이지 않는 곳에서 데이터를 만지며 관리하는 것이 더 성취감을 느낄 수 있을 거 같았다. (흔히들 말하는 '이게 되네?' 를 경험해보고 싶었다.)
프론트엔드와 백엔드를 둘 다 할 수 있는 풀스택이라는 것도 있다고 한다. 지금은 백엔드를 배운다고 해도 더 성장하고 싶어질 때가 오면 풀스택을 하지 않을까?
프론트엔드와 백엔드 용어 관련 참고한 사이트