Curriculum


바닐라코딩의 커리큘럼은 기본적으로 Fullstack입니다. 자바스크립트의 용도는 날이 갈수록 다양해지고 있습니다. 프론트엔드 분야에서 가장 활발하게 사용되고 있는만큼 프론트엔드에 더 집중하여 교육하고 있지만, 백엔드에 대한 교육 또한 다른 교육 기관에 비하여 양이 많은 편입니다. 최종 수료생들의 수준은 개별 격차가 있기는 하지만, 실리콘 밸리의 회사에서 신입으로 뽑을 만한 수준 혹은 그 이상입니다.

Overview

Weekly Sprint

매주 수강생들에게 새로운 과제가 주어집니다. 매주 새로운 기술을 익히고 흥미로운 문제를 해결해야 하는 상황에 놓이게 되고 주어진 요구 사항을 반드시 스스로 구현해야만 합니다. 그 과정 속에서 멘토님의 가이드와 리뷰를 매일 받으며 자기 주도 학습 방법이나 기본적인 문제 해결 능력을 기르게 됩니다.

Solo Work

바닐라코딩에서의 모든 과제, 테스트, 프로젝트는 솔로로 진행합니다. 동기들과의 페어 프로그래밍 혹은 팀 프로젝트를 하는 시간은 없습니다. 모든 과제나 프로젝트는 반드시 스스로 해내야 하며, 페어 프로그래밍은 멘토님과만 진행하게 됩니다. 그런 과정 속에서 학생 개인의 학습 상황을 면밀하게 관찰하며 실력을 키워나갈 수 있도록 도와드립니다.

72 Hours Test

한달에 한번씩 테스트 기간이 있습니다. 72시간이 주어지고 그 시간 내에 요구 사항들을 구현해야만 합니다. 레벨 별로 조금씩은 차이가 있지만 코드 가독성, 구조, 설계, 문제 해결 능력, 기능 구현 등을 종합적으로 판단하여 리뷰 받게 됩니다. 일정 점수 이상이 되어야만 교육을 계속해서 이어나갈 수 있습니다.

Computer Science

소프트웨어 개발자가 된다는 것은 최신 프레임워크와 프로그래밍 언어에 능숙한 것만으로는 부족합니다. 효율적이고 이해하기 쉬운 코드를 작성하는 것도 매우 중요합니다. 효율과 기본적인 프로그래밍 실력을 판단할때 빠질 수 없는 것이 바로 컴퓨터 공학적인 이론들입니다. 항상 기본에 충실해야 한다는 바닐라코딩의 신념을 가슴에 품고 컴퓨터 공학의 주요 개념들을 지도해드립니다.

Data Structures

소프트웨어 개발자에게 자료 구조가 얼마나 중요한지는 아무리 강조해도 지나치지 않습니다. 소프트웨어 개발자의 업무는 기본적으로 자료를 다루는 것으로부터 시작합니다. 수많은 자료들을 다루는 프로그램의 골격을 설계할때 가장 중요한 틀이 바로 자료 구조입니다. 다양한 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 합니다. 이러한 이유로 자료 구조의 종류와 특징에 대해 잘 이해하고 프로그램을 개발하는 것이 매우 중요합니다.

Algorithms

프론트엔드나 백엔드 개발 모두 기본적으로 수많은 연산 과정을 거쳐 프로그램을 실행하게 됩니다. 연산 처리에 따라서 프로그램의 효율성이 달라지고 결과물의 질에 차이가 나기 마련입니다. 그리고 또한 알고리즘을 공부함으로서 논리적 사고를 코드로 옮기는 과정을 연습하게 되고 그것은 소프트웨어 개발자의 핵심 역량이 됩니다. 언어나 환경에 관계없이 논리적인 사고를 할 줄 아는 사람이 장기적인 관점에서 성공적인 소프트웨어 개발자로 성장할 가능성이 더 크기 마련입니다.

Big-O Analysis

자료 구조의 성능 혹은 알고리즘의 효율을 판단하고 분석할때 흔히 사용하는 방법은 Big-O 분석법입니다. 단순히 자료 구조나 알고리즘을 사용하는 수준은 부족합니다. 본인이 사용하는 자료 구조나 알고리즘의 성능 또는 효율을 분석하고 장단점을 판단할 수 있어야 합니다. 그렇지 못한다면 결국 도구에 의존하는 수준에 그칠 뿐입니다. 책임감있고 역량있는 소프트웨어 개발자라면 더욱 꼼꼼하게 공부하고 분석력 또한 키워야 합니다.

Vanilla Programming

좋은 소프트웨어 개발자가 된다는 것은 단지 프레임워크를 사용할 줄 아는 능력이 아닙니다. 시대에 따라 유행하는 프레임워크는 변하기 마련이고, 그 변화에 대처할 수 있는 소프트웨어 개발자만이 살아남을 수 있습니다. 기본적인 프로그래밍 개념들을 숙지하고 연습함으로서 더 나은 소프트웨어 개발자로 나아갈 토대를 닦습니다. 도구에 의존하는 소프트웨어 개발자가 아닌, 도구를 현명하게 사용할 줄 아는 소프트웨어 개발자가 될 수 있도록 도와드립니다.

Frontend Engineering

웹 환경이 발달함에 따라 사용자들의 기대치도 매우 높아졌습니다. 높아진 기대치에 상응하기 위해 웹은 더욱 직관적이고 즉각적인 사용자 경험(User Experience)을 제공해야할 필요성이 생겼습니다. 그리고 바로 그 중심에 있는 것이 자바스크립트를 활용한 프론트엔드 개발입니다. 해외에서는 이미 프론트엔드라는 분야가 웹 개발의 중심으로 자리잡았습니다. 그리고 한국도 그런 추세에 부응하며 격변하는 시기입니다. 바닐라코딩에서 해외 프론트엔드 개발 경력이 풍부한 멘토님과 함께 트렌드에 맞는 교육을 받을 수 있습니다.

Modern Frameworks

간단한 개인 프로젝트와는 달리 현업에서는 대규모의 코드 구조와 유지 보수적인 측면을 생각했을때 프레임워크를 필연적으로 사용하게 되는 경우가 많습니다. 그런 이유로 인하여 개발 공부를 하시는 분들 중에 가장 먼저 프레임워크를 공부하시는 분들이 많습니다. 하지만 기본적인 프로그래밍 실력이 부족한 상태에서는 프레임워크를 공부하더라도 제대로 이해하지 못합니다. 저희는 프레임워크에 의지하는 개발자가 아닌, 프레임워크를 사용할 줄 아는 개발자로 훈련시켜 드립니다.

HTML5

프론트엔드 개발자는 사용자에게 직접적으로 보이는 화면을 만드는 사람입니다. 웹 UI을 작업할때 기본적인 화면 구성 요소를 만들기 위해서는 HTML은 필수적인 요소입니다. 그리고 부수적으로 Semantic하게 마크업을 작성했는지, 접근성은 뛰어난지, 또는 자바스크립트/CSS와는 역할 분담이 잘 되어 조화로운지 등 여러 가지를 고려하며 작업해야 합니다.

CSS3

프론트엔드 개발자란, 백엔드 개발자와 웹 디자이너 사이에 위치한 팀원입니다. 개발적인 능력도 물론 중요하지만, 웹 디자이너가 요구하는 대로 화면의 요소들을 배치하고 필요한 효과를 넣어주는 작업은 빠질 수 없는 부분입니다. 그러기 위해선 CSS의 기능을 최대한 활용하여 본인이 원하는대로 각 요소들의 생김새를 잡아줄 수 있어야만 합니다. 기본적인 CSS 구현 능력에 문제가 없어야 자바스크립트를 이용한 개발에 더욱 힘쏟을 여유도 생기는 법입니다.

Backend Engineering

프론트엔드 개발자라 하여도 백엔드에서 어떤 식으로 작업이 진행되는지에 대한 정보가 반드시 필요합니다. 전문 백엔드 개발자 수준의 지식은 아니더라도, 어느 정도의 지식과 웹 개발에서의 전반적인 큰 그림을 이해하고 있어야 합니다. 세계 최고의 생방송 중계 플랫폼 Livestream에서 백엔드 개발자로 커리어를 시작하신 멘토님께서 백엔드에 관한 부분 또한 충분히 지도해드립니다.

Node.js & Express

소프트웨어 개발 분야에서 자바스크립트의 위상이 높아짐에 따라 백엔드 작업 또한 자바스크립트로 가능하게 되었습니다. Node.js는 일반적인 자바스크립트 개발 환경에서 많이 쓰이고 웹 서버를 구축할 때도 쓰이는 등 자바스크립트를 이용한 개발에서는 빠질 수 없는 요소가 되었습니다. Express 또한 Node.js를 이용하여 웹 서버를 구축한다면 가장 신뢰하고 선택할 수 있는 선택지가 되었습니다. 바닐라코딩에서는 Node.js와 Express를 이용하여 백엔드 개발에 대한 기본적인 지식과 훈련을 진행합니다.

Database

웹 어플리케이션 개발에 있어 데이터베이스라는 주제는 보통 백엔드 개발자의 영역입니다. 프론트엔드 개발자라 하더라도 포괄적인 웹 개발에 대한 지식 없이는 개발자로서의 성장은 어렵습니다. 벡엔드 개발자와도 유연하게 소통할 수 있어야 하고, 그러기 위해서는 백엔드 개발에서 매우 중요한 부분인 데이터베이스에 대한 지식 또한 필수적입니다. 백엔드 개발자로 커리어를 시작하신 멘토님과 함께 데이터베이스는 무엇이며 어떤 식으로 구성되는지에 대한 학습을 할 수 있습니다.