모르는게 사라지는 그날까지 두번째 글은 BackEnd에 대해 작성해보고자 한다.
BackEnd Developer로서 갖춰야할 것
BackEnd Developer로서 취업을 하기위해서는 세가지를 준비해야한다.
1. 서류전형 (포트폴리오)
2. 코딩테스트
3. 기술면접
서류전형(포트폴리오)
서류 전형은 이력서 같은 것으로
포트폴리오나 어학점수, 자격증, 자기소개서 등이 중심이 된다.
포트폴리오를 중심으로 이야기해보겠다.
백엔드 개발자는 프론트엔드보다 더 복잡한데, 어느정도의 로드맵처럼 공부 순서를 정리해볼 수 있다.
(내가 준비를 시작하기 전에 해당 로드맵을 숙지하고 시작했다면 더 좋았으리라는 생각이다)
HTML과 CSS -> javaScript -> js 라이브러리 -> Backend(Node.js, express)
해당 순서로 공부를 하면서 실습위주로 진행하고, 정리(깃허브, 티스토리, 벨로그 등등..)도 함께 해주는 것을 추천한다.
1. HTML과 CSS
CSS와 HTML는 웹 개발의 기초가 된다.
- 시스템의 동작 원리와 태그에 대한 이해를 목적으로 한다.
- 실습으로 (아무) 웹사이트를 클론 코딩해볼 줄 알면 된다.
2. javaScript
라이브러리가 없는 자바스크립트(ex- vanilaJS)를 공부한다. 라이브러리 도움 없이!!!
- JS로 HTML을 수정하는 것이 편해질 때까지 공부한다.
- 클론코딩은 노마드 코더의 momentum 강좌를 추천한다. (무료!) chrome app인
momentum을 vanilaJS로 클론코딩하는 강좌이다.
강좌에서는 css와 서버를 다루지않고 끝나는데,
날 것의(?) 모습이기 때문에 css를 만져보는 것도 추천한다.
- 이 단계를 통해 js라이브러리의 필요성을 절실히 느낄 수 있다.
3. js 라이브러리
jQuery, react 등을 배운다.
- 클론 코딩하면서 필요성을 깨닫고 활용할 수 있다. (2단계에서 공부한 것이 매우 불편했음을 느끼는 순간..)
4. BackEnd
- 프레임워크를 활용해서 간단하게 제작해보면서 프론트엔드~백엔드의 구동원리를 이해할 수 있다.
Java&JSP - Spring Framework
Python - Django Framework
Node.js - Express
- CRUD 시스템을 활용해서 간단히 프로젝트를 개발해본다.
- 이 과정에서 다양한 DB(MySQL, NoSQL)도 다뤄보면 좋다.
프론트엔드-백엔드의 구동원리를 알게되면 직접 개발을 해보면서 여러 문제점에 직면해보는 것이 좋다.
이후
기술을 배워본다.
- AWS를 이용해서 웹을 배포해볼 수도 있고 Docker를 활용해볼 수도 있다.
코딩테스트
요즘 대부분의 IT 기업은 오프라인 혹은 온라인 코딩테스트를 실시한다. 어떤 기업은 기술면접과 함께 손코딩 시험을 보기도 한다.
만약 코테용 언어 공부를 마친 상태라면,
1. 자료구조 및 알고리즘 공부를 한다.
(그리디, DFS, BFS, 정렬, 이진 탐색, 다이나믹 프로그래밍, 최단경로, 그래프..)
2. 유형 별 문제를 푼다.
문제에 해당하는 유형의 개념을 복습한 후 문제를 푼다.
개인적으로,
책으로 공부하고 싶다면 (이론공부할 때)
“이것이 취업을 위한 코딩 테스트다.”를 추천한다.
(본인은 "파이썬 알고리즘 인터뷰" 도서를 먼저 구매했다. 이 책도 매우 만족하지만 역시 유튜브 영상이 있는 책에 더 손이 가는 것 같다. 그래서 구매한 책은 앞서 말한 책을 다 끝내고 나서 천천히 읽어보려고 한다.)
문제 풀이는. (본인의 경우)
처음에는 백준 알고리즘으로 유형별 문제를 풀어보았고
코테 준비를 당장 해야할 때나 어느정도 백준 문제에서 감을 익혔다면 프로그래머스 에서 문제를 풀었다.
- 보통 프로그래머스 level3을 풀 수 있으면 웬만한 기업 코테는 통과한다고 한다.
기술 면접
기술 면접에서는 컴퓨터 공학 (cs, computer
science)적 사고•개념을 물어본다.
- 각 과목 별로 개념을 공부한 후에, 코드로 구현해보고 블로그에 포스팅하거나 깃허브에 push하는 과정을 추천한다.
- 본인은 정보처리기사 시험을 보면서 컴퓨터 공학 개념을 공부할 수 있었는데, 만약 해당 시험을 볼 예정이라면 시험 준비를 하면서 동시에 기술면접을 위한 내용정리도 해놓으면 도움이 될 것이다.
해당하는 범위
- 네트워크
- 운영체제
- 데이터베이스
- 디자인 패턴
- 알고리즘
추가로, 포트폴리오에 사용된 기술 및 도구의 배경지식 또한 물어볼 수 있다.
기술 면접에서는 꼬리 물기식 질문이 꽤 발생한다고 들었는데 예시를 보니 이해가 됐다.
Ex) 페이지 폴트가 어떤 개념인가요?
-> 페이지 폴트가 왜 일어나게 되는거죠?
-> 그럼 페이지폴트가 일어나지 않게 하기 위해 어떻게 관리해야 하죠?
위와 같이 질문을 예상하며 정리하면 면접 대비에도 좋을 것 같다.
해당 글을 참고하였습니다:)
https://firesoil-it.tistory.com/m/10
'monologue > 내 이야기 공책' 카테고리의 다른 글
백엔드 개발자로 입사하다. (2022.08) (2) | 2022.10.07 |
---|---|
항상 처음처럼 (0) | 2021.08.31 |
알고리즘 공부를 위한 강의 선택 (0) | 2021.07.30 |
Spring과 node.js를 접하다. (0) | 2021.07.19 |
[사담]피와 살이 될 것인가 (0) | 2021.06.14 |