Spring? ? ? ? ? ? ? ?

2024. 11. 18. 23:29개발/Spring

.NET C# 개발 업무로 입사해서, 요즘은 Spring을 제일 많이 다루고 있다.

 

Spring 기본기가 부족한 상태로 실무를 먼저 접하다 보니,

 

다른 업무 & Spring 및 부족한 CS지식 공부와 병행해야 해서 일정 관리가 너무 힘들다..


 

JAVA를 1도 모르는 내가 스프링이라는 자동차를 운전하자니

 

쓰잘데기 없는 브레이크가 너무 많았다랄까

 

필요한 어노테이션을 바로바로 떠올리는 선배분들이 그저 신기하다..

 

JAVA 기초를 인프런, 구글링 등으로 접하고 있지만, 실무와 크게 가깝지가 않은게 흠이다.

 

JAVA 라는 언어를 사용한다는건 같지만,

 

내부 비즈니스 로직이나, 운영 환경, 라이브러리, 의존성 등이 다 다르다 보니

 

그냥 실무하면서, 그때 그때 필요한걸 빨리 찾아서, 빨리 이해하고 빨리 활용하는게 베스트라고 느낀다.

 

근데 동시에, 실무 시간에 내 부족한 지식 때문에 내 예상보다 업무 소요시간이 늘어나다보니

 

조바심 & 약간의 자괴감 & 새 지식에 대한 설렘 등이 생겨서

 

참 마음이 복잡하다.


본문은 하소연 & 약 1달동안 60%만 이해됐던 개념들을 리스트로 쭉 뽑고

 

프로젝트 끝나고 이 글로 돌아와서 하나씩 정리할 글이다.

 

1.Setter, Builder 차이

   - 단순 개념적 차이 외, 성능 및 가독성

   - case별 장단점(A의 경우, B의 경우 대조)

 

2.RestController, NotBlank, PutMapping ... 등 어노테이션 동작 원리

   - 어노테이션 별 어떤 역할을 하는지는 이해 O

   - 프로그램 실행되고부터 어노테이션까지 오는 실행되는, 그 이후 과정까지 전체적인 시퀀스 궁금

      (얘는 실무(프로젝트의 완성도)와 멀다고 생각해서 깊게 공부하지 않았음)

 

3.Gradle 사용 이유

   - 빌드 자동화 역할인건 이해 O

   - 왜 쓰는지, 안썼을 때 대체 케이스 및 장단점

      (얘도 실무(프로젝트의 완성도)와 멀다고 생각해서 깊게 공부하지 않았음)

 

4.Spring Boot 특징

   - 구글링&강의에 정보가 있긴 한데, 특정 프레임워크의 특징, 장단점은

     그 전 프레임워크나 최신 기술을 익숙하게 사용해봐야 느낄 수 있다고 생각해서인지 잘 안와닿음

 

5.Http 메소드(CS지식)

   - PUT, POST 차이(그놈의 멱등성이 이해가 안감)

   - PUT이든 POST든 비즈니스 로직은 Service단에서 실행되는데

     왜 PUT은 리소스가 그대로 덮여씌여진다하고

     왜 POST는 리소스가 일부만 수정된다 하는지? -> 비즈니스 로직을 수정하면 되는거 아닌가..?