반응형

java 20

Model 과 ModelVO 의 차이

1. Model.javaEntity/Model 클래스로 사용됩니다.DB 테이블과 1:1로 매핑비즈니스 로직에서 직접 사용하거나 ORM(JPA, MyBatis 등)에서 매핑에 활용예시: 실제 DB의 컬럼과 거의 동일한 필드, getter/setter, toString 등 포함2. ModelVO.javaVO(Value Object) 클래스로 사용화면(View)이나 API 요청/응답, 데이터 전달용으로 활용Entity와 달리, 자유로운 추가 가공.여러 테이블의 데이터를 합쳐서 사용하거나, 화면에 필요한 추가 필드, 변환된 값, 임시 데이터 등을 포함예시: Entity에는 없는 화면용 필드, 파라미터, 변환값 등이 추가될 수 있음

Java Spring boot 2025.09.25

HttpClientErrorException HttpServerErrorException 예외 메세지 처리

여러 블로그 찾아봤는데 exception을 처리할 수 있는 클래스까지 만들어서 처리하는 방법만 가이드 하고 있었다. 신규 프로젝트야 클래스 만들어서 하면 되는데레거시 시스템에서 클래스를 만들어 처리하기엔 영향도가 부담됐다. 가장 간단하게 예외를 처리할 수 있는 방법을 정리해둔다try {} catch(HttpClientErrorException hex) { String statusCode = hex.getStatusCode().toString(); String responseBody = hex.getResponseBodyAsString();} catch(HttpServerErrorException hex) { String statusCode = hex.getStatusCode().toString();..

Java Spring boot 2025.03.24

ProcessException / ProcessMessageException

try{throw processException(message);} catch (ServiceException ex) { System.out.println(ex.getMessageKey());// processException의 메세지를 받고 싶다면 ServiceException으로 받아야함// messagekey에 exception 발생 시 입력했던 메세지가 들어있음// Exception 로 캐치하면 메세지를 뽑아내기 어려움…}try{throw processMessageException(message);} catch (Exception ex) {System.out.println(ex.getMessage());// Exception으로 메세지를 받고 싶다면 processMessageException을 사..

Java Spring boot 2025.03.19

Error Mybatis Mapped Statements collection does not contain value for

이 에러의 원인은 다 비슷하게 이렇게 알려준다.1. Mapper id가 다른 경우2. Parameter와 bean의 필드명이 다른 경우3. Mapper파일과 XML파일의 네임스페이스가 다른 경우 (Mapper파일: *context.xml파일)3. Mapper파일에 정의된 namespace 명칭이 중복될 경우4. sql.xml에 정의된 경로와 DAO에서 호출하는 경로가 다른 경우 (context.xml 파일에 정의된 sql.xml파일)파일을 새로만드는 경우에는 Mapper 파일을 확인해보는게 좋다.sql.xml 파일도 확인해본다.그러나 기존 파일에 추가만하는 경우에는 대부분 오탈자다id만이 아니라 parameterType, returnType 의 대소문자까지 전부 확인해야한다.대소문자 오류 못잡아주는 자바..

Java Spring boot 2024.12.04

java convert timestamp to datetime

timestamp 와 datetime 시간 비교 이런 간단한 비교가 간단히 되지 않아서 내 식대로 만들었다. timestamp와 datetime 둘다 날짜 관련 변수인데 비교가 어려운 게 이해가 안간다... 씨샵 개발자였어서 인지 간단하게 작성할 수 있는 방식이 좋더라. * 변수는 왠만하면 약자 대신 풀네임으로 쓰자. 받아들이는 사람마다 다르게 받아들 일 수 있다. e.g. bef > before DateTime before = DateTime.now().minusMinutes(10); //비교하려는 시간: 현재시간 -10분전 Timestamp updateDate = map.getUpdateDate(); //이 변수가 timestamp boolean check = updateDate.before(Time..

Java Spring boot 2024.08.15

java eclipse SVN E195012 오류

branch 를 위해 repository를 변경하다보면 파일들이 잘못된 repository에 연결되는 경우가 있다 다시 repository를 설정하려 해도 아래와 같은 오류가 나면서 정상적으로 연결되지 않을때가 있다 org.apache.subversion.javahl.ClientException: svn: E195012: 'svn://.java' org.apache.subversion.javahl.ClientException: svn: E195012: 'svn://.java' 몇가지 옵션을 설정해주면 문제를 해결할 수 있다 프로젝트 우클릭 > Team > Switch to anthor... 옵션: Full Recursive, Ignore ancestry

기타 2022.08.02

백준 11053번 가장 긴 증가하는 부분 수열 Java

BOJ 11053번 가장 긴 증가하는 부분 수열 Java 가장 긴 증가하는 부분 수열의 개념을 먼저 알아야한다. (자세한설명 나무위키) 수열의 정렬을 건드리지 않고, 가장 적은 숫자를 제거해서 오름차순인 수열을 만들어내는 것이다. 백준은 테스트케이스가 다양한 상황을 고려하지 못해서 개인적으로 만들어봤다. 테스트케이스: {1 2 1 3 2 6 4 5} 🎈 1 2 1 3 2 6 4 5 🎈 1 2 1 3 2 6 4 5 이 두가지 경우 중 가장 긴 것을 선택해야한다. 🎈 1 2 3 6 🎈 1 2 3 4 5 이 둘은 각각 { 1 2 3 } + 6 과 { 1 2 3 } + 4 5 한 것중 긴 것을 택한 것. For 1 ~ N For 1~N-1 의 이중포문으로 시간복잡도는 O(NlogN) 이라고 한다.

알고리즘 2021.07.14
반응형