Spring 시작
Spring에 관심이 생겨서 공부를 시작하게 되었다.
원래 C#을 사용했던 나는 Java가 불편하고 께름칙했었다.
C#이 Java를 따라 만들어졌다고는 하지만 나에게는 C#이 더 친숙하고 편했어서
백엔드 프레임워크를 처음 공부하려고 마음먹었을 때 .NET Core로 공부를 시작 할 생각이었다.
하지만 레퍼런스가 스프링에 비해 턱없이 부족하기도 하고, 한국에서는 스프링이 더 거대한 진영이기에
과감하게 포기하고 스프링을 공부하기로 했다.
인프런에있는 김영한님의 스프링 기본편을 들으면서 공부를 시작했는데,
강의를 들으며 제일 어려웠던 부분은 스프링 그 자체보다 다른 이유에서 있었다.(물론 아직 깊게 공부하지 않아서 그런걸수도)
IDE가 익숙하지 않다
여태 VS로만 개발을 하다보니 손에 익은 단축키들이 Intellij에 와서는 엉망진창이 되었다.
물론 이건 내가 당연히 적응해야 하는 부분이고 단축키들을 차츰 익혀가고 있다.
하지만 불편해 마치 왼손잡이로 강제로 교정하는 기분
그리고 gradle, maven, groovy등 여러가지 처음보는 것들이 등장...!
Hello World 하나를 보려면 IDE 내에서 이것저것 여러가지 설정을 해줘야 된다는게 좀 불편했다
근데 확실히 VS보다 좋은거같음
Java가 익숙하지 않다
앞에서 기술했듯이 나는 다른 객체지향 언어들중에서 Java와 가장 비슷하다고 여겨지는 C#을 주로 사용했었다.
C#이 Java를 모방해 나온만큼 쉽게 Java에 적응할 수 있을줄 알았는데 다른점이 꽤나 많아서 아직 적응을 못했다.
- Getter / Setter
- 클래스가 엄청 지저분해진다. C#의 프로퍼티가 그리워졌다. Lombok이라는 라이브러리를 이용해 코드를 줄일 수 있었지만 그래도 언어적으로 지원이 안된다는게 크게 불편했다.
- camelCase & Curly Brace
- {
- PascalCase가 짱짱
- }
- {
- Nullable이 없음 ?
- C#과 비슷하게 Nullable 자료형을 wrapper 클래스로 만들어 두었다고는 하는데 우선 치기 불편한 대문자이고
- 값을 꺼내거나 FP처럼 다른 연쇄 동작을 하려면 라이브러리를 import 해야하고 복잡함
- 반면에 C#은 Nullable을 언어적으로 완벽하게 지원하기에 Elvis Operator하나만 있으면 된다
공부하면서 느꼈던점
사실 스프링 자체에 대한 지식보다는 개발에 대한 지식을 더 얻을 수 있었던 강의인것 같다
SOLID 5원칙 같은경우는 이전에 디자인 패턴 스터디를 진행하면서 이미 알고있던 개념이라
간단히 리프레시하는 기분으로 강의를 들었었고
IoC / DI 같은 개념을 이해하며 스프링의 기본 철학을 음미했다
JUnit 같은 단위테스트도 살짝 맛볼수 있어서 좋았다!!
하지만 강의를 듣는 내내 찝찝? 답답했던 부분이 있다
Java를 싫어하는 나는, 원래 스프링 + Java가 아닌 스프링 + Kotlin으로 공부를 하려 했다.
하지만 강의를 들으면 어쩔 수 없이 Java를 사용해야했고 Java에 대한 이해도 필요했다
공부하고 싶은 언어를 미뤄놓고 공부하기 싫은 언어를 사용하면서 새로운 프레임워크를 배우려하니
순서가 꼬인거같고 어딘가 모르게 멍청하게 공부하고 있다는 생각이 들었다
하지만 별수있나 그냥 해야지
애초에 코틀린을 자유자재로 다루려면 자바에 대한 이해가 필수이기 때문에
그런가보다 하고 넘어가게 되었다
'Back-End > Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring 기본 정리 (0) | 2022.07.28 |
---|