01_Redis📍 Redis(REmote DIctionary Server)메모리(RAM)에 데이터를 저장하는 키-값(key-value) 데이터 저장소여러 서버에서 공유할 수 있고 빠름(일반 변수는 빠르지만 서버 간 공유x. RDBMS는 공유되지만 느림) 디스크: 일반적인 RDBMS. 느림. 용량 많음. 복잡한 쿼리 가능.메모리: Redis. 디스크보다 훨씬 빠름. 용량 제약. 복잡한 쿼리 약함. 활용 사례설명캐시(Cache)DB 조회 결과를 잠시 저장해 다음 요청 때 DB 대신 Redis에서 빠르게 조회세션 저장소로그인 세션을 저장 (특히 여러 서버를 운영할 때)토큰 저장JWT Refresh Token, 인증번호, 비밀번호 재설정 토큰 등분산 락(Distributed Lock)동시에 같은 자원에 접근하..
01_Swagger📍 Swagger코드의 어노테이션을 기반으로 API 문서 자동 생성하고 웹 화면에서 API를 직접 호출해볼 수 있는 도구Spring Boot 3.x에서는 Springdoc OpenAPI 라이브러리 사용해 자동으로 OpenAPI 문서 생성 동작 방식브라우저가 /swagger-ui/index.html을 요청한다.Swagger UI 페이지가 로드되면서 내부적으로 /v3/api-docs를 호출해 OpenAPI 명세를 가져온다.명세를 기반으로 API 목록을 화면에 그린다. 02_SpringBoot에 Swagger 적용📍 의존성 추가Spring Boot 3.x에서는 springdoc-openapi-starter-webmvc-ui 를 사용 build.gradledependencies { ..
01_BaseTimeEntity📍 BaseTimeEntity모든 엔티티가 공통으로 가져야 할 시간 관련 필드를 모아둔 부모 클래스자식 엔티티는 BaseTimeEntity를 상속받기만 하면 createdAt, updatedAt 필드를 자동으로 가지게 됨import jakarta.persistence.EntityListeners;import jakarta.persistence.MappedSuperclass;import lombok.Getter;import org.springframework.data.annotation.CreatedDate;import org.springframework.data.annotation.LastModifiedDate;import org.springframework.data.jp..
01_JPA(Java Persistence API)📍JPA(Java Persistence API)객체와 관계형 데이터베이스의 테이블을 짝지어 데이터를 영구적으로 저장할 수 있도록 정해진 Java 진영의 규칙JPA를 실제 코드로 작성한 가장 유명한 프레임워크가 HibernateHibernate는 내부적으로 JDBC를 사용한다. src/main/resources/application.ymlspring: jpa: hibernate: ddl-auto: none properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.MySQL8Dialect🔍 코..
01_MySQL 명령어📍 DDL(Data Definition Language)CREATE DATABASE데이터베이스 생성하기CREATE DATABASE [데이터베이스 이름]; SHOW데이터베이스 목록 보기테이블 목록 보기SHOW DATABASES;SHOW TABLES; DROP데이터베이스 삭제하기테이블 삭제하기DROP DATABASE [데이터베이스 이름];DROP TABLE [테이블 이름]; USE데이터베이스 안으로 들어가기USE [데이터베이스 이름]; CREATE TABLE테이블 생성하기CREATE TABLE [테이블 이름] ( [필드1 이름] [타입] [부가조건] [필드2 이름] [타입] [부가조건] [필드3 이름] [타입] [부가조건] ... PRIMARY KEY ([..
01_@SpringBootApplication📍 @SpringBootApplication@SpringBootApplication // 스프링을 실행시키기 위해 필요한 다양한 설정들을 모두 자동으로 해줌public class LibraryAppApplication { public static void main(String[] args) { SpringApplication.run(LibraryAppApplication.class, args); // 스프링 애플리케이션을 실행(run) }} 02_네트워크와 API📍 Network데이터를 주고 받는 것(=택배) 📍 IP각 컴퓨터의 고유 주소(=집 주소)256을 넘지 않는 4개의 숫자로 이루어짐ex. 244.66.51.9 📍 D..
01_환경설정JDK : 17IDE : IntelliJSpringBoot : 3.1.0 02_Hello World 출력하기📍 프로젝트 실행src/main/java/com.example.firstproject/FirstprojectApplication.javapackage com.example.firstproject;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class FirstprojectApplication { public static void main(String[] args) ..