잘 돌아가던 springboot 1.x 기반의 웹프로젝트를 사용하다가 msa 관련 지원이 더 유연한 springboot 2.x 로 전환을 해야 했다. springboot 2.x 로 migration을 하려면 생각보다 많은 부분을 봐야 한다. 기본 spring의 버전도 4.x에서 5.x로 바뀌고 이에 따른 종속성 이슈도 잘 살펴봐야 한다. 다행히 이 웹프로젝트는 spring versions[up 에 따른 이슈는 크게 없었다. 나중에 migration 한 부분을 정리하며 자세히 설명하겠다. 기타 spring 5.x 로 바꿈에 따른 종속성 이슈들을 없애고 서버 기동을 하자 잘 되나 싶었는데 spring security 관련된 ObjectPostProcessor 를 찾지 못했고 이걸 너의 설정에 넣어줘야 한다...
프로젝트를 수행함에 있어 오픈시 가장 크리티컬한 문제이기도 하고 자주 문제가 발생하는 부분인 Transaction 오류에 관련된 내용을 정리해본다. Transaction이 잘 수행되다가 사용자가 몰리면 DB가 죽는경우 Spring Framework를 사용하는 경우라면 Transaction을 Spring Container 안에서 설정을 해야 한다. (선언적 트랜잭션) 선언적 트랜잭션 중 XML 선언방식을 사용할 때 잘못된 예와 잘 설정된 예를 보자면 * 잘못된 예 * 잘 설정된 예 위의 안좋은 예는 현재 모든 서비스 구현체 클래스 안의 모든 메소드에 대해서 트랜잭션을 수행하도록 설정이 되어 있다. 이는 매우 비효율적인 방법으로 성능에 안좋은 영향을 미친다. 조회문이 트랜잭션을 생성한다면 사람이 많아지면 트..
Springboot 환경에서 web.xml 의 jsp-config 사용하기 (w.SpringBootServletInitializer) 일전에 똑같은 주제에 대해 글을 썼었는데 더 괜찮은 방법이 있어서 다시 글을 작성해본다. 적용방법은 아주 간단하다. web.xml *.jsp UTF-8 false /WEB-INF/jsp/common/c.. oingdaddy.tistory.com 더 괜찮은 방법이 있어서 아래의 글보다는 이 글을 참조하길 바란다. 기존의 프로젝트를 springboot 전환 과정에서, 모든 jsp에서 include하고 있는 공통 jsp 파일에 대해 전환하는 부분을 찾기 힘들었다. stackoverflow 같은곳에서 도움을 얻고자 열심히 찾아보았지만 jsp 자체가 springboot 표준이 아니..
springboot를 기동을 시작하면 제일 먼저 다음 문구가 나오는것을 확인할 수 있다. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.4.2.RELEASE) [12:24:20.819][INFO ][sample.Application.logStarting:line48] - Starting Application 이런것을 banner(배..
spring에서 transaction propagation 은 전파옵션을 뜻한다. 전파옵션이라는 것은 트랜잭션을 시작하거나 기존 트랜잭션에 참여하는 방법에 대해 결정하는 속성값 정도로 생각하면 된다. 즉 큰 트랜잭션의 흐름을 컨트롤 하는 옵션이라는 것이다. Transaction Propagation의 종류는 다음과 같다. · REQUIRED (default) : 이미 시작된 트랜잭션이 있으면 참여하고 없으면 새로 시작한다. · REQUIRES_NEW : 항상 새로운 트랜잭션을 시작한다. 이미 진행 중인 트랜잭션이 있으면 트랜잭션을 잠시 보류시킨다. · SUPPORTS : 이미 시작된 트랜잭션이 있으면 참여하고, 없으면 트랜잭션없이 진행한다. · NESTED : 중첩된 트랜잭션은 먼저 시작된 부모 트랜잭션..
수많은 삽집을 해가며 결국에는 전환에 성공을 했다. 아주 초간단으로 최소한의 것들만 바꾸고 전환한거라 앞으로 할일(applicationContext의 java config 전환, spring properties 활용 등)도 많지만 그래도 기쁜 마음으로 빌드 및 실행을 해본다. 물론 실행은 전환을 하는 과정에 수도 없이 해봤다. 이클립스의 boot dashboard를 통해서 돌렸을때는 잘 동작을 한다. 주르르륵 올라가는 로그를 보면 참 뿌듯하다. 사실은 별로 많이 바꾼게 없는데 springboot가 알아서 바꿔준 부분도 많은데 혼자서 이것저것 다 만들어보고 고생해서 한거라 더 감격스러웠다. 이제 마지막 단계가 남았다. 이걸 서버에서 돌리기 위해 war로 말아줘야 하고 또 그걸 실행을 시켜야 한다. 기존의 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 2020/05/14 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (3) - 파일 추가 및 변경 중요한 전환은 이제 다 마쳤고 이제 springboot에서 logback을 사용하는 방법에 대해 알아보자. AS-IS framework에서도 logging framework는 logback을 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 앞서 springboot 전환을 하는데 있어서 필요한 pom.xml 변경, web.xml 변경에 대해서 살펴봤다. 이번 챕터는 springboot 전환에 따라 어떤 파일이 추가 및 변경이 되어야 하는지에 대한 기술을 하겠다. 일단 가장 먼저 다뤄야할 부분은 앞서도 나왔지만 springboot 메인 클래스를 만들어야 한다. Application.java @SpringB..