Java / Spring 개요

김태성·2024년 7월 9일

개인 프로젝트-1

목록 보기
8/53
post-thumbnail

Spring에는 다양한 라이브러리가 있다.
그 종류가 너무 많고 기능도 제각각이라 학습하기가 너무 어렵다..
솔직히 말하면 예제를 보아도, 구조 설명을 봐도 이게 무슨 말인지 이해가 안된다.

요즘 알고리즘을 풀어보면서 느끼는 생각이, 예제만 통과되었다고 해서 그 코드가 정답이라는 보장이 없다는 것이다. 언제 어디서 버그가 터질지 예측하지 못한다.

그리고 그 버그가 발생하는 근본적인 원인은

  • 문제에 대한 이해 부족
  • 내가 짠 코드에 대한 이해 부족
  • 프레임워크/언어에 대한 이해 부족

이 3가지 경우라고 생각한다.
이와 관련된 여러가지 경험들이 있었는데,

문제에 대한 이해 부족이라 하면

  • 시간복잡도를 잘못 계산하는 경우
  • 방법이 완전히 틀렸는데 예제의 정답만 맞게 내는 경우
  • 잘못된 해결 방법으로 코딩하는 경우(크롬 익스텐션 보안문제)

코드에 대한 이해 부족이라 하면

  • 어느 글이나 논문을 참고했는데, 구조를 이해못한 경우(백준 19586번 문제)
  • 팀원이 적은 코드를 끌어쓰다가 오류가 나는 경우

프레임워크/언어에 대한 이해 부족이라 하면

  • Nest.js 코딩할때 mvc 구조를 이해하지 않고 코딩
  • javascript 비동기 처리를 이해못해서 데이터 누락 발생

등등이 있다.
한마디로, 일단 만들면서 배우는게 맞는데, 몰라서 만들기 무섭다.
위의 그림 처럼 날개가 아닌 목으로 날아가는 비둘기가 만들어질것 같다는 것이다.

그래서 이번 주제에 대해서는 다음과 같은 공부를 하고 난 후, 코딩을 할 것이다.

먼저, 자바 언어에 대해 알아보자.
출처 : 개구리책

  • OOP
  • SOLID
  • IoC/DI
  • AOP
  • PSA
  • POJO

대충 유명한 주제를 끌어다 썼다고 봐도 할말은 없다..
하지만 java언어를 재대로 써보는것이 처음이라 예제를 볼때 전체적인 그림이 그려지지 않는다.
마치 로봇을 조립할때 팔, 다리가 무엇인지는 알겠는데 어디다 끼우는지 모르는거같은 기분이 든다.


아래의 주재들은 Spring Framework reference 에서 참고했다.
site : https://docs.spring.io/spring-framework/reference/

  • Web on Servlet Stack vs Web on Reactive Stack
  • Spring Web MVC
  • REST Clients
  • Spring WebFlux
  • WebClient

주제의 선정에 대해서 설명을 하자면

  1. Spring 프레임워크의 흐름을 알고 싶었고
  2. 많이 쓰이는 MVC와 Flux의 차이점이 무엇인지 궁금했으며
  3. 각각의 방식의 장점/단점을 비교하고자 했다.

사실, MVC를 Spring 그 자체라고 생각했었다. Nest.js에서도 MVC 모델을 썼었지만 Spring의 장점을 따왔다고만 생각했었다.
하지만 이번에 MVC는 디자인 패턴의 한 종류일 뿐이라는것을 알게 되었다.






자바/스프링이 처음 배우기에 정말 힘든 언어/프레임워크라는 말을 항상 들었는데 이렇게 실감나는적은 처음인거 같다. 특히나 spring은 위의 주제들에 공부하더라도 각각의 Annotation, SpringBoot 라이브러리들을 따로따로 배워야 한다는데 양이 정말 많은거 같다.

하지만 한번에 하나씩, 꾸준히 해보도록 하자.

profile
닭이 되고싶은 병아리

0개의 댓글