2021년을 시작하며


공부하는 내용을 정리하는 목적으로 작성하고 있습니다. 잘못 작성된 내용을 지적해주시면 좀더깊이 공부해서 내용을 수정하겠습니다.

2020년, 난 목표했던것을 얼마나 달성했는가?

2019년 12월에도 지금과 비슷한 생각, 비슷한 고민을 한적이 있다.
좀 더 좋은 개발자로 성장하고 싶은데 그러기위해 난 무엇을 어떻게 준비해야될까?
큰 목표는 그려지지 않았지만 대강 몇가지 정도는 공부해보자는 목표를 세웠었다.

1. SpringBoot Project에 익숙해지기

실무에서는 레거시 프로젝트를 진행하고 있기때문에(JAVA6, Spring2.4/3.0) SpringBoot를 사용할 기회가 없었다.
따라서 개인적으로 공부해야했고, 시중에 나와있는 도서 몇 권을 읽어보고 예제를 작성해보면서 익숙해지는것을 목표로했다.
SpringBoot 개발 관련하여 올해 구매해 3권정도 공부했다.

  • 스프링부트와 AWS로 혼자 구현하는 웹 서비스(이동욱님 저)
  • 초보 웹 개발자를 위한 스프링5(최범균님 저)
  • 스프링 부트로 배우는 자바 웹 개발(윤석진님 저)

위 3권의 책은 모두 스프링 초급 정도의 내용으로 빠르고 간략하게 따라갈 수 있어 좋았다.
학습한 결과 2020년초에는 Maven, Gradle에서 Spring project dependency하는것 조차 낯설고 Annotation들이 신세계였지만
1년정도 지난 지금은 다행히 이런 부분은 익숙해졌다.
SpringFramework의 구조에 대해 조금은 더 알게되었고
SpringMVC외에 SpringData, SpringCloud, SpringSecurity, SpringBatch 등 다양한 프로젝트들도 간략하게나마 알게되었다.

올해에는 간략하게 공부한 위 프로젝트들을 토이프로젝트를 통해 한단계 더 깊이 공부하고 구현부분에 익숙해지는것을 목표로 할 예정이다.
시간이 부족하다는 핑계로.. (사실 정말 시간이 부족하긴함) 간단한 쇼핑몰 프로젝트도 아직 구현완료를 못했는데 올 상반기 내에는 마무리 지어야겠다.
이 부분이 완료되면 좀 더 재미있는 주제로 하나 만들어볼 예정이다. 근데 이건 모바일과 연동할꺼고 Backend보단 자칫 모바일쪽에 집중할거같아 조금 고민되긴 한다.


2. JPA

현재 실무에서는 SQL-Mapper를 사용하고 있는데 SI포함 많은 회사에서 쓰는 My-batis보다 더 오래된.. 구식 버전이다.
개발하면서 굉장히 불편하고 비효율적인부분을 많이 느꼈는데 JPA를 공부하면서 ‘아, 이래서 JPA가 세상에 나왔구나.’ 라는것을 많이 느꼈다.
김영한님이 쓰신 ‘자바 ORM 표준 JPA 프로그래밍’ 책 한권을 읽어보고 예제를 따라하면서 공부했는데 일단 책이 너무 알찼다.
책에서는 Hibernate 기반으로 JPA 내부구조, 동작방식에 대해 깊게 설명해주고 있다.
SpringDataJpa를 사용하면 Api가 좀더 추상화되어 몰라도 결과물이 나와 쓰게되는? 부분들이 생기게되는데 이러한 것들을 추상화 레벨이 아닌 구현부 레벨에서 설명되어 공부하기 좋았던 것 같다. 하지만 잠시 Jpa공부를 놓은지 몇달되서 다시 공부해야 할 것 같다. (아마.. JPA는 계속 공부해야 되지않을까?) 2020년초에 JPA에 대해 지식이 0이었는데 지금은 그래도 Junior 레벨 정도로 올라온것 같다.
2021년엔 내부 구조에 대해 좀 더 깊이 공부하고 요즘많이 쓰는 QueryDSL 학습도 진행할 예정이다.


3. Frontend

아마 내가 신입사원시절로 돌아가서 첫 기술스택을 다시 정할 수 있게 된다면 아마도 프론트엔드로 시작해보지 않았을까 싶다.
아름다운 UI 기반의 웹 페이지를 만드는 기술은 내가 언제쯤 손에 넣을 수 있을지…
2020년초에 React에 대해 조금은 익혀보는것을 목표로 정했었다.
2019년에 ‘리액트를 다루는 기술’ 이라는 책을 구매해서 간단한 예제를 만들어보긴 했는데 그 이후로 시간이 없어 중단했고 2020년에는 다시 백지 상태가 된 나를 발견할 수 있었다..
유명한 풀스택 개발자 유투버인 노마드코더님이 쓰신 ‘영화평점 앱 만들기 클론코딩’ 이란 책을 보고 간단한 앱을 만들어 보았다.
React에 대해 좀 깊이 알 수 있지 않을까 한 기대로 시작했으나 아쉽게도 이 책은 정말 입문자를 위한 수준이었다.
책 내용은 정말 쉽게 잘 설명되어있으나 깊은 내용은 없어 이것만으로는 나에게 크게 남는것은 없었다.
2021년에는 React에 조금 더 익숙해져볼까 아니면 Vue.js로 넘어갈까 고민중이다.
(실무에서 올해 하반기부터는 Vue.js를 사용할 일이 생길 예정이기때문이다.)


4. Java OOP

Framework 포함 트렌디한 기술을 익히는것은 굉장히 재미있고 가치있는 일이지만 가장 기본적이면서 조금은 루즈한 이 부분은 꼭 조금씩이라도 공부하고 싶었다.
조영호님이 쓰신 ‘객체지향의 사실과 오해’ 라는 책을 읽으며 굉장히 부끄러운 느낌이 들었고 코드에 대한 사고방식이 나에게 좀 부족한게 많다라는 판단이 들었다.
이후 ‘오브젝트’ 책을 읽고 있는데(산게 언제인데 아직까지 초반에 머물..ㅠㅠ) 읽으면서 계속 또 부끄러움이 느껴지지 않을까 싶다.
Java 개발을 시작하기 전에도 C++을 메인으로 개발했는데, 그때도 돌이켜보면 과연 내가 OOP에 맞게 개발을 했는가? 라는 의문이 든다.
프로젝트가 마무리되면 항상 이전에 개발했떤 코드들을 꾸준히 리팩토링했지만 OOP를 제대로 개발했다고 감히 말하진 못하겠다.
아직도 난 갈길이 먼가보다. 처음엔 그것을 인정하기 어려웠는데 사실 작년에 많이 내려놓았다.
난 한참 부족한 개발자고 앞으로 아무리 발버둥치고 성장하기위해 노력해도 내가 존경하는 그런 분들 레벨에 갈 수 없다는것을 사실상 알고있다.
하지만 이제 난 그냥 내 수준을 높이기위해 공부한다. 다른 누군가의 수준만큼 올라가는것이 아닌 그냥 내 수준 자체를 올리고 싶다.


2020년을 스스로 평가해보자면, 회사와 육아로 인해 힘들었지만 포기하지않고 목표를 위해 꾸준히 학습했다는 점은 잘한 것 같다.
더 대단하신분들이야 나보다 더 시간부족해도 어떻게든 더 높은 목표를 향해 뭔가 하셨겠지만 난 내 수준에서 열심히 했다.
연초 목표했던 수준을 다 달성하진 못했지만 BackEnd, Frontend, JPA, OOP등 각 분야를 골고루 진행했고 확실히 1년동안 한단계 올라감을 느낀다.
(2018년말에 커뮤니티에 질문했던 글을 우연히 보았는데 조금.. 귀여웠다.
아 그래도 Java개발을 진행한 2년동안 내가 성장하긴 했구나. 라는 생각이 드네)
아쉬운점은 너무 골고루하는건 비효율적인 것 같다.
사실 작년에 Bootstrap도 공부해보고 Javascript, Node.js도 약간씩 공부했으나 일정 수준 깊게 하지 않으면 머리에 많이 남진 않는 것 같다.
올해는 한가지로는 안되더라도 가지를 좀 쳐야겠다.


아무래도 2018년 하반기부터 Java, Backend개발을 시작했으니까 스스로 너무 부족함에 대한 두려움이 많았던 것 같다.
2020년엔 그래서 Spring을 주로 공부하되 조금 다양한부분을 공부하려고 애쓴거 같다.
(근데 올해에도… 그래야될거같은데?)
올해는.. 한가지 더 추가하려 한다.
모바일 개발을 꼭 하고 싶었다. (이전에 타이젠 앱 개발은 해본적이 있는데 이것이 안드로이드였다면 얼마나 좋았을까 후회1000%다.)
코틀린공부도 할겸 안드로이드를 해볼까, 아니면 작년부터 도전해볼까말까 했던 플러터를 공부해볼까 잠시 고민했었는데
일단 플러터로 결정했다!
Dart라는 언어도 공부해야하니까 시간이 더 부족하긴 하겠지만, 구글이 밀고있고 공식문서도 잘 정리된것 같아 얼마전에 입문용 책 하나 구매했다.
올해는 일단 플러터를 공부해보고 남들이 말하는 네이티브로 돌아가는 이유를 직접 한번 겪어보는게 목표다!
뭐니뭐니해도 올해 가장 중요한건 Spring과 JPA에 대해 한단계 더 깊게 공부하는 것이다.
단순히 구현능력만 키우는게 아니라 좀 더 Deep하게 파서 머릿속에 좀 더 진하게 그려놓고 싶다. 2021년 화이팅!!!




© 2020.09.23 by chpark

Powered by chpark