백엔드란?
그 내용에 대해서는, 블로그에 다른 투고로 정리해 둔 것이 있다.
백엔드에 대해 잘 모르는 경우 한 번 보는 것이 좋습니다.
백엔드 로드맵
백엔드는 배우는 내용에 대해 더 깊고 자세히 알아야만 실무에서도 경력에서도 많은 도움이 된다.
단순히 문제를 해결하는 대신, 문제의 근본을 파악하고 처리하지 않으면 좋은 개발자로 인정되기 때문에이다.
그러면 이런 백엔드 개발자가 되는 방법에는 무엇이 있는지 한 번 이야기해보자.
백엔드가 무엇을 배워야 할지에 대해 잘 정리해 둔 로드맵은 매우 많다.
(아래 링크는 제로베이스가 제공하는 로드맵이다) 그래서 그 글에서는 무엇을 공부해야 하는지에 대한 전체적인 정리보다는 진입을 할 때 어떤 방식이 존재하는지 그리고 그에 대한 어떤 이점이 있다는 이야기를 해보자.
국비학원, 부트캠프
개발자가 되는 방법은 국비학원과 부트캠프가 존재한다.
그럼 이런 방법에 대해 경험했던 것처럼 말하자.
국비학원
국비학원이란 국가에서 교육비를 지원하고 실업자가 배울 수 있는 곳을 말한다.
국비학원은 일정한 금액 또는 전액을 국가에서 지원하는 제도로 생각하면 된다.
(여기서의 장점과 단점은 개인적으로 가지고 다니고 느낀 내용이기 때문에 주관성이 포함되어 있는 것을 참고로 해 주었으면 한다)
장점
- 낮은 접근 진입 장벽이 있었다.
진입장벽이 낮다는 말을 쓴 이유는 생각보다 국비를 지원하는 학원이 많기 때문에 정보를 찾아 액세스하는 것이 유용하다는 것이다.
국비 학원에 대한 정보를 찾고 싶다면 인터넷 검색이나 HRD-NET에 가면 많은 정보를 제공하므로 한 번 직접 찾아 보는 것이 좋습니다.
- 금액 부담이 적다.
국비학원에 대해 설명한 대로 금액을 일부 지원하거나 전액을 지원해주는 곳이 많다.
따라서 적은 비용으로 또는 무료로 교육을 받을 수 있다는 이점이 있다.
그리고 나라에서 매월 급료를 주는 시스템으로 소액이지만, 돈을 벌어 공부할 수 있다는 큰 이점을 가진다.
(청년지원제도까지 활용하면 매월 50만원을 더 받을 수 있다)
- 오프라인 클래스를 진행합니다.
그 부분에서는 개인적으로는 이점이라고 생각하고 이점에 추가했다.
오프라인이 장점이라고 생각하는 이유는 온라인에서는 질문의 한계성이나 교육의 다양성이 오프라인에 비해 부족하지 않을까 생각한다.
그리고 문제가 발생했을 때 곧바로 질문을 하고 피드백을 받을 수 있는 환경이 좀 더 초보자에게 유리하지 않을까 생각한다.
- 자신의 페이스로 공부를 할 수 있다.
제가 다니던 국비교육에서는 수업시간표에 대한 압박감을 갖고 수업을 진행하는 것보다는 이 사람이 언어를 배우고 배우는 데 더 많은 시간을 주는 곳이었다.
그 때문에, 다른 국비교육이 가지지 않는 이점을 가지고 있었다고 생각해, 이러한 부분이 매우 큰 이점이라고 개인적으로 받아들이고 있다.
- 정기적인 생활을 보장합니다.
오프라인 수업을 하기 위해 등원과 하원 시간이 존재한다.
이러한 시간적 규약이 가능하면 당연히 단독으로 하는 것보다 의지를 키우기도 하고, 약간의 강제성이 있기 때문에 공부에 더 도움이 될 것이라고는 생각하지 않는다.
단점
- 교육 만족도가 낮다.
국가 지원이란 생각보다 많은 문제를 일으킬 수도 있다.
다만 사람만 묻어 강의수만큼 늘리면 좋은 문제를 만들어내기 위해서다.
그 때문에 단기성으로 채울 수 있는 강사를 많이 선택하거나 전문성이 부족한 사람을 채용하여 강사를 사용하는 곳이 많다.
그래서 교육기간 중 질 높은 교육이 아니라 시간의 낭비만 해주는 경우도 있다고 한다.
- 시대에 뒤떨어질 수 있는 기술 스택을 교육한다.
기술 스택이라는 것은 개발자가 되면 초반에 잘 결정해야 하는 부분이다.
채용시장에서 별로 좋아하지 않는 기술 스택에서만 교육을 하면 채용이 되지 않는 문제를 초래할 수 있다.
그래서 학원에서는 채용율을 취하기 위해 Spring과 JSP를 중심으로 수업을 한다.
이러한 기술 스택은 우리가 아는 SI 기업이 선호하는 기술 스택에서 정말로 개발을 하고 싶은 개발자와 방향성이 다르다고 할 수 있다.
- 다양한 학생들이 존재한다.
무료로 지원하는 곳이므로 사람들이 손해를 볼 수 없다고 생각하는 사람이 많다.
그래서 학원에서 잠들거나 다른 사람이 있습니다.
또, 지불한 돈이 없기 때문에, 방금 시작한 것이 아니라, 사람들이 자신이 해당 교육을 왜 시작했는지를 잊어 돌리는 경우가 많아, 학업 분위기가 많이 흐트러지거나 한다.
부트 캠프
부트캠프는 영어로 ‘신병훈련소’라는 의미를 가진다.
자발적으로 지원함으로써 부트캠프에서는 수강자에게 좀 더 힘들고 강하게 밀어붙여 좋은 성과와 퍼포먼스가 나오도록 한다.
그러므로 지원자는 확실한 의지와 목표가 매우 중요한 미덕이다.
장점
- 높은 교육의 질을 제공한다.
수강자는 부트캠프에 돈을 제공하고 받는 교육으로서 부트캠프는 경쟁시장에서 승리를 얻기 위해 부트캠프가 누구보다 좋은 강의와 교육을 제공하는지에 대한 경쟁이 생긴다.
이러한 경쟁이 태어나면 더 나은 강의를 제공할 기회가 생긴다는 게 장점이다.
- 체계적인 교육 시스템을 제공한다.
많은 학생들을 키워 쌓아온 데이터를 통해 언제 어떻게 진행을 하지 않으면 수강자가 성장하는지 잘 알고 있는 곳이다.
수강자는 이러한 고민을 줄이고 단지 공부에만 집중할 수 있도록 한다.
- 온라인 강의로 진행할 수 있다.
명명된 부트캠프는 오프라인으로 진행되지만 이러한 부분은 지역에 거주하거나 부트캠프 지역 주위에 살지 않는 사람들에게는 큰 문제가 됩니다.
그러나 이러한 문제점을 보완하고 온라인으로 교육을 제공하는 부트캠프도 많아 지금은 전국에서 부트캠프 강의를 들을 수 있게 되었다는 이점이 있다.
- 올바른 로드맵을 제공하세요.
국비교육에서는 강사를 누구를 만나느냐에 따라 결정되는 복불복 시스템이었다면 부트캠프는 국비교육보다 그런 문제점이 적다는 것이 장점이다.
물론, 단순히 광고만으로 질이 낮은 교육을 제공하는 곳이라면 비슷한 문제가 발생하겠지만, 일반적으로 올바른 로드맵을 제공하는 곳이 많다.
- 교육 커리큘럼은 투명합니다.
국비교육도 HRD-NET이라는 곳에서 커리큘럼이 어떻게 강사가 누구인지 설명하고 있지만 실제로 받는 교육과 인터넷에 오르고 있는 교육이 다른 경우가 많다.
하지만 부트캠프는 실제로 진행되도록 설명을 해도 더 나은 강사진을 구하기 위해 많은 노력을 하고 있다는 것이 장점이다.
- 의지가 강한 수강생이 많은
자신의 돈을 주고 듣는 강의이며, 부트캠프인 만큼 그들의 의지가 매우 크다는 것을 잘 느낀다.
자신이 공부에 대한 동기 부여를 받고 싶거나 함께 공부하고 싶다는 마음이 있다면 수강자들에게 많은 도움을 받을 수 있다고 생각한다.
단점
- 높은 공부 진입 장벽을 가졌다.
개인적인 생각으로는 프로그래밍 언어를 하나도 모르고, 처음부터 부트캠프에 다니면 힘들겠다고 생각한다.
매일 진행되는 과제와 매주 진행되는 과제가 생기는데 처음으로 언어를 배우는 사람들에게는 그러한 과제를 따르는 것도 백백일 것이라고 생각하기 때문이다.
그 때문에, 어느 정도 프로그래밍 언어를 사용한 사람이 오는 것이 보다 효과적인 방법이 아닐까 생각한다.
- 많은 금액을 제출해야 한다.
현재 다니고 있는 제로베이스는 여전히 좋은 금액으로 좋은 교육을 제공하지만, 다른 부트캠프의 경우 대부분은 1천만원을 넘어 받아 교육을 제공하는 곳도 있다.
(알 때는 대체로 600~800 사이) 이 금액은 학생뿐만 아니라 직장인에게도 많은 부담이 되는 것은 사실이다.
따라서 자신의 지갑 상황을 보고 액세스할 수 있다는 문제가 있다.
제로 기반 후불
제로베이스에서는 후불이라는 재미있는 시스템을 통해 수강자가 취직을 한 뒤 돈을 지불하는 방식을 채용할 수 있다.
다만, 선불보다 조금 고액의 금액을 제출해야 하지만, 교육을 받을 기회를 무료로 제공한다는 것은 좋지 않을까 생각한다.
되고 싶은 백엔드 개발자
먼저 내가 되고 싶은 백엔드 개발자에 대해 이야기하기 전에 좋은 개발자라는 것은 무엇입니까? 가르쳐 보자.
좋은 개발자?
좋은 개발자는 몇 가지 특징을 가질 수 있지만, 주요 특징을 다음과 같이 가지고 있다고 한다.
- 전문성 : 좋은 개발자는 개발 분야의 전문 지식과 지식을 가지고 있습니다.
이것은 새로운 기술이나 툴 등을 학습하고 적용하는데도 큰 도움이 된다.
- 문제 해결 능력 : 좋은 개발자는 복잡한 문제를 신속하게 이해하고 해결할 수 있는 능력을 가지고 있습니다.
이것은 코드 디버깅 및 새로운 시스템 개발과 같은 작업에서 매우 중요합니다.
- 커뮤니케이션 능력 : 좋은 개발자는 팀원들과 원활한 커뮤니케이션을 할 수 있습니다.
이것은 프로젝트 성공에 매우 중요한 역할을 합니다.
- 창의성 : 좋은 개발자는 문제를 해결하는 창의적인 접근 방식을 가지고 있습니다.
이것은 새로운 아이디어를 발견하거나 기존 기술을 적용하는 데 큰 도움이됩니다.
- 품질과 성능 : 좋은 개발자는 코드의 품질과 성능이 높은 기준을 가지고 있습니다.
이것은 유지 보수가 쉽고 안정적인 시스템을 구축하기위한 기초를 제공합니다. - 자기 개발 : 좋은 개발자는 항상 자신의 기술을 개발하려고합니다.
이것은 학습, 실험, 실패와 성공을 반복하고 지식을 늘리고 성장하는 것을 의미합니다.
- 고속 학습 능력 : 좋은 개발자는 신속하게 새로운 기술과 도구를 배우는 능력을 가지고 있습니다.
이것은 항상 최신 기술에 대해 알고 있으며 새로운 기술을 적용하는 데 매우 유용합니다.
여기서 말하는 좋은 개발자는 단지 개발자에게만 적용되는 내용이 아니라 어떤 기술을 배워도 똑같이 적용되는 말이다.
단순히 토론, 기술이 좋고, 자기 개발을 꾸준히 하는 사람이 좋은 개발자라고 말하고 있는 것이다.
그러나 이렇게 나열한 것은 좀 더 세밀하게 “부족한 부분을 강화하면 좀 더 성장할 수 없을까”라고 생각해 적은 것이다.
개인적으로 나의 성향은 무언가를 도전하고 시도하는 경향이 있었다.
이러한 성향에서 나오는 장점은 다양한 방향으로 문제를 볼 수 있고, 그러면 해결 방법도 다양한 경우의 수를 생각해 볼 수 있다는 것이다.
단점으로는 너무 많은 생각을 해야 하고, 잘 안 되면 도저히 처리할 수 없는 문제까지 발생할 수 있다는 것이다.
그러므로 언제나 내가 얼마나 잘 알지 못하는지, 어디가 부족한지 아는 것이 매우 중요합니다.
결국 내가 되고 싶은 개발자는 책임을 지고 꾸준히 성장하는 개발자이다.
개인적으로 세계에서 가장 어렵다고 느끼는 말이 꾸준히 하는 것이다.
밥과 수면은 꾸준히 이루어지지만, 이것은 사람의 욕구이며 필요한 것이기 때문이다.
그러나 공부라는 것은 필수가 아닌 선택이므로 사람들은 점점 게으르고 피하게 된다.
필자는 공부라는 것을 성취욕이라는 것으로 생각을 하고 꾸준히 이어나갈 생각이다.
현재는 하루 1시간이라도 공부를 하지 않으면 불안해 떠올리고 문제가 생길 것 같은 불안감이 오히려 나에게 있어서는 더욱 도움이 될 것 같다.
다른 사람과 같은 길을 가려고 하는 것이 아니라 내가 가는 길이 맞다고 생각하면 꾸준히 진행할 수 있는 그런 개발자가 되고 싶다.