Java Java/Spring 2024. 4. 12. jsp 파일 경로를 읽지 못하는 "Error resolving template, template might not exist or might not be accessible by any of the configured Template Resolvers" 오류 이 문서의 내용테스트 환경 및 주요 아젠다더보기더보기이 프로젝트의 개발 환경주요 개발 환경 및 언어Springframework.boot 2.5.4OpenJDK 17기타 환경IntelliJ IDE 2020.3.4 Ultimate Edition요청이 Controller로 매핑되고 있으나 templateResolver가 jsp 파일 경로 읽지 못하고 Error resolving template [greeting], template might not exist or might not be accessible by any of the configured Template Resolvers 오류가 발생합니다.There was an unexpected error (type=Internal Server Error, st.. Java/Java SE, EE 2024. 2. 8. 인터페이스를 구현하는 *Impl, 관습적인 추상화에 대한 이해 이 문서의 내용 Impl 클래스란? 자바의 여러 라이브러리의 구현 내용을 살펴보면 *Impl.class와 같은 네이밍의 파일을 종종 볼 수 있습니다. public class ParserImpl implement Parser { ... } 정확한 명칭은 없으나 편의상 Impl 클래스라고 부르며, 인터페이스를 구현(Implementation)하는 클래스의 의미로 사용합니다. 자바에서 많이 사용되는 관습적인 추상화에 불과하며 다른 언어 환경 또는 다른 네이밍으로 Impl 클래스를 사용해도 무관합니다. 첫 번째 목적: 인터페이스로부터 구현체를 독립 Impl 클래스를 사용하는 이유는 인터페이스와 구현 코드를 분리함으로써 구현체를 독립적으로 확장하기 위함입니다. public interface Parser { pub.. Java/Spring 2024. 1. 4. Spring 5 입문: Chapter 10. 스프링 MVC 프레임워크 동작 방식 더보기 참고 문서 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문 이 블로그의 문서: Chapter 09. 스프링 MVC 시작하기 이 문서의 내용 더보기 이 프로젝트의 개발 환경 개발 언어 및 개발 환경 OpenJDK 12 Spring: spring-webmvc 5.0.2.RELEASE Tomcat: tomcat-jdbc: 8.5.27 Gradle 7.3 기타 환경 macOS Sonoma 14.1.1 IntelliJ IDEA 2020.3 Ultimate Edition 더보기 예제에 앞서 이 블로그의 문서: Chapter 09. 스프링 MVC 시작하기를 선행합니다. 스프링 MVC 핵심 구성 요소 스프링 MVC 구현은 DispatcherServlet을 구성하고 컨트롤러와 JSP를 작성하는 과정입니다. HT.. Java/Spring 2024. 1. 3. "No annotated classes found for specified class/package" 오류와 함께 dispatcher가 URI와 매핑된 컨트롤러를 찾지 못하는 문제 이 문서의 내용 테스트 환경 및 주요 아젠다 더보기 이 프로젝트의 개발 환경 개발 언어 및 환경 OpenJDK 12 Spring: spring-mvc: 5.0.2.RELEASE Tomcat: tomcat-jdbc: 8.5.27 Gradle 7.3 기타 환경 macOS Sonoma 14.1.1 IntelliJ IDEA 2020.3 Ultimate Edition DispatcherServlet이 URI와 매핑된 컨트롤러를 찾지 못하고 있습니다. 관련 오류 메시지는 다음과 같습니다. org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping found for HTTP request with URI {URI 경로} in Dispatch.. Java/Spring 2024. 1. 3. Spring 5 입문: Chapter 09. 스프링 MVC 시작하기 더보기 참고 문서 초보 웹 개발자를 위한 스프링 5 프로그래밍 입문 이 블로그의 문서: Chapter 08B. JdbcTemplate을 사용한 업데이트 SQL, 트랜잭션 GitHub: 이 프로젝트의 리포지토리(spring5fs-chap09) 이 문서의 내용 더보기 이 프로젝트의 개발 환경 개발 언어 및 개발 환경 OpenJDK 12 Spring: spring-webmvc 5.0.2.RELEASE Tomcat: tomcat-jdbc: 8.5.27 Gradle 7.3 기타 환경 macOS Sonoma 14.1.1 IntelliJ IDEA 2020.3 Ultimate Edition 더보기 스프링 MVC는 WAS 개발을 위한 스프링의 핵심 프레임워크입니다. 예제에 앞서 이 블로그의 문서: Chapter 08B... Java/Spring 2024. 1. 3. 스프링의 MVC 구조와 기본 개념 더보기 참고 문서 docs.spring.io: Web MVC framework 이 문서의 내용 더보기 MVC는 웹 애플리케이션을 개발할 때 사용하는 디자인 패턴입니다. 애플리케이션의 개발 영역을 크게 모델(Model) 뷰(View) 컨트롤러(Controller)로 구분하고 각 역할에 맞는 개발을 요구합니다. MVC 패턴을 도입했을 때의 가장 큰 장점은 UI와 도메인(비즈니스 로직) 영역을 독립적으로 개발 할 수 있다는 점입니다. 모델(Model) Spring MVC 기반의 웹 애플리케이션은 클라이언트의 요청이 들어오면 비즈니스 로직을 수행합니다. 이때 클라이언트에게 알려주기 위한 로직의 수행 결과를 저장하는 데이터를 모델이라고 부릅니다. 뷰(View) 모델을 사용하여 웹 브라우저에서 처럼 눈에 보이는 .. Java/Java SE, EE 2023. 12. 27. Windows에서 OpenJDK 17 버전 설치 더보기 참고 문서 이 블로그의 문서: MacOS에서 OpenJDK 17버전 설치 이 문서의 내용 Step 1: OpenJDK 17 설치 파일 다운로드 jdk.java.net에 접속하여 OpenJDK 17버전 압축 파일을 다운로드합니다. 다운로드한 파일을 임의의 디렉토리(지속적으로 사용할 수 있는)에서 압축 해제합니다. 예시에서는 C:\Java 경로에 압축 해제하였습니다. Step 2: 환경 변수 등록 자바 환경 변수 등록을 진행합니다. 시작 | 시스템 환경 변수 편집 검색 | 시스템 환경 변수 편집으로 이동합니다. 고급 | 환경 변수로 이동합니다. 시스템 변수에서 JAVA_HOME을 추가합니다. 구분 비고 변수 이름 JAVA_HOME JAVA_HOME 이름으로 된 시스템 변수를 입력합니다. 변수 값 C:.. Java/Spring 2023. 12. 19. REQUIRES_NEW 사용 시 외부, 내부 트랜잭션의 독립 실행 테스트 더보기 참고 문서 이 블로그의 문서: 트랜잭션 전파(Transaction propagation)에 대한 이해 이 문서의 내용 더보기 REQUIRES_NEW는 외부 트랜잭션과 내부 트랜잭션이 서로 독립된 물리 트랜잭션을 구성합니다. 따라서 이론적으로는 내부 트랜잭션에서 롤백이 발생하더라도 외부 트랜잭션에 영향을 주지 않습니다. 실제로도 외부 트랜잭션과 독립적으로 동작하는지 테스트합니다. 테스트 코드 작성 및 동작 확인 설정 클래스에서 OuterTransaction과 InnerTransaction 두 개의 Bean을 등록합니다. 외부 트랜잭션에서는 전파 속성으로 REQUIRED를 지정합니다. 그리고 트랜잭션 범위로 지정된 메소드에서는 내부 트랜잭션 메소드를 호출합니다. public class OuterTra.. Java/Spring 2023. 12. 18. 트랜잭션 전파(Transaction propagation)에 대한 이해 더보기 참고 문서 docs.spring.io: Transaction Propagation 이 문서의 내용 더보기 스프링에서 제공하는 @Transactional의 가장 큰 장점은 여러 개의 트랜잭션을 묶어서 하나의 트랜잭션 경계를 구성 할 수 있다는 점입니다. 이때 기존의 트랜잭션에 이어서 추가적인 트랜잭션을 열게 되는 경우가 있습니다. public class OuterTransaction { protected InnerTranscation inner; @Transactional public void outer() { inner.inner(); } } public class InnerTranscation { @Transactional public void inner() { } } 위 코드에서는 outer(.. 이전 1 2 3 4 ··· 12 다음