본문 바로가기

Spring5

[Spring][MyBatis] resultMap과 collection을 활용해 1:N관계 데이터 한 번에 가져오기 현재 사내 프로젝트에서 게시물 API를 구현하고 있다.게시물을 등록할 때, 여러 개의 첨부파일을 등록할 수 있도록 했다. 이처럼, 그 게시물의 상세정보를 불러올 때 1:N 관계의 데이터를 어떻게 하면 효율적으로 가져올 수 있을지 고민이었다. 찾아보니 이러한 1:N 관계의 데이터를 마이바티스에서 제공하는 과 을 활용하면한 번의 쿼리로 1:N 관계의 데이터를 객체 형태로 가져올 수 있었다. 우선 게시물과 첨부파일 테이블 구조를 알아보자. 게시물 정보 테이블 (BBS_INFO) 컬럼명 (Field)데이터 타입 (Type)제약 사항yEN">설명 (Comment)SQint(11)PK, auto_incrementyEN">시퀀스BBS_TYPEchar(1)default ‘N’yEN">게시글타입 (N,F)TITL.. 2025. 7. 18.
[Spring] ExceptionHandler를 활용한 자동 예외 처리 (w.RestControllerAdivce) 사내 인트라넷 API 개발을 계속해서 하고 있다. API를 작성하면서 INSERT나 UPDATE API 작성 시 반복되어 작성하는 Exception 처리가 있다. 등록 API // 게시물 등록@Overridepublic ResDTO insBbsInfo(BbsDTO bbsDTO) throws Exception { ResDTO res = new ResDTO(); try { configDao.insBbsInfo(bbsDTO); //TODO: 첨부파일 업로드 로직 // 첨부파일이 있는 경우, 첨부파일 정보(파일명, 파일path)를 저장하기 위해 게시글 SQ select. log.info("게시물 ID : " + bbsDTO.get_seq()); .. 2025. 7. 15.
[Spring][MyBatis] PageHelper로 페이징 처리하기 현재 사내 인트라넷 리뉴얼 작업을 하고 있다. 프로젝트 기술 스택으로 백엔드에 Spring Boot + Gradle + MyBatis, 그리고 프론트엔드는 회사 처음으로 React를 도입하여개발하고 있다. 개발 중 공지사항이안 자료실 목록에 필수적인 페이지네이션 기능 구현이 필요했다. 기존에 LIMIT와 OFFSET에 직접 페이지 번호(page)와 사이즈(size)를 파라미터로 넘겨 처리했지만,서칭을 해보니 Mybatis에서 PageHelper 플러그인을 알게 되어서 포스팅 해본다. 그래서 PageHelper가 무엇이고, 어떻게 동작하며, 그리고 Spring Boot 프로젝트에 어떻게 적용하는지 알아보자. PageHelper란 무엇이고 어떻게 동작할까? PgaeHelper는 MyBatis의 강력한 페.. 2025. 7. 11.
[Web] JSP에서 공통 변수 사용하기 JSP에서 여러 페이지에서 공통적으로 사용해야 하는 변수를 매번 선언하는 것은 번거롭습니다. 이를 해결하기 위해 Java 클래스에서 변수를 선언하고 JSP에서 가져와 사용하는 방법을 정리해보겠습니다. 1. Java 클래스에서 공통 변수 선언하기먼저, Java 클래스에서 공통적으로 사용할 변수를 public static final로 선언합니다.public class EnvDefine { // added 25.03.28 담당부서 및 전화번호 public static final String OFFICE_NAME = "4차산업융합과"; public static final String OFFICE_NUMBER = "031-6193-3918";}위 코드를 통해 OFFICE_NAME과 OFFICE_N.. 2025. 3. 28.