2019년 상반기 계획

2013년, 단국대학교에 입학했고 시간이 지나 이제 4학년 1학기가 되었다. 그리고 다음 학기에는 꼭 취업을 해야겠지..?

그래서 한 번도 세워본적 없는(?) 계획을 세워보고자 한다. 사실 취업에 대한 막연한 걱정은 없지만 남은 대학 생활을 의미있게 보내고 싶은 게 크다.


1. 개발 기본 소양 갖추기

git과 github

개인적으로 가장 중요한 소양이 아닐까 싶다. 단순하게 git을 사용하는 방법을 넘어서 git을 이용하여 프로젝트를 어떻게 관리할 수 있으며, 협업을 할 수 있는 방법에 대해 정리해보고자 한다.


linux(터미널)

linux 명령어는 계속 사용하면서 계속 까먹게 된다. 그래서 이제 머릿속에 갖춰넣기 위해 터미널 명령어를 정리해야지 싶다.


Docker

아직 Docker는 건드려본적도 없다. Docker를 공부하자.


Design Pattern

객체 지향에 대해 더욱 깊게 이해할 필요가 있다. 내가 작성한 코드의 책임과 역할에 대해 고민하고 이에 맞는 디자인 패턴을 적용할 수 있도록 공부해야한다.


Network / http / https

적어도 웹 개발자라면 Network에 대한 기본적인 지식은 필요하다. 물론 학과 과정중에 네트워크에 대해 배우긴 했지만.. 아직 완전히 내것으로 만들지는 못한 것 같다.


System Programming / Operating System

굉장히 즐겁게 공부했던 과목인데 시간이 지날수록 내용들이 잊혀져가고 있다. 다시 한번 정리하고 되새김하자.


Data Structure / Algorithm

기본 중의 기본! 알고리즘과 자료구조다. 이건 안다고 할 수도 없고, 모른다고 할 수도 없는.. 그런 영역이다. 꾸준히 백준알고리즘을 풀어보자.


English / Toeic

누가 뭐라 해도 개발자의 제일 큰 기본 소양은 역시 영어가 아닐까?



2. Front-end

PostCSS

css의 전처리기(scss, less)는 사용할 줄 알고 있으니 이제 후처리기(PostCSS)에 대해 알아봐야 할 것 같다.


CSS 아키텍쳐

BEM, OOCSS, SMACSS 등에 대해 공부하고 실제로 내 프로젝트에 적용할 수 있도록 하낟.


Task Runner

현재 npm script 정도는 알고 있다. 추가로 gulp/grant에 대해 짚고 넘어가자.


Lint / Formatter

ESLint, JSLint 등을 적용하여 코드를 더욱 깔끔하게 만들 수 있다. 이에 대해 공부해보자.


Webpack

webpack을 이용하여 모듈을 쉽게 관리할 수 있다. 하지만 webpack 자체는 약간 러닝커브가 있는 듯 하다.. webpack에 대해 정리하고, 추가로 ES6+를 ES5로 compile 해주는 babel을 같이 알면 좋다.


React.js

현재 Vue.js 는 웬만큼 할 수 있다. 이제 React.js를 이용하여 무언가를 만들어야지 싶다.


Styled Components / CSS Module

Style에도 Component가 있다. 아직 이건 제대로 접해본적이 없어서 어떻게 써야할지 감이 잡히지 않는다.


App Test

내가 제일 싫어하는 Test! 귀찮지만 그만큼 중요하다. Test 하는 습관을 소양하자.


PWA(Progressive Web App)

Web APP을 Native APP 처럼 만들 수 있는 방법이다. 역시나 알아둬야 하겠지?


TypeScript

대규모 프로젝트에는 Type이 있으면 좋다. TypeScript에 대해 정리하자.


CSR / SSR

SEO를 하려면 SSR을 해야 한다. SSR에 대해 깊게 알아보도록 하자.


Electron

Eletctron을 사용해보긴 했지만 아직 자세히 다뤄보진 못한 것 같다.


React Native

아예 React로 App을 만들어버리자.



3. Back-end

언어별 REST API 만들기 + GraphQL

솔직히 Back-end는 너무 광범위하다. 어디서부터 얼만큼 해야 좋을지.. 그래서 어떻게 해야 좋을까 고민하다가 좋은 방법이 생각났다. 똑같은 형태의 REST API를 다양한 언어로 만들어 보는 것이다.

  1. PHP - Laravel
  2. JAVA, Scala - Spring Boot
  3. Node.js - Express.js
  4. Python - Flask/Django
  5. Ruby - Ruby On Rails
  6. Golang

그리고 이들의 공통점과 차이점을 분석하고 어떤 환경에서 어떤 상황에 사용하면 좋을 지 정리해보는 것도 좋을 것 같다.

그리고 GraphQL도 만들어보자.


Database

DB는 RDB와 NoSQL 정도로 구분해서 사용해보자.

  1. RDB : Mysql or MariaDB / Oracle
  2. NoSQL : MongoDB

물론 여기 있는 내용을 한 학기 동안 전부다 공부하긴 힘들 것이다. 하지만 뭐라도 해야 뭐든 남겠지.. 알찬 6개월을 보내보자!

황준일 화이팅.