본문 바로가기

분류 전체보기19

HTTP 상태 415 – 지원되지 않는 Media Type 오류 내용 form 태그의 input data들을 컨트롤러에서 @RequestBody 어노테이션으로 받아 VO로 파싱하는 기능을 구현하려는 과정에서 아래와 같은 오류 발생 원인 Content Type이 "text/html;charset=utf-8"인 Reqeust의 body를 해당 오브젝트로(ProductVO) 파싱할 수 없기 때문에 발생한 문제임 해결 방법 먼저 테스트를 해보는 과정 중 일어난 오류였어서 request의 Content Type이 "text/html;charset=utf-8"였지만 Request의 Content Type을 "application/json" 타입으로 하고 body를 json으로 전달한 후 컨트롤러에서 PostMapping의 MediaType을 "APPLICATION_JSON"으로.. 2022. 2. 2.
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 오류 내용 아래와 같이 MyBatis 관련 테스트코드 작성 중 두번째 메소드(getItemName2)로 XML 방식을 테스트 하기 위해 아래와 같이 XML을 작성해주고 테스트코드를 실행하니 mapper xml에서 namespace나 id에서의 오타 없이 제대로 설정해주었는데도 메소드를 찾지 못함 원인 나의 경우 아래와 같이 SQL session factory를 설정하여 사용 중이었는데 이의 경우 mapper의 location을 지정하는 프라퍼티를 설정해주어야 하지만 설정을 해주지 않아서 발생한 문제였다 해결 아래처럼 "mapperLocations"라는 이름의 프라퍼티를 매퍼 xml의 경로로 설정해준다 테스트 성공 2022. 2. 1.
no appropriate service handler found 오류 내용 Web Scraper 프로그램 작성하여 데이터를 반복해서 가져와서 데이터베이스에 인서트 중 아래와 같은 오류 발생 적합한 서비스 핸들러를 찾지 못해 연결을 거부했다는 내용 원인 코드 내에서 Connection을 생성 했지만 사용 후 해제를 하지 않아 Oracle Listener와의 Connection Session 갯수가 제한량을 초과한 경우다. 해결 방법 코드 내에서 데이터베이스 관련 작업이 끝난 후 데이터베이스 커넥션을 닫아준다. 커넥션 풀(Connection Pool)을 사용하여 데이터베이스와의 연결을 유지한다. (Connection Pooling에 대한 내용은 추후 개별 포스트로 다룰 예정) 오라클 데이터베이스의 설정을 수정하여 동시에 연결 가능한 process 수를 증가 시킨다. 아래의 코.. 2021. 12. 18.
경쟁상태(Race Condition)에 대해 정의 경쟁상태(Race Condition)는 프로세스나 스레드가 데이터에 어떤 순서로 접근하냐에 따라 결과값이 달라질 수 있는 상태를 말한다. 버그를 초래할 수 있으므로 동기화를 통해 경쟁상태를 해결해야 한다. 경쟁상태 해결을 위한 조건 상호배제(Mutual Exclusion) 프로세스나 스레드가 임계영역(Critical Section)에 접근한 상태라면 다른 프로세스나 스레드는 임계영역에 접근할 수 없어야 한다는 조건 진행(Progress) 임계영역에 접근해있는 프로세스나 스레드가 없고 임계영역 밖에서 대기하고 있는 프로세스나 스레드가 있다면 순서에 맞는 프로세스나 스레드가 임계영역에 접근할 수 있도록 선택한다는 조건 한정대기(Bounded Waiting) 임계구역에 접근하기만을 기다리는 기아(Star.. 2021. 12. 16.