본문 바로가기

Java62

#2. 로그 설정 해보기 (feat, logback) LogBack- Spring Boot에서 로그를 다룰 때 가장 많이 쓰는 로깅 구현체는 Logback- logback-spring.xml을 이용하면 로그 포맷, 출력 방식, 파일 보관 정책 등을 유연하게 설정 가능. 로그 출력 경로 제어클래스 종류설명ConsoleAppender콘솔에 출력FileAppender고정된 파일에 저장RollingFileAppender시간/용량 기준으로 파일 분리 저장SMTPAppender메일 전송용DBAppenderDB에 로그 저장용 로그 Level정의OFF로그 기록 안 함FATAL시스템 치명적 오류ERROR예상하지 못한 오류WARN경고, 주의 필요INFO운영 중 참고용 메시지DEBUG개발 중 디버깅 정보TRACE가장 세세한 단계의 로그 로그 롤링 정책 (파일 관리)> file.. 2025. 4. 7.
#3. 성능 차이 비교하기 (OFFSET, CURSOR) 공통 Total Count SQL@Query(value= "SELECT COUNT(*) " + "FROM Temperature t") Integer getTotCnt(); 일반적인 OFFSET 계산하기현재 페이지의 데이터 출력Total Count를 이용하여 전체 페이지 수 출력//Servicepublic Map findBasicPage(int currentPage, int limit){ Map map = new HashMap(); int offset = (currentPage - 1) * limit; map.put("content", temperatureRepository.findByPage(limit, offset)); map... 2025. 4. 7.
예외(Exception) 이해하기 #1 머릿속에 있는 개념을 정리하는 블로그 글입니다. (개인적인 주관이 포함되어있습니다.)개념 정보가 정확하지 않을 수 있으므로, 참고만 부탁드립니다. 예외(Exception)가 왜 필요할까?( 개인적인 경험 )'예외'라는 단어는 사전적으로 "일반적인 규칙이나 통례에서 벗어나는 것"을 의미합니다. 개발을 하다 보면 "예외를 처리해야 한다"는 말을 자주 듣게 됩니다. 누구나 처음에는 자신이 생각한 방향대로 코드를 작성하지만, 모든 것이 계획대로만 흘러가지는 않습니다. 처음에는 "100% 문제가 발생하지 않을 것"이라는 막연한 자신감으로 예외 처리를 깊이 고민하지 않았습니다.하지만, Java에서 기본적으로 제공하는 예외 처리 기능 덕분에 지금까지 큰 불편 없이 개발할 수 있었습니다. 예외가 발생하면 함수 호출 스.. 2025. 3. 13.
[File I/O] 파일 라이브러리 이해하기 (File, Files, Path, Paths) 구조FileJava 17 기준PathsPathFiles파일 관련 라이브러리Path의 유틸리티 라이브러리파일 경로 인터페이스파일관련 라이브러리파일 생성,삭제,수정 가능get() 메서드를 이용하여 경로 생성상대경로, 절대경로, 경로 결합 등 손쉽게 이용기존 File에서 제공되는 유틸 메서드 제공파일 심볼링 링크 및 고급기능 제한 기존 File객체와 호환 가능 ( toFile(), toPath() )추가적인 File관련 유틸 메서드 제공 (파일트리순회, 심볼릭 링크, 고급 기능 가능)예외처리 미흡  예외처리 강화 (IoException)   watch Service(디렉터리 변경 감시를 이용하여 이벤트 처리 가능) * 해당 Paths, Path, Files를 NIO(New I/O) API라고 불리움   Fil.. 2025. 2. 13.
#1. OFFSET 기반 페이징 처리 이해하기 페이징(Paging) 이란?페이징은 데이터가 많을 때, 한 번에 모든 정보를 가져와서 사용자에게 보여주는 대신 일정 개수를 여러 페이지로 나누어 조회하고 화면에 표시하는 기법장점성능 향상 : DB나 서버로부터 모든 데이터를 한 번에 불러오는 부담을 줄임빠른 응답 : 필요한 데이터만 가져오기 때문에 응답시간 단축UI/UX 개선 : 화면에 한꺼번에 많은 정보를 보여주지 않기에 가독성 향상 페이징(Paging) 처리 시 고려해야할 점전체 데이터 개수 (totalCnt)전체 페이지 수 계산에 사용검색 조건에 따라 전체 데이터 개수가 달라질 수 있음현재 페이지 (currentPage)사용자가 보고자하는 페이지 번호한 페이지당 데이터 개수 (perPageCnt)한 페이지에 보여줄 데이터 양* 시작 위치 : (현재 .. 2025. 2. 11.
#2. JPA 페이징 처리 이해하기 (+ OFFSET, Cursor 기반) JPA 페이징 처리JPA의 페이징 처리 또한, OFFSET 기반 쿼리를 기본으로 한다.다만, ORM 기법으로 인한 쿼리 생성 구조로 인해서 애플리케이션 층에서 객체를 이용하여 페이징을 관리하게 된다.  JPA 페이징 객체[ Pageable ]- 페이징을 위한 정보 (페이지 번호, 페이지 크기, 정렬 정보..)을 담고 있는 인터페이스- 구현체로는 PageRequest가 사용ex) PageRequest.of( int page, int size, Sort sort)[ Page ]- 페이징된 데이터 + 페이징 정보를 담고 있는 객체( 데이터 + 전체페이지수 + 전체 데이터 수 + 현재 페이지 번호 + 다음 페이지 여부 등 ...)- DB 쿼리 시, COUNT 쿼리를 진행하여 전체건수를 조회하므로 전체 페이지 계.. 2025. 2. 11.