원래 공기업 취직을 위해 전기기사를 공부중 1차를 합격하고 2차 준비를 하던 중이었다. 그런데 무작정 외워야 했던 2차 과정에서 번아웃이 왔었던 것 같다. 이과 출신으로서 기기 번호 등을 외우는 것은 너무 고역이었다. 중~고등학교 때도 늘 암기과목에 있어서는 늘 젬병이었던 나는 이 길이 정말 맞는지에 대해 고민하기 시작했다.
시험을 치고 나서 잠시 쉬는 기간에, Baba is You라는 게임을 접하게 되었다.
Baba is You는 주어진 규칙에 따라 움직이되, 내가 단어를 직접 움직여 새로운 법칙을 만들거 깨서 해당 스테이지의 목표를 달성하는 게임이다.
이 게임을 하면서 학업과 진로의 능동성에 눈을 떠버리고 말았다..! 새로운 단어를 활용하여 나만의 법칙을 만들어 클리어해보기도 하고, 의도한 바와 전혀 다른 방법으로 클리어하기도 하면서 논리라는 분야에 관심을 갖기 시작했다.
이 게임의 단어 조합이 튜링 완전하다는 사실을 보면서, 혹시 '내가 직접 코딩을 하면 이런 재미를 느낄 수 있지 않을까?' 라는 생각이 들어 VSC를 깔고 유튜브로 파이썬 강의를 처음 들어보기 시작했다. 그러면서 무한한 능동성이 담겨있는 개발자의 길을 걸어보자고 결심하게 되었다.
언어에 대한 공부도 하면서, 개발 관련 직업군 내에서도 어떤 직업을 정하고 나아갈지에 대해 생각하기 시작했다. 웹 퍼블리셔, 웹 엔지니어, 프론트엔드 엔지니어, 백엔드 엔지니어, 데이터 사이언티스트, 데이터 사이언티스트 등등 매우 세분화되어있었고, 그냥 이름을 붙이면 직업이 하나 생기는 정도로 많을뿐더러 다른 여러 이름이 한 직업을 가리키는 등 용어가 난립했다. 심지어 같은 직업이더라도 입사해서 하는 일은 천차만별이라고 하니, 시작부터 막막했다.
그래서 우선 큰 틀에서 프론트엔드와 백엔드 둘 중 고르기로 했다.
프론트엔드
프론트엔드 개발자는 사용자가 웹사이트와 상호작용하는 모든 것들을 개발한다. 입력 칸, 버튼, 인터페이스, 이미지들의 움직임, 사용자의 행위에 모든 반응 등 브라우저에서 보이는 전부를 프론트엔드 개발자가 담당한다. 따라서 디자인 분야와도 밀접한 관련이 있고, 심미성이 중요한 역할군이다. 주로 HTML, CSS, Javascript 등을 사용한다.
백엔드
백엔드 개발자는 사용자가 보지 못하는 모든 것을 담당한다. 브라우저와 서버와의 연결, 데이터베이스와의 연결을 수행하며 프론트엔드에서 이루어지는 작용을 통해 일어나는 현상들을 구현한다. 또한 웹 페이지 간의 연결, 보안 등 주요 골자들을 담당한다. 주로 다루는 언어로는 PHP, Node.js, Javascript, Java, Python 등이 있다.
백엔드는 마치 공장과 기계 내부를 다루는 것과 같다. 내부는 섬세하고 치밀하게 이루어져 있으며, 안에서 이루어지는 일들은 한 눈에 파악하기 힘들지만 그만큼 모든 게 흐트러지지 않고 깔끔하게 해결하고 나면 그만한 뿌듯함이 없다. 또한 사용자에게 보이지 않는 곳에서 방대한 데이터를 다룬다는 점이 묘한 희열을 일으킨다. 또한 백엔드는 코드의 자유도가 매우 높기에 나만의 비즈니스 로직을 만드는 재미 또한 있을 것 같다는 생각에 백엔드를 선택했고, 제로베이스 백엔드 스쿨에 지원했다. 6개월 동안 굉장히 바삐 살 것 같지만 빡빡한 일정만큼이나 나를 증명하는 시간이 되는 것 같아 흥미롭고 설렌다. :)
이야깃거리)
어제 자료구조를 공부하다 큐(Queue)에 대해 배웠다. 선입선출(FIFO)이 특징인 자료구조였는데, 위의 맵 이름이 마침 [Queue]였다. 먼저 들어간 흰색 토끼가 먼저 앞으로 가지 않으면 뒤에 있는 주황색 친구도 앞으로 가지 못해 플레이어(해골)가 깃발에 도달하지 못한다. 말 그대로 선입선출이다.(ㅋㅋㅋ)