목록분류 전체보기 (427)
코딩항해기
UncategorizedSQLExceptionSpring JDBC에서 특정 카테고리로 분류할 수 없는 SQL 예외가 발생했을 때 던져지는 예외이다.권한 문제, View 관련 문제(테이블, 컬럼 없음, 생성권한 없음 등), Trigger 관련 문제, 함수/프로시저 관련 문제, 데이터 타입 불일치, 트랜잭션, 인코딩 문제 등으로 발생하게 된다. 500에러가 발생해서 콘솔을 확인했다. org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [ SELECT ROW_NUMBER() OVER (ORDER BY STORE_NUM) AS ROWNUM, STORE_NUM,..
https://www.tistory.com/event/write-challenge-2024 작심삼주 오블완 챌린지오늘 블로그 완료! 21일 동안 매일 블로그에 글 쓰고 글력을 키워보세요.www.tistory.com
[Spring] 템플릿 패턴 : JDBCTemplate 적용 (DAO 고도화)템플릿 패턴복잡한 로직, 반복되는 로직을 캡슐화하는 패턴으로 중복되는 코드를 줄이고 유지보수를 편리하게 할 수 있다. GoF 디자인패턴 : 템플릿 패턴알고리즘의 구조를 메서드에 정의하고, minibcake.tistory.com KeyHolder가 필요한 이유가게 정보를 가진 Store 테이블과 해당 Store의 영업 정보를 가지고 있는 StoreWork 테이블이 있다. 이 테이블은 부모자식관계로 StoreWork가 Store의 PK를 FK로 갖는 구조다. 가게를 새롭게 만들때 가게 정보와 가게 영업 정보를 모두 입력받아 두 테이블에 데이터를 넣게되는데, 이때 Store에 데이터를 넣는 것까지는 문제가 없지만 StoreWork 데..
[Error/Spring] EmptyResultDataAccessException기능 테스트를 하는데 EmptyResultDataAccessException 예외가 발생했다.해당 예외는 조회한 결과 데이터가 없다는 예외로, 분명 데이터가 존재하는데 조회가 되지 않는다. 전달하는 데이터 오류해당 쿼minibcake.tistory.com 방금 전 에러를 해결하고 해당 DAO selectOne에서 새로 만난 에러이다. 해당 에러는 전에 포스팅해서 바로 원인만 기재하도록 하겠다. [Error/Spring] SQLErrorCodeSQLExceptionTranslatorSQLErrorCodeSQLExceptionTranslator팀 프로젝트 기능 확인을 하는 중에 예외가 발생했다. 현재 Error 발생 시 해당 ..
기능 테스트를 하는데 EmptyResultDataAccessException 예외가 발생했다.해당 예외는 조회한 결과 데이터가 없다는 예외로, 분명 데이터가 존재하는데 조회가 되지 않는다. 전달하는 데이터 오류해당 쿼리까지 제대로 찾아간 것이 로그로 보이니 condition값의 문제는 아니다.로그를 볼 때 쿼리를 실행하는데 필요한 storeNum의 값이 1로 View에서 Controller, Model로 잘 전달되고 있으므로 전달하는 데이터의 문제는 아니다. 사실 필요한 데이터가 전달되지 않았다면 쿼리문이 정상 실행되지 않아 다른 예외가 발생했을 것이기 때문에 데이터 전달 문제는 아니다. (1을 전달해야하는데 99를 전달한 상황이 아닌 이상) 쿼리문 조건 문제쿼리문이 정상 실행되었으니 문법 문제는 아니..
SQLErrorCodeSQLExceptionTranslator팀 프로젝트 기능 확인을 하는 중에 예외가 발생했다. 현재 Error 발생 시 해당 예외에 대해 출력하는 AOP가 있으므로 해당 AOP와 에러 페이지를 통해 문제를 확인할 수 있다. Error 발생 시 로그를 찍는 AOP 로그 500 에러 페이지 로그 SQLErrorCodeSQLExceptionTranslator 에러는 sql 실행에 문제가 있다는 이야기로 여러가지 원인이 있지만 가장 많은 비중을 차지하는 부분이 sql문 오류이다. 쿼리문 확인 이미... 인텔리제이에서 불가능한 쿼리라고 안내해주고 있지만 모델 파트 팀원을 신뢰하고 Dbeaver에서 한 번 더 확인해보겠다. (인텔리제이에서도 쿼리를 실행해볼 수 있지만 지금 String 연결..
기존에는 MVC 파트를 나눠 횡단으로 개발을 진행했다. 횡단 개발은 계층 별로 전체 기능을 개발하기 때문에 일관성 확보가 용이하고 기능을 빠르게 완성하기 용이한 방법이어서 팀 프로젝트를 진행할 때 횡단 개발 방식으로 진행했었다. 그러나 완성된 기능 검증을 하기 위해 기능 테스트를 해본 결과 개발 기간이 얼마 남지 않았는데, 사소한 문제들이 너무 많이 발생해서 최대한 중요한 서비스를 살리기 위해 종단 개발 방식을 병행하기로 했다. 종단 개발 방식을 독단으로 진행하면 팀에 혼선을 줄 수 있기 때문에 해당 문제를 종단으로 해결할 것임을 사전에 팀원들에게 공유했으며 큰 구조 변경은 횡단 개발 방식을 유지하기로 했다. 1. 설계확인하기현재 기능 검증할 페이지는 메인 페이지이다.로컬 서버를 실행하면 가장 먼저 뜨는..
z-indexz-index 속성은 위치 지정 요소와 자손 또는 하위 플렉스 아이템의 z축 순서를 지정한다. 즉, 요소가 쌓이는 순서를 제어하는 속성을 의미한다. (값이 적을수록 아래에 쌓이게 된다.) 위치 지정 요소position 속성으로 relative, absolute. sticky, fixed 등이 지정되어 있는 요소를 뜻한다. z-index 동작방식쌓임 맥락 Stacking Context쌓임 맥락이란 가상의 Z축을 사용한 HTML 요소의 3차원 개념화이다. 웹페이지는 단순한 평면 구조가 아니라 x,y,z축으로 이루어져있다. (레이어 개념과 유사) 이 때 Z축을 통해 요소의 우선 순위를 결정하게 된다. (어떤 요소가 위에 올라갈지) 웹페이지는 이러한 3D개념을 가지고 있기 때문에 엣지 개발자도구를..
[10분 테코톡] 주디의 Garbage Collector GC (Garbage Collector)C,C++에서는 코드레벨에서 메모리를 할당 받고, 해제하는 작업이 필요했다. 실수하면 Memory Leak가 발생할 수 있고, 번거로운 일이었다. 반면 JAVA에서는 GC가 Heap 메모리에서 unreachable한 객체를 삭제해 관리한다. 코드레벨의 메모리 관리에서 벗어났기 때문에 직접 관리할 필요가 없어 편리하다. GC 장단점장점Memory Leak 발생할 일이 없다.휴먼 에러 발생 가능성을 낮춘다. (해제된 memory에 접근, 또는 이중 해체 등이 있다)단점성능 저하가 있다. (어떤 메모리를 해제해야하는지 검사하고 삭제하는 과정 또한 자원과 메모리를 필요로 한다.)개발자가 언제 메모리가 해제되는지 ..