개요 자바 객체의 특정 필드를 제외하고 직렬화 / 역직렬화 해야 하는 경우 jackson 라이브러리의 @JsonIgnore 또는 @JsonProperty 어노테이션을 제외 시키고자 하는 필드 위에 추가하면 된다. @JsonIgnore : 해당 어노테이션을 붙인 객체의 필드는 직렬화 / 역직렬화 할 때 모두 해당 필드를 읽지 않게 하는 설정 @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) : 해당 어노테이션을 붙인 필드는 직렬화 시에는 무시되지만, 역직렬화 시에는 해당 필드를 읽도록 하는 설정 @JsonIgnore @JsonIgnore는 해당 어노테이션이 붙은 필드는 직력화 / 역직렬화 할 때 읽지 않는다. 아래는 CommentDto라는 객체를 Object..
전체 글
개요 회사에서 신규 프로젝트로 마이그레이션 자동화 애플리케이션 개발을 진행하게 되었는데, 마이그레이션 API 내에 대용량 엑셀 파일을 읽어서 DB에 저장하는 기능을 개발하게 되었다. 기능 구현을 위해 구글링을 열심히 해보니, 아파치 POI 라이브러리를 사용해 엑셀을 읽을수 있다는 것을 알게 되었다. POI 라이브러리에는 WorkBook 이라는 클래스가 존재했고, 해당 클래스를 사용하여 엑셀을 읽고 간편하게 엑셀 데이터를 가져올 수 있었다. 하지만 결론적으로 나는 이 WorkBook 방식을 사용하여 개발한 것을 갈아엎기로 했다. 이유는 속도 이슈 때문이었다. 내가 구현해야했던 어플리케이션은 주로 대용량 엑셀 파일을 업로드 해야 했다. 그러나 WorkBook 방식으로 구현한 기능은 엑셀 데이터가 N만건 이상..
오류 내용 Mybatis에서 #{} 문법으로 파라미터 바인딩 된 곳에 주석 처리를 하면 아래와 같이 오류가 발생한다. java.sql.SQLSyntaxErrorException: (conn=554682) Could not set parameter at position 원인 및 해결방안 mybatis에서는 #{ } 이 있는 곳을 -- 주석이나 또는 /* */ 주석으로 감싸면, 주석 내에 있는 코드여도 파라미터를 지정하는 대상으로 판단한다. 그래서 #{} 코드를 주석처리하려면 을 사용해야한다. : 사용 가능 /* #{} */ : 오류 -- #{} : 오류
이슈 내용 그룹웨어 게시판 운영 중 있었던 이슈사항을 기록하고자 한다. 내가 맡은 그룹웨어 게시판 기능 중에는 [게시글 프린트] 기능이 있는데, 해당 버튼을 클릭하면 현재 게시글의 게시글을 팝업 형태로 요약해주고 프린트 기능을 제공한다. 그런데 고객사 중 이전 버전의 그룹웨어를 사용하다가 업그레이드 진행한 이력이 있는 고객사가 있는데 해당 고객사에서 [게시글 프린트] 버튼을 클릭하면, 이전버전 그룹웨어 도메인으로 팝업이 호출된다는 오류 사항을 전달 받았다. 원인 및 해결 게시글 조회 API 호출 전에는 헤더 부분의 요청 URL이 정상적으로 현재 그룹웨어 도메인으로 들어가 있었지만, 호출 뒤에 다시 확인해보니 해당 URL이 과거 그룹웨어 도메인으로 변경되었다. 원인을 파악해 보니 게시글 조회 API 리턴값..
개요 코드 변경사항이 발생한 경우 branch 이동이나 원격 저장소의 코드 병합을 하기 위해서는 commit을 해야 하는데, 종종 commit을 하기 애매한 상황이 있다. 이런 경우 git의 stash 기능을 사용해서 코드 변경사항을 임시저장하고 진행하면 되는데 이때 신규 파일의 경우에는 git의 관리 대상이 아니기 때문에 (한 번은 commit을 해야 함) 그냥 stash 명령어를 수행하면 그대로 날라가게 된다. 만약 stash 할 때 신규 파일까지 임시저장 하려면 아래 명령을 사용하면 된다. git stash --include-untracked 그러나 이 방법을 모르고 stash를 한 경우에는 아래 방법대로 없어진 파일을 복구하기를 추천한다 ! 해결 방법 안타깝게도 git에는 reset을 잘못한 경우..
개요 서브쿼리를 사용하면 FROM 절에서 특정 테이블을 지정하는 것이 아닌, 서브쿼리의 결과값을 테이블로 지정할 수가 있다. select a.id, b.name from ( select * from tableA ORDER BY id) a join tableB b on a.id = b.id 회사 업무 중 이 FROM절에 서브쿼리를 적용하고 내부에서 ORDER BY 통해 정렬을 하도록 쿼리를 짰는데,이 서브쿼리를 수행한 결과가 ORDER BY 지정한대로 정렬이 되지 않았다. 원인 및 해결 공식문서를 찾아보니, mysql 에서는 서브쿼리의 레코드 순서를 보장하지 않는다고 한다. https://mariadb.com/kb/en/why-is-order-by-in-a-from-subquery-ignored/ Why ..