프론트엔드

개발자를 시작하려는 선택의 기로에선 사람들에게..

.log('FE') 2022. 3. 4. 23:49
728x90
반응형

들어가는 말

IT에서 종사한지는 5년, 그 중 프론트개발자로 일한지는 3년이 되었습니다.

여러 커뮤니티를 보고 활동하면서 시작하는 분들의 질문이 많이 올라오는걸 보고 해당 글을 작성하게 되었습니다.

아직 저도 많이 부족한 부분이 있지만 그래도 현직에 있는 입장에서 내가 만약 처음 개발을 시작한다면 어떤것들 부터 시작했을지를 생각하며 조금이나마 시작하는 분들에게 도움이 되고자 포스트를 작성합니다.

우선 저도 비전공자로 국비교육과정을 수료하고 이곳저곳 거쳐서 현재 직장에 자리잡게 되었습니다.

수료 후 => 3개월 => 6개월 => 2년 => 현재

그때 당시엔 퍼블리셔로 교육을 받았습니다. html, css, jQuery, 포토샵, 일러스트, 동영상편집 툴까지 잡다하게 배웠었습니다.

지금도 배우는 내용 종류만 달라졌다뿐이지 국비는 거의 통합교육입니다. 대학교육으로 따지자면 학부수준때 배우는 수박 겉핥기의 전공교육 과정정도?

예를들자면 프론트개발자 교육인데 JAVA, Python, jQuery 같은것들이 포함되어있거나

모바일 과정인데 ReactNative, IOS, Android, Flutter 를 다 알려준다고 하거나

또는 프론트과정인데 React, Vue, Svelt 모든 프레임워크를 다 다뤄본다던가....

나쁜건 아닌데 결국 나중엔 알아야하는 부분들도 있긴한데 당장에 취업을 목적으로 배운다기엔 사실 광범위하기도하고 실무에서 저 모든걸 다 쓰지도않습니다.

게다가 프레임웍이나 라이브러리는 시간이 지나면 언제든지 다른도구로 교체될 수 있고 사내에서도 언제든지 교체할 수 있는 선택사항으로 열어 둘 수 있는 부분이라 도구자체에 집중하는건

결국 그 도구가 교체되면 아무것도 못하게 되는거랑 같다고 생각합니다.

여기까지 대략적인 제 이야기와 제 생각을 적어봤습니다.

🏷 선택

프로그래밍 언어를 배우기에 앞서 여러가지 선택에 기로에 놓이게 될겁니다. 인지하지 못했을수도있지만 결국 현재 내 삶의 결과는 내가 지금까지 해온 연속적인 선택의 결과인만큼

선택이란 미래의 나를 만들어 낼 수 있는 중요한 관문입니다.

개발자로서의 커리어를 선택하는 분들의 타입은 다양한것같습니다.

  • 타직종 재직자의 커리어 전환
  • 비전공자의 신입 취업
  • 중고신입
  • 전공자

이 중 제 글에 해당 되는 분들은 타직종에서의 커리어 전환이시거나 비전공자의 신입 취업에 해당할것같습니다.

아무래도 중고신입분이나 전공자분들은 애초에 기본적으로 갖고있는 정보도 있을거고 아무래도 전공자는 좀 더 출발선에서는 유리한 입장이라고 볼 수 있을것같습니다.

그럼 가장 첫번째로 해야할 선택이 무엇이 있을까요. 바로 학습과정의 선택입니다.

  • 국비지원 교육
  • 사교육 부트캠프
  • 기업 부트캠프
  • 온라인 강좌 독학

일단 웹 개발을 하기로 했고 웹 개발중에서도 프론트엔드를 선택했다고 가정합니다. ( 분야를 정하는것부터 고민입니다.. )

우선 객관적인 장단점부터 확인해보겠습니다.

국비지원

우선 돈이 안들어요 오히려 돈을 받고 교육을 받을 수 있죠 (최대 장점)

다만 중도에 포기하거나 했을때 패널티도 존재합니다

그리고 여러곳에 존재하기때문에 집에서 가장 가까운곳을 선택할 수도 있겠죠

단점은 필요없어 보이는 과목도 그냥 다 포함하고 있다는겁니다.

그리고 수강하는 사람들의 이해도나 실력이 천차만별이라는거죠 - 학습 분위기에 영향을 끼침

내돈이아니라 국비지원이기때문에 중도 이탈자도 쉽게 발생합니다. - 학습 분위기에 영향을 끼침

사교육 부트캠프

최대단점 비쌉니다. 3개월 6개월에 몇백만원씩 하죠 그래도 요즘엔 사교육 부캠이 국비지원으로 모집하는 케이스도 많이 생긴것같습니다.

이건 국비나 사교육이나 공통사항인데 강사에 따라서 교육의 퀄리티가 천차만별이라는겁니다 이건 진짜 복불복이라 어쩔 수 없는 부분인것같긴합니다.

장점은 비싼돈 내고 온만큼 수강생들의 열정이 남다르고 이는 곧 인맥 네트워크로 이어지기도 합니다.

중도 이탈자가 적고 어쨋든 무조건 결과물은 만들어 집니다. 그리고 국비보다는 해당 직무에 특화된 교육을 받을 수 있습니다.

기업 부트캠프

유료도있고 무료도있는걸로 알고있습니다. 다만 사전 테스트과정을 빡세게 거칩니다. 알고리즘이나 기본 지식에 대해서 테스트를 통과하고 면접까지 통과해야 합니다.

단점은 사실 없지않나? 라고 생각합니다. 실제 개발자를 운영하는 기업에서 진행하기때문에 커리큘럼도 탄탄하고 각종 테스트를 통과한 사람들이라 평균 지식이 비슷하기때문에

뒤쳐지는 사람때문에 속썩을일도 없습니다.

본인이 열심히만 한다면 취업 연계까지도 갈 수 있고 개발자로서 첫 스타트로 가장 추천되는 코스라고 할 수 있을것같습니다.

그러나 테스트를 보는만큼 비전공자나 지식이 전무한 상태로서는 그림의 떡 이라고 보는게 맞겠죠

온라인 강좌 독학

2021.10.22 - [프론트엔드/Assignment] - 프론트개발 학습 사이트 정리

 

프론트개발 학습 사이트 정리

기존에 작성된 개발자 학습사이트 정리 에 대한 유입이 꽤나 지속적으로 이루어지고 있는데 시간이 지나다보니 접근이 안되는 링크도있고 업데이트가 필요할것같아서 재정리하려고 합니다. Ude

code-reading.tistory.com

요즘 워낙 좋은 컨텐츠들이 많아서 유무료 온라인 강좌나 영어를 잘하신다면 유데미나 유튜브에 풀린 영상만으로도 충분히 독학이 가능합니다.

다만 혼자 하다보니 방향성을 잃거나 늘어지거나 허송세월 시간만 날리는 상황이 발생할 수도 있습니다.

커리큘럼과 가이드만 제대로 잡혀있는 상태라면 그거대로 내 입맛에 맞는 온라인강좌나 책으로 독학해도되는 가성비 제일 갑인 방법이기도 합니다.

선택의 시간

  • 돈이 없다면 국비
  • 약간의 투자가 가능하고 개인관리가 철저하다면 유무료 인강과 책을 통한 독학
  • 돈이들어도 난 빨리 취업해야겠다 사교육 부캠
  • 알고리즘이나 기반 지식이 있어서 제대로된 코스를 밟겠다 기업부캠

사실 선택을 하는데 있어서 저런 사유가 절대적인 사유는 될 수 없습니다. 각자 사정이 다르고 상황이 다르기때문에

단지 조금이나마 인생의 갈림길에서의 큰 선택에 약간의 도움이라도 되기를 바랍니다.

취업을 위한 학습 방법

자 그럼 저런 과정을 어쨋든 통하면 다 개발자가 될 수 있나? 라는 질문을 한다면 네니요 입니다.

무슨말이냐면 개발자로 취업은 할 수 있습니다. 어쨋든 IT 종사자는 될 수 있어요. 남들이 못하는거 난 할줄 아니까

근데 어떤곳을 가냐 그것이 문제입니다.

 

어떤 교육기관이나 방식을 선택했던 사실 지금부터가 중요합니다.

교육기간동안 그리고 수료후에 어떻게 학습했냐에 따라서 격차가 벌어지게 됩니다.

저는 왜? 라는 궁금증울 품으면서 배운걸 반복적으로 실습하고 수행하여 내것으로 만드는 과정이 무조건 있어야 한다고 생각합니다.

요리도 처음엔 모르니까 레시피를 보고 하지만 익숙해지면 부재료를 첨가하기도하고 맵거나 달게 마음대로 조리할 수 있는것처럼

부재료를 넣어서 요리할 수 있을만큼의 숙달이 되도록 해야합니다.

왜 라는 궁금증은 아마 계속 개발자로 일하기위해서 습관적으로 형성해야하는 능력이 아닐까 싶습니다.

 

예시

가장 처음에 HTML, CSS 를 접하게 됩니다.

어떻게 작성해야하는지 어떤 태그들이 있는지 어떤 속성을 갖고있는지 이러한 것들을 배우게 됩니다.

강사마다 다를수있곘지만 여기서 단순히 어떻게 작성하면된다 라는 사용법을 배웠다면 스스로 학습할때는

왜 해당 마크업언어가 생기게 되었는지 HTML, CSS 는 어떤 목적으로 생겨난건지 하는 의문이 필요하고 그에 대해 스스로 알아봐야 합니다.

 

또 다른 예시

이제 마크업언어를 어느정도 학습하고 JavaScript 를 배우게 됩니다. 이때 원시값과 객체에 어떤 종류가 있다 라고 배웠다면

이렇게 원시값과 객체로 구분짓는 이유가 무엇인지 각각의 차이점은 무엇인지 브라우저에서 어떻게 해석되는 차이점이 있는지를 스스로 학습해야합니다.

궁금한거나 모르는게 있을땐 바로바로 강사에게 물어보고 피드백 받는것이 가장 좋겠지만 여러 사람이 함께 하기에 눈치도있고 제약이 존재합니다.

왜 라는 의문을 갖는데 있어서 어떤 의문을 가져야 할지 모르겠다 라고 하는분이 있다면 좀더 근본적인 얘기를 해보겠습니다.

 

개발자는 뭘 하는 사람이고 뭐하는 직업일까요?

 

앱을 만들고 웹을 만들고 서버를 다루고 이건 사실 표면적인 역할이고 좀더 근본적인 부분으로 들어가면

프로그래밍 기술을 바탕으로 문제를 해결하는 사람이라고 정의할 수 있을것같습니다.

여기에 왜라는 의문을 어떻게 가져야 할지 답이 있습니다.

  • HTML 은 왜 어떤 문제를 해결하기위해 사용될 수 있는지?
  • CSS 는 어떤 문제 또는 불편함을 해결하기위해 사용될 수 있는지?
  • 스타일은 선언하여 사용하는 방법에 여러가지가 있는데 왜 이런 방법들이 있고 어떤 차이점 장단점이 존재하는지?
  • JS 는 어떤 문제를 해결하기위해 등장 하였는지?

아키텍쳐나 클린코드 디자인패턴 알고리즘 등 개발하면서 마주하게되는 여러 개념들이 결국은 어떤 문제 혹은 불편함을 해결하기위해 등장하게 되었습니다.

웹의 깊은 역사까진 아니더라도 최소한 현재 배우고있고 내가 사용하고있는 기술의 등장배경 어떤 문제를 해결하기위해 어떤 철학을 갖고있는지 정도는 알 수 있도록 의문을 가져야 합니다.

 

만약 어떤 개념을 학습해야할지 그래도 어떤 의문을 가져야할지 모르겠다 라고 한다면 

프론트엔드면접 질문 또는 개발자 면접질문 이라는 키워드로 검색하면 정말 많은 자료들이 있습니다. 

해당 자료에 나와있는 키워드와 면접 질문을 바탕으로 공부를한다면 단순히 교육을 듣고 강의를 듣는것보다는 훨씬 얻어가는것도 많고 이해의 폭이나 접근하는 시야가 달라질 수 있습니다.

 

 

자주 묻는 질문

1. 전공자와 비전공자의 차이가 채용에 얼마나 영향을 끼치는지?

모든 질문과 내용은 웹 개발자중에서도 프론트개발자를 기준으로 말씀드립니다. 

엄청 중대한 영향력을 행사하는 기준은 아닌것같습니다. 다만 비슷한 수준이라 생각된다면 전공자에게 좀더 마음이 갈것같긴합니다.

웹 특히 프론트 개발에 있어서는 전공여부가 그렇게 큰 진입장벽으로 작용하지는 않습니다.

조금만 배우고 포기하지않는다면 누구나 웹페이지 하나정돈 만들 수 있다고 생각합니다.

다만 여기서 누구나 만들 수 있는 웹 페이지는 정말 단순한 정적페이지에 한해서라고 얘기할 수 있을것같습니다.

실제 서비스는 매우 복잡한 내용들이 포함되어있고 이를 아주 잘 구현해야합니다.

그리고 무조건 100% 200% 에러상황 문제가 발생하는 상황에 마주하게됩니다. 개발자는 결국 문제를 해결하는 사람인데 마주하게된 문제를 해결할 수 없다면 개발자라고 할 수 없겠죠. 근데 이 문제를 해결할때 결국 근본적인 해결을 하려면 코어지식이 필요합니다.

한가지 예를 들자면 Maximum call stack 이란 에러를 마주하게 될 수 있습니다. 이때 스택은 자료구조의 하나로 퀵하고 쌍을 이루는 개념입니다. 그리고 자바스크립트는 싱글스레드로 동작한다고 하는데 그게 콜스택과 연관이 있습니다. 

자바스크립트의 콜스택은 실행컨텍스트가 쌓이는 곳이며 메모리 저장소로 분류되는 만큼 최대로 쌓을수 있는 스택이 정해져 있습니다. 때문에 이 스택이 넘치는 호출이 쌓이게되면 저런 에러를 마주하게 됩니다. 

이런식으로 어떤 에러를 마주했을때 메세지가 어떤 의미인지 원인이 무엇인지 알아야 해결할 수 있습니다. 그리고 그 바탕엔 자료구조, 자바스크립트의 동작원리, 그리고 브라우저에서 자바스크립트를 해석하는 엔진에 대한 복합적이고 근본적인 코어지식을 알고 있어야합니다.

즉 웹페이지를 구현할 수 있다가 개발자의 영역이라기보단 프론트개발을 하려면 웹페이지 구현은 사실 당연한 기본 능력이자 소양입니다. 더 중요한건 프론트와 웹과 브라우저와 관련된 문제상황에 직면했을때 해결할 수 있는지 혹은 해결하기위한 기본적인 지식을 갖추고 있는지 이걸 이해할 수 있는지 이런 부분이 사실 더 중요하다고 할 수 있을것같습니다. 

이런 부분을 충분히 면접에서 또는 포폴에서 보여준다면 전공의 유무는 그렇게 중요하지 않다고 생각되고 이러한 이유때문에 비슷한 느낌이 든다면 전공자쪽을 좀더 선호한다 라고 얘기할 수 있을것같습니다.

 

 

2. 자격증에 대한 가산점은 얼마나 해당되는지

프론트중에서도 회사에따라서 외부사업을 통해 성장하는 회사인지 아니면 회사의 이름으로 자사 서비스를 운영하는 회사인지에 따라서 갈릴것같습니다. 외주나 프로젝트 수주를 통해 성장하는 회사는 중급 또는 고급개발자 같은 분류로 금액을 책정하고 수주를 받을 수 있는 어떤 기준이 되는데 이땐 자격증을 가진 사람을 우대해서 뽑겠죠

일반 자사 서비스를 운영하는 회사에서는 그냥 아 자격증이 있구나 하고말지 가산점이나 당락여부에 전공과 마찬가지로 큰 영향력은 없습니다. 가산점과 상관없이 그냥 해당 자격증공부를 통해 어떤 기본적인 지식을 쌓거나 자존감을 올리기위한 수단이라면 준비해보는것도 좋을것같습니다.

 

3. 신입기준 연봉수준은 어느정도가 적당한지

이건 사람마다 개인적인 기준이나 생각이 달라서 참고만 하면될것같은데 3000정도면 신입 초봉으로 나쁘지 않은 수준이다 라고 생각할것같습니다. 에이 말도안돼 저렇게 적다고? 라고 생각하신다면 평균보다 더 잘하고 실력 쌓아서 좋은곳 더 많은 연봉을 주는곳으로 가시면 될것같습니다. 바운더리를 얘기를 해보자면 2800~6000 정도로 천차만별이라 ...... 결국 잘하는 사람이 더 많이받고 가겠죠?

 

4. 고졸로 취업하려는데 불이익은 없는지

음 표면적인 불이익은 없어요 근데 그 회사가 최초 고졸 채용시 그 사람에게서 어떤 느낌을 받았느냐 어떤 경험을 했느냐에 따라서 프레임이 씌워져서 어떤 회사에선 기피할수도 있을것같습니다. 저도 2년이상 있었던 회사가 두군데인데 둘다 고졸채용이 있었습니다. 근데...별로 좋은모습은 본적이 없네요 그런 모습들이 고졸이라서 철이없어서 아직 어려서 경험이 부족해서...이런 프레임들이 사람인지라 은연중에 뇌리에 박혀서 부정적인 경험을 했다면 ....이건 꼭 고졸이기때문이 아니더라도 다른 케이스일때도 마찬가지일것같네요 신입을 채용하는데 고졸 대졸 상관없이 너무 빨리 그만두면 경력직만 뽑으려 하겠죠 신입에 대한 좋은 경험이 없으니까요

 

5. 포트폴리오가 꼭 필수 사항인지

포트폴리오가 필수인 회사는 제출을 하라고 합니다. 그래서 무조건 이라기보단 회사마다 다르긴한데

그래도 무언가 어필을 하려면 면접에서 이야기 보따리를 풀 수 있는 포폴 하나정돈 있으면 좋을것같습니다.

여기서 중요한건 클론코딩 포폴인데 괜찮은지 실제 운영사례가 있는 포폴이어야 하는지 디자인이 구린데 이렇게 해도 되는지 등등이 있는데 디자인은 사실 보기좋은음식이 먹기도좋다고 예쁘게 만들면 좋긴하죠 그 예쁘게 만들기가 어려워서 그렇지 아무튼 엄청 스트레스 받아가며 할 부분은 아니라고 생각합니다. 클론코딩은 정의를 좀 해야할것같은데 블로그나 강의를 보고 따라만든것이 클론코딩이 아닌

실제 운영중인 특정 서비스를 바탕으로 이 서비스가 갖고있는 기능들을 동일하게 구현해보는거라고 할 수 있을것같습니다.

즉 누군가의 코드를 따라서 쳐서 클론코딩이 아니라 서비스의 기능을 내가 스스로 똑같이 구현해 보는것이 클론코딩의 목적입니다.

그냥 남의코드 따라만 쳐서 완성한건 이야기할것도없고 아무 의미가 없습니다.

딱 한 페이지를 만들더라도 거기에 들어간 기능들을 내가 손수 고민해가면서 만들어 본거라면 1페이지던 10페이지던 포폴이 한개이던 다섯개이던 별로 중요하지 않다고 생각합니다.

 

위의 내용들은 굴지의 대기업이냐 IT 공룡 기업들이냐 중소기업이냐 스타트업이냐에 따라 조금씩 다를 수 있습니다. 

제가 작성한 글이 어떤 정답도 아니고 무조건 이렇다 이런것도 아닙니다. 다만 해당 직종을 선택하는데 있어서 조금이나마 도움이 되길바라고 저도 이런 생각을 갖기까지 아무 생각없이 지냈을때 왜 그리고 코어지식을 쌓아야겠다는 생각을 좀더 빨리 했으면 좋았겠다 라는 정도 차원에서 작성하게 되었습니다.

728x90
반응형