반응형 SpringFramework | SpringBoot32 Spring에서 정적 리소스 서버 재기동 없이 바로 적용하는법 Intellij / Gradle / SpringFrameWork 에서 View 리소스 서버 재기동 없이 바로 적용하는법에 대하여 알아보겠습니다. 1. build.gradle 파일의 dependencies 안에 아래 내용을 추가해준다. dependencies { 중략... //html 서버 재기동 없이 적용 developmentOnly 'org.springframework.boot:spring-boot-devtools' } 2. application.properties 파일에 아래 내용을 추가해준다. #서버 재기동없이 HTML 적용 spring.devtools.livereload.enabled=true spring.devtools.restart.enabled=false spring.thymeleaf.cac.. 2023. 12. 22. ThreadLocal 과 동시성 문제 ThreadLocal 1. 동시성 문제 싱글톤으로 등록된 스프링 빈을 사용할 때 생각을 안할 수 없는 것은 바로 동시성 문제이다. FieldLogTrace 라는 싱글톤으로 등록된 스프링 빈이 있다. 이 객체의 인스턴스가 애플리케이션에 딱 1개만 존재한다는 뜻이다. 이렇게 하나만 있는 인스턴스의 FieldLogTrace.traceIdHolder(필드)를 여러 쓰레드가 동시에 접근한다면 어떤 문제가 발생할까? , 이러한 문제가 바로 동시성 문제이다. 실무에서 한번 나타나면 개발자를 가장 괴롭히는 문제이기도한데, 이러한 동시성 문제를 해결하기 위해 쓰레드 로컬을 사용할 수 있다. 쓰레드 로컬에는 중요한 주의사항이 있는데, 사용후에 반드시 remove해줘야한다는 것이다. 그렇지 않으면 사용한 쓰레드가 삭제되지않.. 2023. 12. 12. Spring 서버에서 예외발생시의 흐름과 뷰 선택 우선순위 Spring 서버에서 예외발생시의 흐름과 뷰 선택 우선순위 ## 서버에서 예외발생시에 흐름 1. WAS(여기까지 전파) 컨트롤러(/error- page/500) -> View - 과거에는 뷰의 위치를 xml로 작성하였으나, 스프링 부트 사용후에는 디폴트위치가 템플릿 아래 error폴더이다. ---- ## 뷰 선택 우선순위는 다음과 같다. [BasicErrorController] 1.뷰템플릿 - resources/templates/error/500.html - resources/templates/error/5xx.html 2.정적리소스(static,public) - resources/static/error/400.html - resources/static/error/404.html - resources/s.. 2023. 12. 11. 템플릿 메소드 패턴과 팩토리 메소드 패턴의 차이점 템플릿 메소드 패턴과 팩토리 메소드 패턴의 차이점을 표로 알아보겠습니다. 종류 구조 패턴 생성 패턴 목적 알고리즘의 구조를 정의하고 일부 단계를 서브 클래스에서 재정의하기 위함 객체 생성을 위한 인터페이스를 제공하고 하위 클래스에서 객체를 생성하기 위함 주요 기능 공통된 알고리즘의 구조를 정의하고 하위 클래스에서 일부 단계를 구현할 수 있도록 함 객체 생성에 대한 인터페이스를 제공하고, 실제 객체 생성은 하위 클래스에서 수행 역할 분담 상위 클래스에서 알고리즘의 구조를 정의하고 일부 단계를 구현, 하위 클래스에서 오버라이딩 상위 클래스에서 인터페이스를 정의하고, 하위 클래스에서 실제 객체를 생성 사용 시점 동일한 알고리즘 구조를 가진 여러 클래스들 간의 중복을 제거할 때 사용 객체 생성 프로세스를 캡슐화.. 2023. 12. 6. SpringFramework + Oracle + Mybatis의 기본적인 CRUD에 대하여 알아보자_2 SpringFramework + Oracle + Mybatis의 기본적인 CRUD에 대하여 알아보자_2 1. 우선 결과 모습을 동영상으로 먼저 보겠습니다. - 만들어볼 기능 - 회원 추가 [ create - insert ] - 회원 전체 리스트 조회 [ read - select ] - 회원 특정 리스트 조회 [ 검색 ] - 회원 정보 변경 [ update ] - 회원 삭제 [ delete ] 2. - config 디렉토리내에 MyBatisConfig 파일은 어노테이션으로 컨피그레이션 선언이 되어있으며, MemberService와 MemberRepository에 빈을 주입해준다. @Configuration @RequiredArgsConstructor public class MyBatisConfig { pr.. 2023. 12. 5. SpringFramework + Oracle + Mybatis의 기본적인 CRUD에 대하여 알아보자_1 SpringFramework + Oracle + Mybatis의 기본적인 CRUD에 대하여 알아보자_1 [ 세팅편 ] 1. build.gradle 과 application.properties에 아래와 같이 Mybatis 세팅을 해준다. - build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.prepot' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } repositories { mavenCentral() } depen.. 2023. 12. 3. 이전 1 2 3 4 5 6 다음 반응형