spring 3

[Reactive Programming] Blocking I/O와 Non-Blocking I/O

Blocking I/O   Blocking I/O의 설명을 위한 예시 그림이다. 본사 서버의 스레드가 지점 서버에 데이터를 요청하면 해당 데이터를 반환받을 때까지 스레드는 대기 상태가 되며 다른 작업을 처리하지 못한다. 이렇게 하나의 스레드가 I/O에 의해 차단되어 대기하는 것을 Blocking I/O라 한다. 이같은 Blocking I/O의 단점을 극복하기 위해 멀티스레딩 기법을 이용하여 추가 스레드들을 할당해  동시 작업이 가능하게끔 한다. 멀티스레딩 기법의 단점1. 컨텍스트 스위칭멀티스레딩의 작동 방식은 사실 하나의 프로세서가 여러 개의 스레드를 번갈아서 실행하는 것이다. 이때, 스레드를 전환하는 과정에서 오버헤드가 발생하게 되어 스레드가 많아질수록 CPU의 성능 저하가 일어날 수 있다. 2. 메모..

[IntelliJ] Resources 폴더를 찾지 못할 때 해결 방법 (application.properties 인식 방법)

개발 환경 IntelliJ 2022.2.2 Ultimate Spring Framework Maven 오류 메시지 및 원인 Error creating bean with name 'rootController': Injection of autowired dependencies failed; 프로젝트를 Git에서 클론하여 처음 빌드하는 중 위와 같은 오류가 발생하며 빌드가 진행되지 않았다. 원인을 살펴보니 Spring Bean이 제대로 주입되지 않고 있었고, 이는 application.properties를 제대로 인식하지 못하여 발생하고 있었으며, 결론적으로 IntelliJ가 src/main 하위의 resources 폴더를 제대로 찾지 못하고 있었기 때문이었다. 해결 방법 비교적 간단하게 해결이 가능하다. In..

Dev 2023.01.27

[Spring / MyBatis] org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

오류 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 문제 MyBatis를 사용하는 Spring Boot 프레임워크에서 DB 커넥션 테스트 이후 Service를 테스트하는데 위 오류와 마주하게 되었다. 서칭 결과 다음과 같이 원인을 정리할 수 있었다. Mapper.xml 파일 쿼리문에 오타가 존재 쿼리문의 메서드 id가 mapper 인터페이스와 불일치할 때 Mapper.xml 경로 설정이 잘못되어 불러오지 못할 경우 필자의 경우 Mapper.xml 파일을 resources 밑이 아닌 java 패키지 밑에 작성하였었는데, 별도 설정을 하지 않아 Maven 에서 Mapper를 resources 패키지 하위에서만 불..

Dev/Spring 2022.10.05
1
반응형