[후기] 스프링 입문 강의를 듣고

ZOO4WE·2022년 12월 20일
0

공부후기

목록 보기
1/1
post-thumbnail

요약

  • 스프링 부트로 웹서비스의 기초 틀을 만들어 보는 스프링 부트 필수 강의

주요 키워드

  • 스프링부트, TDD, JPA, AOP

선행학습

  • java 기초 문법
  • class
  • interface
  • 웹 mvc

💡 후기

솔직히 선행학습이 부족했다.

현재 회사에서 C로 개발하던 탓에 자바 기초가 부족하다는 것이 느껴졌다. 우선 객체 지향에 대한 기본 개념도 잡히지 않았다. 그 상태로 강의를 들었더니 따라가기 급급했다. Optional? 람다식을 활용한 함수형 프로그래밍? 인터페이스? 단어가 나올 때마다 찾아보느라 바쁘다.

배우면서 배움이 부족함을 느끼는 아이러니를 느꼈다. 자바의 정석과 객체지향 책을 한 권 구매하여 기본기를 다질 생각이 절실해졌다.

뭘 모르겠는데요. 그래도.

스프링 부트의 강력함을 느낄 수 있었다.

몸 담고 있는 현재 회사(SI) 코드는 절차지향 언어이며 내부 시스템적 한계로 짧으면 천 줄 ~ 길면 몇 천 줄이 넘는다. 그렇기 때문에 아래와 같은 문제점을 갖고 있다.

1) 유지보수가 어렵다.

  • 고도화 작업 이후 하나의 소스 라인이 기존 대비 1.5배 ~ 2배 증가하였다.

2) 테스트코드가 없어서 테스트가 오래 걸린다.

  • 모든 테스트 케이스를 직접 테스트 해야 한다. ‘모든’ 테스트 케이스는 존재하지 않기 때문에 시간도 오래 걸리고 안정화에 어려움을 겪었다.

3) 추가 요건 분석이 어렵다.

  • 해지 파트만 해도 수납, 환불, 승인, 취소가 한 소스에 같이 공존하기 때문에 영향도가 매우 크다.

덕분에 결제 파트의 기피 팀이다.

그래서 입문 강의만 들었을 뿐인데 스프링부트와 TDD에 대한 매력을 느낄 수 있었다. 전반적으로 소스가 간결해서(회사 대비) 직관적이었고 완강 후에도 이해하기 어렵지 않았다. 더불어 DB 접근 기술의 변천사나 스프링빈 의존관계 설정 등을 순차적으로 이해할 수 있는 기회였다.

참고로 연초에 스프링부트로 프로젝트를 진행한 적이 있는데 Spring Config가 뭔지도 모르고 등록(프로젝트 내내 이게 무슨 개소리야.. 했던 기억)했었다. 왜 등록을 하는지(!) 등록을 하면 무엇이 좋은지(!) 알 수 있었다.

뭘 모르겠는데요. 근데도.

JPA는 생각보다 의문점을 안겨준다. 몇천만건의 데이터를 JPA로 가져올 때 속도가 보장될까? PK가 아닌 다른 인덱스를 통해 조회한다면? 여러 테이블을 join하는 복잡한 쿼리가 필요한 경우에는? 같은.
하지만 대용량 트래픽이 발생하는 회사들도 JPA를 사용한다고 하니 어서 공부해보고 싶고 실무에서 직접 써보고 싶다는 생각을 한다. 직접 부딪혀보는 게 최고니까.

마치며

요즘엔 자바에서 코틀린으로 변경하는 곳이 생기고(예를 들어 meta) Docker, Redis, elastic Serach, JPA 등등 여러 스펙을 기본으로 요구하는 회사들이 많아진다. 이직을 위해 채용공고를 보다 보면 까마득하다는 생각이 든다.

월화수목금금금 했던 작년의 내가 바보 같기도 하고 올 한 해는 무엇을 공부할지 갈피가 잡히지 않아 이것저것 손을 대고 이룬 것이 없어 좌절하기 바빴다. 회사는 기술 부채가 개인은 공부 부채가 쌓이는 기분이 들었다. 공부할 게 많아 보여서 버겁고 이것이 맞는지 고민이 들던 찰나, 다시금 마음을 다잡을 수 있는 강의였다.

profile
직장인 K씨의 개발스러운 일일

0개의 댓글