반응형
공부/Spring2024. 6. 26. 21:36Spring boot 3.x + Security 6.x + @WebMvcTest 회고

상세 버전- spring boot 3.2.0- security 6.2.0 상황, 원인 분석security 추가하면서 잘 돌아가던 @WebMvcTest가 시원하게 403 Forbidden 에러 출력하였다 @WebMvcTest(value = MemberController.class)class MemberControllerWebMvcTest { @Autowired private MockMvc mockMvc; @Autowired private ObjectMapper objectMapper; @MockBean private MemberUseCase memberUseCase; @Test void 회원가입_성공하면_아이디값을_반환한다() throws Exception { ..

[Java] Optional 클래스 메서드 (자바의 정석)
공부/Java2023. 8. 1. 17:34[Java] Optional 클래스 메서드 (자바의 정석)

NullPointerException(NPE)- Null 상태인 오브젝트를 레퍼런스할 때 발생 - Runtime error 이기 때문에 실행 전까지 발생 여부를 알기 쉽지 않음 Runtime 환경에서 에러가 발생할 경우, 심할 경우 서버 다운까지 가능하므로 발생시 리소스 비용이 만만치 않음 "Null pointer를 발명한 것은 나의 10억불짜리 실수였다" - Tony Hoare (출처 wikipedia)I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references ..

공부/Spring2022. 6. 19. 22:48[JUnit] org.junit.runners.model.InvalidTestClassError: Invalid test class

개요 udemy 에서 junit test 인강 강의 듣던 중 해당 에러 발생 org.junit.runners.model.InvalidTestClassError: Invalid test class (이하 생략) 해결 방법 @Test 의 import 가 틀렸음 import org.junit.Test; ✨ //import org.junit.jupiter.api.Test; 💣참고 https://stackoverflow.com/questions/24319697/java-lang-exception-no-runnable-methods-exception-in-running-junits

공부/Spring2022. 6. 12. 11:55[ERROR] org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception

개요 spring batch clone project 테스트 하면서 공공 API xml 데이터 parsing 테스트 진행 dto 객체에 mapping 처리 해주는 과정에서 jaxb 에러 발생 에러 Caused by: org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception; nested exception is com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 13 counts of IllegalAnnotationExceptions (생략) 클래스에 동일한 이름 "year"을(를) 사용하는 속성이 두 개 있습니다. this problem is related to the fo..

공부/Spring2022. 4. 20. 11:12[Spring] @RequestMapping pathvariable regex - exclude word , 표현식 사용해서 path에 특정단어 들어 올 경우 제외시키기

문제 페이지 작업 중에 URL이 겹치는 부분이 발생해서 원하는 view 로 이동하지 않는 것을 확인함 /* # 예시 - /log/index 입력시 로그와 관련된 index 페이지로 가기 원하지만 - (문제) 아래에 PathVariable({service}) 부분에 다 걸려버림 */ @RequestMapping(/{service}/index) // log 단어를 제외하고 여기에 다 걸렸으면 좋겠음 public String index(){ return "index" } @RequestMapping(/log/index) //내가 원하는 곳 public String logPage() { return "index" } 정보 찾아보니 표현식으로 필터링 가능하다는 것을 확인함 ! 해결 정규 표현식(regex) 사용해..

[Spring] JVM 구조와 Garbage Collection(GC)
공부/Spring2021. 11. 30. 11:01[Spring] JVM 구조와 Garbage Collection(GC)

JVM(Java Virtual Machine) - 컴파일된 *.class 파일을 읽어 실행하고 운영체제의 메모리 영역에 접근하여 메모리 관리(GC) 수행하는 프로그램 - JDK > JRE > JVM ( JDK 안에 JRE와 JVM이 포함되어 있음 ) - 운영체제에 맞는 JVM 설치만 하면 자바 프로그램 실행 가능 JVM 구조 - Class Loader 생성된 class 파일을 Runtime Data Area에 적재하는 역할 - Execution Engine 메모리에 적재된 클래스를 기계어로 변경해 명령어 단위로 실행하는 역할(인터프리터, JIT방식) - G.C(Garbage Collection) heap 메모리 영역에 생성된 객체 중 reachability를 잃은 객체를 탐색 후 제거함 - Runtime..

[Spring]  Http Request에 대한 DispatcherServlet 동작과정
공부/Spring2021. 11. 13. 22:47[Spring] Http Request에 대한 DispatcherServlet 동작과정

DispatcherServlet 동작과정 @Controller 인 경우 ① Client(사용자)에서 브라우저 통해 Http Request 보내면 DispatcherServlet이 받음 ② HandlerMapping한테 지시하여 Http Request URI에 맞는 Handler(Controller)를 찾음 ③ 해당 Handler를 실행할 수 있는 HandlerAdapter를 탐색 ④ 찾은 HandlerAdapter를 사용해서 Handler Method를 실행 ⑤ 개발자가 만든 비즈니스 로직을 수행 후 View name(ex. "index")과 model (key, value 형태) 반환받음 ⑥ DispatcherServlet은 ViewResolver 에게 View name전달하여 해당 View 파일을 찾..

공부/Spring2021. 10. 11. 13:03[gradle] General error during semantic analysis: Unsupported class file major version 60 에러

상황 (2021.10.11) '빠른 학교' 인강을 듣던 중에 gradle.build에 의존 라이브러리 추가했는데 다음과 같은 에러가 출력됨 에러 로그 General error during semantic analysis: Unsupported class file major version 60(이하생략) 문제 해결 검색결과 gradle에서 java 16버전을 지원하지 않아서 에러 출력되는 것으로 파악 cmd 창에 java --version 확인시 jdk 16 버전 설정되어 있었음 그런데 JAVA_HOME 환경변수 설정은 openjdk11 이었음 jdk 16을 삭제하고 재부팅 다시 cmd 창 확인 후 gradle.build 재실행시 정상동작 확인함

공부/Spring2021. 10. 6. 21:56[Java] toString() - 객체에 정의시 출력문에서 자동 호출되는 함수

핵심 java 정의된 모든 class 는 최상위 Object 객체를 상속받음 extends 를 붙이지 않아도 java.lang.Object 상속받음 Object class의 메소드 중 toString()을 사용자 정의 객체에서 오버라이딩(Overiding,재정의) 할 경우 System.out.println(객체); 로 호출시 객체에서 재정의한 toString()이 자동으로 호출되도록 약속되어 있다 예시 Student.java public class Student implements Comparable{ private int no; private String name; private int score; public Student(int no, String name, int score){ this.no = ..

[Java]Comparable 과 Comparator 인터페이스
공부/Java2021. 9. 30. 23:51[Java]Comparable 과 Comparator 인터페이스

요약 - Comparable 인터페이스 : 객체 스스로에게 부여하는 한 가지 기본 정렬 규칙을 설정하는 것이 목적 - Comparator 인터페이스 : 기본 정렬 규칙과 다른 정렬 기준을 지정하고 싶을 때 사용 아래 익명 함수 정의하는 방식은 구식이기 때문에, 람다 표현식과 Method Reference 사용 방법 익히는 것을 권장합니다 Comparable 와 Comparator 는 둘 다 인터페이스로, 정렬 기준을 구현하기 위해 사용됨 Comparable 인터페이스는 compareTo() 메서드를 override 해서 구현 보통 정렬이 필요한 클래스에 Comparable 인터페이스 구현 Comparator 인터페이스는 compare() 메서드를 override 해서 구현 보통 별도 (클래스) 정의해서 ..

[Docker] docker 로 mariadb 설치 후 연결하기 - (1)
공부/DevOps2021. 7. 27. 22:06[Docker] docker 로 mariadb 설치 후 연결하기 - (1)

1. docker 실행 후 로그인 2. mariaDB image 내려받기 $ docker search mariadb // mariadb 이미지 검색 $ docker pull mariadb // mariadb 이미지 내려받기 $ docker images // 내려받은 이미지 목록 확인 3. mariaDB container 실행 // 프로세스 확인 $ docker ps -a 또는 docker ps // container 실행 $ docker run --name mariadb_test -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb mariadb $ docker run --name mariadb_test -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=..

반응형
image