본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot27

스프링부트에서 모바일에 따른 뷰 페이지(Springboot mobile view) 스프링부트에서 사용자가 접속한 브라우저를 확인하여 개발한 웹 페이지를 구분하는 기능을 제작하고 있었습니다. 일반 브라우저면 a.html을 보여주고, 모바일이면 b.html을 보여주는 기능이였습니다. 그래서, 어떠한 라이브러리를 쓸지 구글링을 좀 했는데... 2가지 정도 무언가 좋아보이는 라이브러리를 찾았습니다. - 1번 : spring-mobile-device - 2번 : spring-mobile-starter 메이븐(maven) 저장소에 가서 해당 스펙을 좀 확인하려했는데.. 2022년 10월 12일 기준으로 2개의 라이브러리 전부 취약점(CVE)이 떡하니 등록되어 있었습니다.. 특히 spring-mobile-starter는 정말 쓰면 안될거 같습니다...CVE 코드가 200개가 넘었으니 이건... 아.. 2022. 10. 12.
TemplateInputException An error happened during template parsing(타임리프 오류) 개발도구로 잘 돌아가던 프로젝트가 빌드한 이후에 아래와 같은 오류가 발생하였습니다. 해당 이유로는 타임리프(thymeleaf)가 스프링 부트 내부에서 어디로 갈지 길을 못찾는(?) 원인에서 발생한 문제 입니다. 이를 해결하기 위해서 2가지를 확인해야 합니다. 1. application.properties 프로퍼티에서 prefix 값으로 타임리프에게 바라볼 경로를 지정 해 주었는지 확인합니다. spring.thymeleaf.prefix=classpath:templates/ ### 2022. 7. 22.
Spring boot thymeleaf layout decorate(layout decorate가 동작하지 않을 때) 스프링 부트에서 대표적인 뷰 프레임워크인 타임리프(thymeleaf)를 오랜만에 적용하여 보았습니다. * SPA 기술의 발전으로 점점 안쓰게 되지 않을 까 합니다..ㅎ; 구글링하여 진도를 잘 빼고 있는데 아래 코드를 만들 때 문제가 발생 하였습니다. member page "layout : decorate" 부분에서 등록되야하는 템플릿이 나타나지 않는 것 이였습니다. 이것저것 찾아서 바꾸어 보았지만 결과는 그냥 단순한 페이지만 나올 뿐 이였습니다. 그나마 "layout : fragment"는 잘 동작하고 있으며 "th : replace" 같은 지시어도 잘 동작하였습니다. 무언가 설정을 안하거나 라이브러리를 빼먹었다는 결론에 도달한 이후 이것저것 찾다가.. layout 속성에 필요한 라이브러리를 추가하지 않.. 2022. 7. 22.
Spring boot Security(스프링부트 시큐리티) 스프링 프레임워크에서 로그인과 관련된 라이브러리 중 가장 많이 사용되는 라이브러리(프레임워크)는 시큐리티(Security)라 할 수 있습니다. xml 파일을 통하여 구현 하거나 또는 Java 코드를 통하여 로그인과 관련된 기능을 정의할 수 있습니다. 주관적인 생각이지만 xml 에서 사용하는 방법 보다는 Java코드를 통하여 만드는 방법이 좀 더 쉬운 것 같습니다. 스프링 부트에서도 시큐리티 설정을 위한 작업 순서를 정하여 봅니다! 1. 라이브러리 추가 2. 시큐리티에서 로그인 후 사용가능한 페이지 설정, 로그인 없이 사용가능한 페이지 설정 3. 시큐리티가 사용할 가치 있는 객체(Value of Object) 설정 4. 시큐리티가 데이터베이스에 연결하여 사용할 서비스 설정 위 4가지 단계에 맞추어 작성하여.. 2022. 6. 22.
간단하게 구성하는 SpringBoot Websokcet server(스프링부트 웹소켓 서버) 스프링부트에서 웹소켓 서버 환경을 구성하는 아주 간단하고 빠른 방법 입니다. 프로젝트 자체가 당연히 웹 서버 기반으로 기초 환경구성이 되어야 하겠습니다. 필요한 의존성 라이브러리는 딱 1개 입니다. * gradle 기준 implementation 'org.springframework.boot:spring-boot-starter-websocket' * mavne 기준 org.springframework.boot spring-boot-starter-websocket 첫번째 단계로는 어떠한 요청에 대해서 서버가 응답할지를 결정하는 설정파일을 작성하는 것 입니다. WebSocketConfigurer 인터페이스를 상속받는 설정 클래스를 만들어 줍니다. import org.springframework.context.. 2021. 12. 27.
QuartzJobBean에서 ApplicationContext을 통해 서비스(Bean) 받기 스프링 부트에서의 스케줄과 관련된 대표적인 라이브러리인 쿼츠(Quartz)설정은 매우 간단 합니다. maven 또는 gradle에서 라이브러리를 추가하는 것 만으로도 쿼츠(Quartz)와 관련된 객체가 자동으로 어플리케이션 영역에 생성되기 때문입니다. 스케줄을 실행하는 대표적인 Job클래스의 형태를 먼저 살펴보겠습니다. import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class JobScheduler extends QuartzJobBean { @Override protected void exe.. 2021. 11. 26.