Programming
-
Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. IntelliJ에서 Converter 테스트 중 발생한 오류 환경 및 버전: Mac OS, IntelliJ IDEA, Java 17, Spring Boot 3.2.1 서버 실행하여 맵핑한 url로 데이터를 넘기는데 파라미터를 제대로 인식하지 못한 것으로 보임 -> 매개변수 이름 인식 문제 오류 내용 Name for argument of type [java.lang.Integer] not spec..
Name for argument of type [java.lang.Integer] not specified (+ 프로젝트 실행 오류와 파라미터 인식 문제 해결)Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag. IntelliJ에서 Converter 테스트 중 발생한 오류 환경 및 버전: Mac OS, IntelliJ IDEA, Java 17, Spring Boot 3.2.1 서버 실행하여 맵핑한 url로 데이터를 넘기는데 파라미터를 제대로 인식하지 못한 것으로 보임 -> 매개변수 이름 인식 문제 오류 내용 Name for argument of type [java.lang.Integer] not spec..
2024.01.14 -
프로그램의 오류 프로그램의 실행 중 오작동 또는 비정상적 종료를 야기하는 원인을 프로그램 에러 또는 오류라고 한다. 이는 발생 시점에 따라 컴파일 에러와 런타임 에러로 나눌 수 있다. 컴파일 에러: 컴파일 시 발생하는 에러 런타임 에러: 실행 시 발생하는 에러 코드의 오타나 잘못된 구문 등 기본적인 검사를 컴파일 시 수행하여 오류가 있으면 컴파일이 실행되지 않는데, 이것이 컴파일 에러다. 물론 컴파일을 성공적으로 마쳐도 프로그램이 실행되는 도중 발생할 수 있는 오류가 있고 이것을 런타임 에러라 하며, 크게 Error와 Exception 두 가지로 분류할 수 있다. 에러(Error): 프로그램 코드에 의해 수습될 수 없는 심각한 오류 예외(Exception): 프로그램 코드에 의해 수습될 수 있는 다소 미..
Java의 예외 - Checked 예외와 Unchecked 예외프로그램의 오류 프로그램의 실행 중 오작동 또는 비정상적 종료를 야기하는 원인을 프로그램 에러 또는 오류라고 한다. 이는 발생 시점에 따라 컴파일 에러와 런타임 에러로 나눌 수 있다. 컴파일 에러: 컴파일 시 발생하는 에러 런타임 에러: 실행 시 발생하는 에러 코드의 오타나 잘못된 구문 등 기본적인 검사를 컴파일 시 수행하여 오류가 있으면 컴파일이 실행되지 않는데, 이것이 컴파일 에러다. 물론 컴파일을 성공적으로 마쳐도 프로그램이 실행되는 도중 발생할 수 있는 오류가 있고 이것을 런타임 에러라 하며, 크게 Error와 Exception 두 가지로 분류할 수 있다. 에러(Error): 프로그램 코드에 의해 수습될 수 없는 심각한 오류 예외(Exception): 프로그램 코드에 의해 수습될 수 있는 다소 미..
2024.01.14 -
Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 검증 애너테이션의 종류와 설명을 볼 수 있다. Bean Validation 사용 방법 1. 의존관계 추가 Bean Validation을 사용하려면 우선 build.gradle에 의존관계를 추가해야 한다. 추가 후 refresh하는 것도 잊지 않도록 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 적용 의존관계를 추가하면 @NotNull, @Range 등 검증과 관련된 애너테이션을 사용할 수 있다. 테스트용으로 ..
[Spring Boot] Bean Validation - 검증 기능 사용 방법Bean Validation이란? 회원가입 등 특정 필드에 대한 검증 로직을 모든 프로젝트에 적용할 수 있도록 표준화 한 것으로, 애너테이션을 사용하여 쉽게 검증 기능을 구현할 수 있다. 여기에서 다양한 검증 애너테이션의 종류와 설명을 볼 수 있다. Bean Validation 사용 방법 1. 의존관계 추가 Bean Validation을 사용하려면 우선 build.gradle에 의존관계를 추가해야 한다. 추가 후 refresh하는 것도 잊지 않도록 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 적용 의존관계를 추가하면 @NotNull, @Range 등 검증과 관련된 애너테이션을 사용할 수 있다. 테스트용으로 ..
2024.01.05 -
에러 내용 PermittedSubclasses requires ASM9 발생 상황 Spring Boot 외부 소스 코드를 다운 받아 실행하는데 버전이 맞지 않아 JDK 17 기준으로 설정을 바꾸었고(변경 전 11) 정상적으로 실행되는 것을 확인했다. 이후 h2 db와 연동하기 위해 build.gradle에 설정을 추가하는 중 에러가 발생했다. 문제 해결 버전 업그레이드를 위해 Settings와 build.gradle에서만 설정을 해줬는데 한가지 설정이 더 필요했다. /gradle/wrapper/gradle-wrapper.properties에서 gradle의 버전을 7.6으로 변경한다. 버전을 변경하면 해당 버전에 맞게 다운로드가 진행된다. 다시 실행해보면 정상적으로 실행되는 것을 확인할 수 있다.
[Spring Boot] PermittedSubclasses requires ASM9 에러에러 내용 PermittedSubclasses requires ASM9 발생 상황 Spring Boot 외부 소스 코드를 다운 받아 실행하는데 버전이 맞지 않아 JDK 17 기준으로 설정을 바꾸었고(변경 전 11) 정상적으로 실행되는 것을 확인했다. 이후 h2 db와 연동하기 위해 build.gradle에 설정을 추가하는 중 에러가 발생했다. 문제 해결 버전 업그레이드를 위해 Settings와 build.gradle에서만 설정을 해줬는데 한가지 설정이 더 필요했다. /gradle/wrapper/gradle-wrapper.properties에서 gradle의 버전을 7.6으로 변경한다. 버전을 변경하면 해당 버전에 맞게 다운로드가 진행된다. 다시 실행해보면 정상적으로 실행되는 것을 확인할 수 있다.
2023.12.26 -
Spring MVC - HttpSession HttpSession은 서블릿이 제공하는 일종의 쿠키로, `Cookie : JSESSIONID=3LKSAJFKJ20298349028SD9F0`과 같이 랜덤값으로 설정되며 주로 로그인 처리를 위해 사용한다. 세션에 로그인한 사용자의 정보를 넣어두고 사용하는 것이다. 컨트롤러에서 세션 사용하기 1. 세션에 값 담기 컨트롤러의 파라미터로 `HttpServletRequest`를 받아 `request.getSession()`으로 세션을 생성할 수 있다. @PostMapping("/login") public String login(@ModelAttribute User user, HttpServletRequest request) { (검증 로직 생략) HttpSession..
Session에 대해서 - 컨트롤러에서 HttpSession 사용하기Spring MVC - HttpSession HttpSession은 서블릿이 제공하는 일종의 쿠키로, `Cookie : JSESSIONID=3LKSAJFKJ20298349028SD9F0`과 같이 랜덤값으로 설정되며 주로 로그인 처리를 위해 사용한다. 세션에 로그인한 사용자의 정보를 넣어두고 사용하는 것이다. 컨트롤러에서 세션 사용하기 1. 세션에 값 담기 컨트롤러의 파라미터로 `HttpServletRequest`를 받아 `request.getSession()`으로 세션을 생성할 수 있다. @PostMapping("/login") public String login(@ModelAttribute User user, HttpServletRequest request) { (검증 로직 생략) HttpSession..
2023.12.21 -
SOLID란? 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 시간이 지나도 유지 보수와 확장이 용이한 시스템을 만들 때 적용한다. 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략에 속한다. SRP, OCP, LSP, ISP, DIP의 앞 문자를 따서 SOLID라 칭한다. S(SRP) 단일 책임 원칙(Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 함 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이라 할 수 있음 다른 객체 지향 원리를 적용하는 기초 ex) UI 변경, 객체의 생성과 사용 등 각각의 역할과 기능 분리 O(OCP) 개방-폐쇄 원칙(Open/Closed Principle) 소프트웨어 요소는 확장에는 열려 ..
객체 지향 설계의 5가지 원칙 - SOLIDSOLID란? 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 시간이 지나도 유지 보수와 확장이 용이한 시스템을 만들 때 적용한다. 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략에 속한다. SRP, OCP, LSP, ISP, DIP의 앞 문자를 따서 SOLID라 칭한다. S(SRP) 단일 책임 원칙(Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 함 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이라 할 수 있음 다른 객체 지향 원리를 적용하는 기초 ex) UI 변경, 객체의 생성과 사용 등 각각의 역할과 기능 분리 O(OCP) 개방-폐쇄 원칙(Open/Closed Principle) 소프트웨어 요소는 확장에는 열려 ..
2023.12.14 -
에러 내용 Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended IntelliJ에서 프로젝트를 실행하면 계속 발생했다. 심지어 항상 뜬다기보다는 어떤 프로젝트에서는 계속 뜨다가 새 프로젝트에서는 안 뜨기도 하고..? 검색해 보니 에러라기보다는 경고 메시지로 실제 실행하고 동작하는 데에는 문제가 없다고 하지만 그냥 저 메시지 자체가 뜨지 않았으면 했다. 해결 방법 많은 사람들이 Settings > Build, Execution, Deployment > Debugger > Async Stack Traces에서 Ins..
Java HotSpot(TM) 64-Bit Server VM warning 해결에러 내용 Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended IntelliJ에서 프로젝트를 실행하면 계속 발생했다. 심지어 항상 뜬다기보다는 어떤 프로젝트에서는 계속 뜨다가 새 프로젝트에서는 안 뜨기도 하고..? 검색해 보니 에러라기보다는 경고 메시지로 실제 실행하고 동작하는 데에는 문제가 없다고 하지만 그냥 저 메시지 자체가 뜨지 않았으면 했다. 해결 방법 많은 사람들이 Settings > Build, Execution, Deployment > Debugger > Async Stack Traces에서 Ins..
2023.12.11 -
Spring 3.2.0과 Java 17 버전으로 프로젝트를 새로 생성하여 실행했는데, 실행 자체는 문제가 없었지만 콘솔에 아래와 같은 메시지가 출력되었다. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_l..
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.Spring 3.2.0과 Java 17 버전으로 프로젝트를 새로 생성하여 실행했는데, 실행 자체는 문제가 없었지만 콘솔에 아래와 같은 메시지가 출력되었다. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_l..
2023.12.11