Archive_99
close
프로필 사진

Archive_99

github: @denev6

  • 분류 전체보기 (17)
    • 대외활동 (2)
    • 백엔드 (15)
  • 홈
  • 태그

[Spring Boot / 백엔드] 페이징 이해하기 - Pageable, Page, Slice, Cursor Pagination

백엔드 개발을 하다 보면 데이터를 저장하는 것보다 조회 API를 어떻게 설계할지 더 고민하게 되는 순간이 옵니다.처음에는 저도 목록 조회 API를 만들 때 그냥 데이터를 전부 내려주면 되는 줄 알았습니다. 그런데 실제로 데이터를 다루다 보면, 조회 대상이 많아질수록 “어떻게 끊어서 보여줄지”가 훨씬 중요하다는 걸 느끼게 됩니다. 예를 들어 리뷰가 200개, 게시글이 1,000개, 미션이 수만 개라면그걸 한 번에 전부 조회해서 내려주는 방식은 성능상으로도, 사용자 경험 측면에서도 비효율적입니다. 그래서 이번 글에서는 워크북 내용을 바탕으로페이징이 왜 필요한지,Spring Data JPA에서 Pageable, Page, Slice는 어떤 역할을 하는지,그리고 오프셋 기반 페이지네이션과 커서 기반 페이지네이션..

  • format_list_bulleted 백엔드
  • · 2026. 5. 7.
[Spring Boot / 백엔드] JPA란? - ORM, 영속성 컨텍스트, 연관관계 기초 정리

[Spring Boot / 백엔드] JPA란? - ORM, 영속성 컨텍스트, 연관관계 기초 정리

백엔드 개발을 공부하다 보면 API 요청과 응답 흐름, Controller와 Service의 역할, 공통 응답 구조 같은 것들을 먼저 익히게 됩니다.그런데 어느 정도 API를 만들기 시작하면 자연스럽게 다음 단계의 고민이 생깁니다. “그래서 이 데이터를 DB에 어떻게 저장하고, 다시 어떻게 객체로 가져오는 걸까?”저도 처음에는 repository.save()나 findById() 같은 메서드를 그냥 자연스럽게 사용했지만, 정작 그 내부에서 어떤 일이 벌어지는지까지는 깊게 생각하지 않았습니다. 하지만 JPA를 공부하다 보니, 단순히 편하게 데이터를 저장하고 조회하는 도구를 넘어서, 객체 지향 언어와 관계형 데이터베이스 사이의 차이를 메워주는 핵심 기술이라는 점이 보이기 시작했습니다. 특히 영속성 컨텍스트,..

  • format_list_bulleted 백엔드
  • · 2026. 4. 29.
[Spring Boot / 백엔드] API 응답 통일하기 - 공통 응답 객체와 DTO 설계

[Spring Boot / 백엔드] API 응답 통일하기 - 공통 응답 객체와 DTO 설계

백엔드에서 API를 만들다 보면 단순히 “값을 잘 반환하는가”만 생각하기 쉽습니다.저도 처음에는 요청이 오면 필요한 데이터를 꺼내서 JSON으로 내려주면 된다고 생각했습니다. 그런데 API가 하나둘 늘어나기 시작하면 생각보다 금방 문제가 보입니다.어떤 API는 문자열만 반환하고, 어떤 API는 JSON 객체를 반환하고, 또 어떤 API는 성공했을 때와 실패했을 때 응답 형식이 완전히 다르게 내려오는 식입니다. 처음에는 큰 문제가 아닌 것처럼 보여도, 프론트엔드와 함께 작업하거나 API 개수가 많아질수록 이런 차이는 점점 불편해집니다.특히 프론트엔드 입장에서는 API마다 응답 형식을 따로 해석해야 하고, 어떤 경우에는 성공 여부를 판단하는 방식조차 달라질 수 있습니다. 그래서 이번 글에서는 워크북 내용을 ..

  • format_list_bulleted 백엔드
  • · 2026. 4. 17.
[Spring Boot / 백엔드] 스프링 부트 계층 구조 이해하기 - Controller, Service, Repository 정리

[Spring Boot / 백엔드] 스프링 부트 계층 구조 이해하기 - Controller, Service, Repository 정리

프로젝트 구조를 잡고 나면 그다음으로 자연스럽게 드는 생각이 있습니다. “그래서 이 파일들 안에는 대체 어떤 코드가 들어가야 하지?” 처음 스프링을 공부할 때는 저도 Controller, Service, Repository를 일단 만들어두고, 필요한 코드를 그때그때 넣으면 된다고 생각했습니다. 그런데 실제로 API를 하나씩 구현해보니 이 세 계층은 단순히 관습적으로 나누는 것이 아니라, 각자 맡아야 하는 역할이 분명히 다르다는 걸 알게 됐습니다. 요청을 받는 곳, 실제 로직을 처리하는 곳, 그리고 DB와 소통하는 곳이 뒤섞이기 시작하면 코드는 금방 복잡해지고, 나중에는 어디를 수정해야 하는지도 헷갈리게 됩니다. 그래서 이번 글에서는 워크북 내용을 바탕으로 Controller, Service, Repos..

  • format_list_bulleted 백엔드
  • · 2026. 4. 17.
  • navigate_before
  • 1
  • navigate_next
전체 카테고리
  • 분류 전체보기 (17)
    • 대외활동 (2)
    • 백엔드 (15)
Copyright © Archive_99 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바