포스트

Spring Boot Login API 개발 1 - 카카오 로그인 연동

Spring Boot 환경에서 로그인 API 개발 과정에 대해 포스트를 작성합니다. 클라이언트는 React 환경이며, 서버는 Spring Boot 환경으로 구성되어 클라이언트와 REST API 통신을 하고 있습니다. 로그인 프로세스는 카카오 로그인을 연동하여 유저가 간편하게 로그인을 할 수 있도록 했으며, 클라이언트와 서버 간의 로그인된 사용자의 인증은 JWT 방식으로 진행했습니다. 이번 포스트에서는 카카오 로그인 API 연동 개발 과정에 대해 설명하겠습니다. 카카오 로그인 REST API 문서를 참고하여 설계한 프로세스는 다음과 같습니다. 시퀀스 다이어그램 이미…

Read more >

JPA에서 @OneToMany 매핑과 CASCADE 옵션

Spring Data JPA를 이용해서 엔티티(Entity) 설계를 진행하던 중 다대일(N:1) 또는 일대다(1:N) 관계의 테이블에 대한 엔티티 관계 매핑을 어떻게 해야 하는지 몰라서 학습을 진행했다. 학습한 내용을 정리하여 설명하겠다. 상품 고시정보를 관리하기 위해 상품 정보 카테고리(product_information_category)와 상품 정보 항목(product_information_item) 테이블을 생성했다. product_information_category와 product_information_item 테이블은 일대다(1:N) 관계를 가진다. 즉,…

Read more >

MySQL CHAR와 VARCHAR 타입 비교

신규 프로젝트에서 엔티티 설계와 DB(데이터베이스) 스키마 설계를 하는 과정에서 Enum 타입에 대해 DB 필드 타입 매핑에 궁금증이 생겼다. DB 필드 타입에서 Enum이 존재하지만 사용하지 않고, 문자열 타입으로 관리하기로 했다. (DB는 MySQL 8.0을 사용한다) 문자열 타입으로 CHAR와 VARCHAR가 존재하는데, 특징은 무엇이 있고 타입 결정은 어떤 기준으로 생각해야 하는지 알아보겠다. CHAR와 VARCHAR는 정의할 때 CHAR(10), VARCHAR(10) 형태로 최대 문자 수의 크기를 선언한다. 선언된 문자 수 크기에 맞춰 문자열을 저장하는 방…

Read more >

스프링 부트 JVM 핫 스와핑 - devtools, JRebel

스프링 부트(Spring Boot) 애플리케이션 개발을 진행할 때, 코드를 변경하고 결과 확인을 위해 서버를 재시작하는 번거로움이 있어요. 이런 번거로움을 해소하기 위한 핫 스와핑(hot-swapping) 기능을 할 수 있는 솔루션이 있는데, Devtools와 JRebel이 있어요. Devtools와 JRebel에 대해 알아보고, macOS와 인텔리제이(IntelliJ IDEA) 환경에서 실행하는 방법을 확인해 볼게요. 1. Devtools 많은 분들이 스프링 부트 애플리케이션을 개발할 때 대표적으로 의존성을 추가하여 사용하고 있어요. devtools를 사용하면 …

Read more >

개츠비(Gatsby) 블로그 만들기 6 - 사용자 지정 도메인 적용

개츠비(Gatsby) 블로그 만들기 1 - 기본 세팅 개츠비(Gatsby) 블로그 만들기 2 - Tailwind CSS 적용 개츠비(Gatsby) 블로그 만들기 3 - 페이징(Pagination) 적용 개츠비(Gatsby) 블로그 만들기 4 - 댓글(giscus) 적용 개츠비(Gatsby) 블로그 만들기 5 - 블로그(GitHub Pages) 배포 개츠비(Gatsby) 블로그 만들기 6 - 사용자 지정 도메인 적용 이전 포스트에서 GitHub Pages에 블로그 호스팅을 완료했어요. GitHub Pages에서 기본으로 제공하는 ${username}.github.io…

Read more >