Spring을 몇년동안 계속 써왔고 내가 잘한다고 생각되는 부분은 어느 상황에서 어느 library가 필요하고 이건 Spring의 몇 버전과 호환이 되고 설정파일(applicationContext)은 어떻게 구성을 해야 하고 등등 AA가 해야 할 일들이었다. 즉 개발 외적인 부분들에 대해서 많이 익숙한 상태였다. 하지만 Springboot가 나오면서 내가 잘하는 부분이 사라졌다. 왜냐면 이런 고민들을 하지 않게 나온것이 바로 Springboot이기 때문이다. 뭐든 좀 공부해서 잘한다 싶으면 기술이 빠르게 바뀌어 다시 초기화 상태가 되어버리는것 같다. 잡설은 그만하고 주요 차이점들에 대해 살펴보겠다. dependency 관리 위에서 언급한대로 예전에 Spring으로 프로젝트 하나 구성을 하려면 필요한 라이..
어떻게 하면 Springboot을 조금 더 빠릿빠릿하게 만들 수 있을까 찾아보았다. 지금 사용하고 있는 최신버전(2.5.4)도 만족스럽게 사용하고 있지만 찾아보면 자료가 있을것 같았다. 마침 좋은 자료가 있어서 공유하고자 한다. 이것저것 해보고 현실적이고 괜찮다고 느낀건 빨간색으로 표시를 해 놓았다. How do I make my app go faster? You are mostly going to have to drop features, so not all of these suggestions will be possible for all apps. Some are not so painful, and actually pretty natural in a container, e.g. if you are bu..
springboot에서 kafka 설정을 위한 property 목록이다. Key Default Value Description spring.kafka.admin.client-id ID to pass to the server when making requests. Used for server-side logging. spring.kafka.admin.fail-fast false Whether to fail fast if the broker is not available on startup. spring.kafka.admin.properties.* Additional admin-specific properties used to configure the client. spring.kafka.admin.secu..
springboot의 설정 파일인 application.properties or application.yml 파일 내에서 다양한 속성을 지정할 수 있다. 내게 필요한 속성을 찾아서 프로젝트에 적용하면 된다. # =================================================================== # COMMON SPRING BOOT PROPERTIES # # This sample file is provided as a guideline. Do NOT copy it in its # entirety to your own application. ^^^ # ===================================================================..
이전 Xml Config 방식에서 ComponentScan을 사용하는 방법은 다음과 같았다. applicationContext를 구성할때 이렇게 명시적으로 내가 읽어들여야하는 component들이 있는 package를 넣어줬다. 하지만 Springboot에서는 Xml Config보다는 Java Config를 사용하고 @기반의 설정을 많이 한다. 아니 이 Component Scan을 하지도 않는데 알아서 잘 된다. 어떻게 된 일일까? 바로 Springboot의 핵심! @SpringBootApplication 에 답이 있다. Springboot Main Class에 있는 @SpringBootApplication를 ctrl을 누르고 눌러서 들어가보자. @SpringBootApplication @Target(E..
springboot를 사용해서 web 개발을 하면 초반에 ERR_ABORTED 404를 심상치 않게 만나볼 수 있다. 404는 알다시피 경로에 있는 파일을 못찾는 경우이다. 즉 잘못된 경로를 입력했다는 것이다. 필자의 static resource 구조와 그 안에 있는 js 파일에 대한 정의를 한 소스이다. springboot의 특성상 정적자원을 읽어오는 위치는 classpath:/static, classpath:/public, classpath:/resources 이어야 한다. public이라는 폴더명을 선택하여 사용하였다. 위에 나온것중 아무거나 써도 무방하다. 내가 만약 /public/images/abc.png 라는 파일을 접근하고 싶다면 localhost:8080/images/abc.png 로 접근..
XML로 설정되어 있던 spring web application context를 Java Config 로 변환하는 과정에 오류가 발생하였다. java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running ..
Springboot 기동시 콘솔의 아래와 같은 메세지가 나오고 시작이 정상적으로 되지 않는 경우가 있다. The Class-Path manifest attribute in [path]/xxxx.jar referenced one or more files that do not exist어플리케이션은 정상적으로 작동하는데 이 오류 메세지들이 거슬린다. 이 오류가 나기전 필자가 한 작업은 두개의 프로젝트를 하나로 병합을 했다. 원인병합(Merge)이 되며 프로젝트에 설정해 놓은 spring-boot-devtools의 설정이 꼬였다. 해결spring-boot-devtools dependency를 제거하고 재시작을 한다. spring-boot-devtools 내부적으로 가지고 있던 값들이 꼬이면서 발생한 문제인것 ..