1. 현재 공부하고 싶은 것들과 우선 순위
(1) 언어
- Java [최상]
메인 언어이기도 하고 여태까지 포트폴리오 프로젝트 제작에만 집중했다보니 Spring Framework가 제공하는 메소드 / API에만 익숙해져있었음. 리마인드 겸 심화 학습이 필요한 시점이라고 생각된다.
- Linux [최상]
서버 관련으로는 Linux를 모르면 일을 할 수 없으니 반드시 배워야 한다... 프로젝트할 때도 그랬지만 오류 관련 설정을 Linux 명령어로 해야 할 때가 제일 무서웠음
- SQL [최상]
현재까지는 프로젝트에서 DB 설계나 SQL을 세밀하게 다룬 적이 없었기 때문에 많이 배워둬야 할 것 같다. 특히나 현재 관심 있는 도메인이 결제 / 정산 / 데이터 처리 쪽인지라 성능 개선을 항상 염두해둬야 하므로...
- HTML/CSS [상]
프로젝트를 혼자서 제작하면서 많이 헤맸던 영역 중 하나. 웹 개발자라면 모름지기 알아야 하는 기본 상식이지만 도외시 했던 것 같다. 이번 기회에 제대로 팔 생각.
- JavaScript [상]
마찬가지로 프로젝트를 혼자 제작하면서 찍먹 수준으로는 해봤지만 제대로 파본 적은 없었음. 웹 개발자 특성상 혼자서 JavaScript를 통한 화면 구현을 하게 될 일이 많을 것으로 보여 이번 기회에 배워볼 생각. 이 외에도 Node.js, Express.js, NestJS와 같은 JavaScript 기반 백엔드도 배워보고 싶음.
(2) 프레임워크 / 라이브러리
- Spring Framework [최상]
말이 필요 없다...
- Spring Data JPA [최상]
마찬가지로 말이 필요 없다... 프로젝트 자체가 위에서 이야기했듯이 복잡한 SQL을 다루지 않았어서 쿼리 메소드 위주로 많이 사용하긴 했는데 위에서 SQL 공부할 때 JPA와 같이 연계할 필요가 있을 듯 하다.
- Querydsl [최상]
마찬가지로 말이 필요 없음. SQL 공부할 때 JPA에서 처리하기가 힘들거나 쿼리가 복잡해질 경우 좀 더 활용해봐야겠다. 현재까지는 다이나믹 쿼리를 써본 적이 별로 없는데 이 부분을 집중적으로 생각해봐야겠다.
- Spring Security [중]
프로젝트 진행하면서 강의나 레퍼런스를 찾아본 결과 인증 / 인가 관련으로는 어느 정도 템플릿 / 틀이 다 비슷비슷한 것 같아서 집중적으로 판다기 보다는 개념 / 기본기 숙지 정도로 접근할 듯 하다.
- Spring Batch [중]
대용량 데이터 처리나 분산 처리에 사용되는 것 같은데 일단 개념 / 기본기 숙지 정도로 접근할 듯 하다.
- Vue.js [중]
JavaScript 학습 후 개인 프로젝트에서 혼자 프론트엔드 처리를 할 경우 Vue.js를 활용해볼 생각. 찾아본 결과 SSR도 지원이 가능하며 문법이 JSP / Thymeleaf와 유사한 것 같아서 백엔드 개발자 입장에서 러닝 커브가 React.js 보다는 훨씬 낮다고 한다.
- Node.js / Express.js / NestJS [중]
Node.js 기반 백엔드도 경험해보고 싶어서 클론코딩 / 토이 프로젝트를 진행하면서 Java + Spring 기반과 어떤 차이가 있는지 비교해보고자 한다.
(3) 클라우드 / 인프라 관련
- Docker [상]
앞으로도 토이 프로젝트를 많이 진행할 예정인데 Docker Container를 활용하게 될 것 같기도 하고 현업에서도 많이 쓰이기 때문에 배워둬야 할 것 같다.
- Kubernetes [중]
중소기업 수준에서는 오히려 배보다 배꼽이 더 크다는 이야기도 많이 들리는 것 같지만 MSA가 대세인 현 상황에서는 그래도 배워두는 것이 훨씬 나을 것 같다.
- AWS [하]
현재까지는 EC2, RDS, S3 정도만 활용해봤는데 AWS를 사용하는 기업, 하지 않는 기업이 있을 것 같아서... 일단 서적 한 권 정도 두고 필요할 때마다 찾아볼까 생각 중. 대신 일하게 될 기업이 AWS를 무조건 써야 한다면 우선 순위가 바뀔 것으로 판단됨.
2. 12~1월 계획
(1) 공부 시작할 것들
- Java
- Spring Framework + Spring Data JPA + Querydsl
- Linux
- SQL
- HTML/CSS
- JavaScript
(2) 계획
- Java : <자바의 정석> 내용 정리
- Spring Framework + Spring Data JPA + Querydsl : 인프런 강의로 복습
- Linux : Udemy <Linux Commend Line 부트캠프> 수강
- SQL : 2월 SQLD 자격증 공부 + <SQL 첫걸음> 공부
- HTML/CSS : <웹 프로그래밍 튜토리얼> 공부
- JavaScript : <웹 프로그래밍 튜토리얼> 공부 + <혼자 공부하는 자바스크립트> 학습