1. 소개1. Redis란?Redis(REmote DIctionary Server)는 인메모리(NoSQL) 데이터 저장소이다.즉, 데이터를 메모리에 저장해서 빠르게 읽고 쓸 수 있는 데이터베이스라고 생각하면 될 것 같다. 빠른 속도와 다양한 데이터 구조를 지원해 캐싱용도로 많이 사용된다.Spring Boot와 함께 Redis를 활용하면 데이터베이스나 외부 API 호출을 최소화하면서 성능을 향상시킬 수 있다. 2. 사용하는 이유고속 데이터 처리: 메모리 기반 저장소라서 DB보다 훨씬 빠름부하 감소: 자주 사용하는 데이터를 캐싱하여 DB 부하를 줄임TTL(만료 시간) 설정 가능: 특정 시간 후 자동 삭제 가능분산 환경 지원: 여러 인스턴스에서 공유 가능 2. 프로젝트 설정 (Spring Boot + Redi..
1. 소개1. Spring Boot Starter란?Spring Boot Starter는 특정 기능을 쉽게 설정하고 사용할 수 있도록 도와주는 라이브러리 모음이다.일반적으로 여러 라이브러리를 함께 조합해야 하는 경우가 많은데, Starter를 사용하면 번거로운 설정 없이 필요한 기능을 바로 적용할 수 있습니다. 2. 특징1. 의존성 관리 편리필요한 라이브러리를 한 번에 추가 가능2. 자동 설정 지원추가적인 설정 없이도 기본 기능 제공3. 버전 관리 용이Spring Boot 버전에 맞춰 호환되는 라이브러리 제공 3. 주요 모듈1. 웹 애플리케이션 관련spring-boot-starter-web: RESTful API 개발 및 웹 애플리케이션을 위한 기본적인 설정 포함 (Tomcat도 포함)spring-boo..
1. 소개Spring Security란?Spring 기반 애플리케이션의 보안을 담당하는 프레임워크인증(Authentication)과 인가(Authorization)를 중심으로 애플리케이션을 보호하는 역할을 한다.한마디로 인증, 권한 관리 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능 ex) 로그인 등을 구현하는데 도움을 주는 프레임워크 주요기능1. 인증 (Authentication)사용자가 누구인지 확인하는 과정으로, 일반적으로 로그인 과정을 의미한다.사용자 정보 확인: ID/PW, OAuth2, JWT, LDAP, SAML 등 다양한 인증 방식을 지원인증 관리자(AuthenticationManager): 사용자의 인증 정보를 검증하고 인증 여부를 결정하는 핵심 컴포넌트..
1. 소개N + 1 문제란?JPA에서 연관 관계를 조회할 때 발생하는 성능 문제.하나의 쿼리로 데이터를 가져왔는데, 연관된 엔티티를 조회할 때 추가로 N개의 쿼리가 발생하는 문제를 말한다.Lazy Loading으로 인해 연관된 엔티티를 개별 조회하면서 발생한다. LazyLoding 이란?LazyLoding(지연 로딩)은 객체를 실제로 사용할 때까지 데이터를 로딩하지 않는 방식.즉, JPA가 연관된 엔티티를 즉시 가져오지 않고, 필요한 순간 (ex) 메서드 호출) 에 쿼리를 실행하는 방식이다. 문제를 유발하는 이유Lazy Loading을 사용하면 연관된 엔티티를 처음 조회할 때는 불러오지 않고, 필요할 때 추가적으로 조회하게 됨.이 방식이 대규모 데이터에서는 N + 1 문제를 초래할 수 있다. 쓰지말아야하..
1. 소개관계 매핑 어노테이션이란? DB에서 원래 사용하던 개념을 Java 객체에서도 쉽게 사용할 수 있도록 해주는 도구 사용하는 이유 SQL 직접 작성 → 자동 변환원래라면 JOIN 같은 SQL을 직접 써야 하는데, JPA에서는 어노테이션만 붙이면 자동으로 처리됨.예를 들어, @OneToMany를 사용하면 내부적으로 JOIN을 사용한 SQL을 실행해 줌.객체 지향적인 개발을 가능하게 함DB는 테이블과 컬럼 기반인데, Java는 객체와 필드 기반이를 매끄럽게 연결해주기 위해 관계 매핑 어노테이션이 필요함.생산성 향상SQL을 일일이 작성하는 대신, JPA가 알아서 적절한 SQL을 실행해 주니까 개발 속도가 빨라짐.유지보수 용이비즈니스 로직이 변경되더라도, 관계 매핑을 어노테이션으로 관리하면 SQL을 직..
그냥 기본 구조만 정리한 글입니다. 1. 프로젝트 생성IntelliJ 환경으로 가정!1) IntelliJ pro에서 생성 파일 > 새로 만들기 > 프로젝트 좌측 제너레이터 > Spring Boot 선택 이름, 프로젝트 위치, 사용할 언어, 종속성 타입, jdk 버전 선택 후 다음 2) Spring Initializr 사용 Intellij 무료 버전에서는 Spring Boot 프로젝트를 생성할 수 없다... 그러면 Spring Initializr 홈페이지에서 프로젝트를 만들 수 있다. 프로젝트 설정 후 GENERATE 버튼을 눌러 ZIP파일을 다운받는다.압축을 풀어주고 intelliJ로 열어주면 끝 2. 프로젝트 구조Spring Boot 프로젝트는 기본적으로 아래와 같은 디렉토리 구조를 가진다. proje..