분류 전체보기

spring/게시판 api

Spring boot 게시판 API 서버 제작 (17) - Member <- Entity Graph 적용

Authorization 헤더에 access token 정보를 주고 API 요청을 보낼 때, Member를 조회하는 과정에서 불필요한 쿼리 호출이 이루어지는 부분을 살펴보고 Entity Graph를 적용해서 해결해 보도록 하겠습니다. JwtAuthenticationFilter @RequiredArgsConstructor public class JwtAuthenticationFilter extends GenericFilterBean { private final TokenHelper accessTokenHelper; private final CustomUserDetailsService userDetailsService; @Override public void doFilter(ServletRequest req..

spring/study

[spring] Entity Graph에 대해 알아보자

Entity Graph란? Entity Graph는 JPA(Java Persistence API)에서 제공하는 기능으로, 엔티티 객체를 가져올 때 연관된 엔티티 객체들을 함께 가져오는 방법을 지정하는 기능입니다. 일반적으로 JPA에서는 지연 로딩(lazy loading) 방식을 사용하여 연관된 엔티티 객체를 필요할 때 가져옵니다. 그러나 이 경우에는 연관된 엔티티 객체를 가져오는 쿼리가 지연 로딩 수행 시 매번 실행되어 성능상의 이슈가 발생할 수 있습니다. Entity Graph는 이러한 성능상의 이슈를 해결하기 위해, 한 번의 쿼리로 필요한 모든 엔티티 객체를 함께 가져오기 위한 방법을 제공합니다. 따라서 연관된 엔티티 객체를 여러 번 가져오지 않아도 되므로 성능상의 이점을 얻을 수 있습니다. Enti..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (16) - 중간 정리 & 카테고리 API

프로젝트를 진행하면서 중간중간 수정 작업이 있었지만 대부분 게시글 주제와는 거리가 좀 있어 설명을 생략했습니다. 이번에 수정했던 부분들을 짚어보면서 개념 정리도 다시 해보고 로그인 기능 구현 후 Swagger로 API 추가 했던 작업을 카테고리에서도 동일하게 해보겠습니다. Entity 수정 먼저 Member와 Role 을 이어주는 MemberRole Entity를 수정하겠습니다. [Before] MemberRole @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class MemberRole { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id..

spring/study

[Spring] @IdClass에 대해서 알아보자

spring에서 지원하는 JPA에서는 각 Entity 클래스에서 기본 키(Primary Key, PK)를 지정해야 합니다. 이때, 복합적인 기본 키를 사용하는 경우가 있습니다. spring에서는 @IdClass 어노테이션을 사용하여 복합적인 기본 키를 지정할 수 있습니다. @IdClass @IdClass 어노테이션은 복합적인 기본 키를 사용하는 엔티티 클래스에서 기본 키를 정의할 때 사용됩니다. 이 어노테이션을 적용한 클래스는 복합 키를 구성하는 여러 필드를 포함하고 있습니다. 예를 들어, Person 클래스에서 id와 name 필드를 복합 키로 사용하려면, PersonId 클래스를 정의하고 이를 @IdClass 애노테이션으로 마크업합니다. public class PersonId implements Se..

spring/study

[Spring] @Embeddable에 대해서 알아보자

spring이 지원하는 JPA에서는 여러 개의 Entity로 구성된 객체 모델을 관계형 데이터베이스 테이블로 매핑합니다. 이 때, 객체 모델의 필드 중에는 복합적인 값을 가지는 경우가 있습니다. 예를 들어서 Address라는 객체가 있는데, Address는 ciry, street, zipCode 필드로 구성됩니다. 이러한 복합적인 값을 가지는 필드를 매핑하기 위해 @Embeddable을 사용합니다. @Embeddable @Embeddable 애노테이션은 복합적인 값을 가지는 객체를 정의할 때 사용됩니다. 이 애노테이션을 적용한 클래스는 엔티티의 필드로 사용될 수 있습니다. 예를 들어, Address 클래스를 정의하고 이를 @Embeddable 애노테이션으로 마크업하면, 다른 엔티티 클래스에서 Addres..

spring/error

[에러 해결] e = Content type 'text/plain;charset=UTF-8' not supported

Postman에서 API 요청시에 발생하는 에러입니다. 원인 Content-type이 text/palin으로 넘어가서 파싱 과정에서 발생하는 문제 해결 해결법은 간단합니다. Content-type를 application/json으로 변경해줍니다.

spring/게시판 api

Spring boot 게시판 API 서버 제작 (15) - 게시판 - 카테고리 - 웹 계층 구현

이번에는 Category API 처리를 위한 웹 계층을 구현해보겠습니다. Category Controller @RestController @RequiredArgsConstructor public class CategoryController { private final CategoryService categoryService; @GetMapping("/api/categories") @ResponseStatus(HttpStatus.OK) public Response readAll(){ // 모든 카테고리 조회 return Response.success(categoryService.readAll()); } @PostMapping("/api/categories") @ResponseStatus(HttpStatus..

ChatGPT

[ChatGPT] CodeGpt - vscode에 chatGpt 적용하기

이번에는 visual studio code에서 ChatGPT를 적용하는 방법을 알아보겠습니다. vscode에는 CodeGPT라는 extension이 있는데 이 기능을 활용하면 쉽게 ChatGPT를 적용할 수 있습니다. https://code-gpt-docs.vercel.app/ Basics | Code GPT 5 minutes to learn the most important Code GPT concepts. code-gpt-docs.vercel.app Extension 설치 먼저 vscode 좌측에 Extension 탭으로 들어간 다음 CodeGPT를 검색해서 install 합니다. install 버튼을 누르고 들어가보면 설치중인 화면이 보입니다. 설정 vscode 설정 설치를 완료하고나면 ChatGP..

ChatGPT

ChatGPT 관련 크롬 플러그인 추천

요즘 한창 인기있는 ChatGPT에 대해서 말씀드리고 ChatGPT를 더욱 잘 활용하기 위한 크롬 플러그인을 소개해드리겠습니다. ChatGPT란? ChatGPT는 인공지능 기술을 활용하여 자연어로 대화를 할 수 있는 대화형 인공지능 모델입니다. GPT(Generative Pre-trained Transformer) 모델을 기반으로 만들어졌으며, OpenAI에서 개발하고 관리합니다. ChatGPT는 다양한 분야에서 활용되고 있으며, 온라인 상담, 챗봇, 문서 요약, 번역 등 다양한 분야에서 유용하게 사용될 수 있습니다. 간단하게 요약하자면 정말 강력한 챗봇이라고 할 수 있습니다. 다양한 분야에서 어떤 질문을 하더라도 놀라운 속도로 답변을 달아주고 정확도 또한 높습니다. 이러한 ChatGPT를 더욱 잘 활용..

spring/게시판 api

Spring boot 게시판 API 서버 제작 (14) - 게시판 - 카테고리 - 2

이번에는 저번시간에 이어 CategoryService를 계속 살펴보겠습니다. 저번 시간에는 read 메서드를 알아봤는데요, 이어서 create를 알아보겠습니다. CategoryService @RequiredArgsConstructor @Service @Transactional(readOnly = true) public class CategoryService { private final CategoryRepository categoryRepository; public List readAll() { List categories = categoryRepository.findAllOrderByParentIdAscNullsFirstCategoryIdAsc(); return CategoryDto.toDtoList(..

얼킴
'분류 전체보기' 카테고리의 글 목록 (2 Page)