[Database] 04. MyBatis
·
공부/Spring Boot
MyBatis 란?객체 지향적으로 DB와 상호작용할 수 있는 JPA와 같은 ORM 은 아니지만,SQL 자동 매핑, 동적 쿼리, 저장 프로시저 등을 제공하는 JDBC와 JPA 사이의 프레임워크입니다.MyBatis특징1. SQL 중심 개발개발자가 직접 SQL을 작성 후 XML이나 어노테이션을 통해 Java 객체와 매핑한다.SQL을 명시적으로 작성하기 때문에, 복잡한 쿼리를 작성할 수 있다.2. Java 객체 매핑데이터베이스와 자바 객체 사이의 매핑을 자동으로 처리해준다.3. 유연성SQL의 자유도를 유지하면서, 객체 매핑과 데이터 엑세스 기능을 지원한다.4. 다양한 기능 지원동적 SQL, 캐싱, 트랜잭션 관리 등의 다양한 기능을 지원한다.구성 요소1. SqlSessionFactoryMybatis의 핵심 객체로..
[Database] 03. QueryDSL
·
공부/Spring Boot
QueryDSL이란?앞서 JPA에 대해서 설명하였다. JPA란 Java에서 스키마를 엔티티로 매핑하여 데이터베이스를 객체 처럼 사용하게 하는 인터페이스라고 하였다.JPA같은 경우 기본적인 CRUD 같은 경우는 기존 API나 Repository를 통해서 메서드 생성만으로도 Query 질의가 가능했지만, 조금더 복잡한 쿼리를 작성하기 위해서는 JPQL 이라는 문자열 기반 쿼리를 작성해서 사용해야 했다.하지만, JPQL은 문자열 기반이기 때문에 컴파일 과정에서는 오류를 발견할 수 없으며, 결국 잘못된 JPQL은 런타임 상에서 오류를 발생한다.QueryDSL은 이러한 문제를 해결할 수 있는 도구로서, 문자열기반이 아닌 자바 코드로 타입안정성을 보장하며 쿼리를 작성할 수 있게 해주는 프레임워크다. QueryDSL..
[Database] 02. JPA
·
공부/Spring Boot
JPA란?JPA란 Java에서 ‘객체 ↔ 관계 매핑(ORM)’을 지원하기 위한 표준 인터페이스이다.JDBC와 달리 JPA는 데이터베이스와 상호작용하는 방법을 객체 지향적으로 추상화하여, 개발자가 객체를 중심으로 프로그래밍할 수 있도록 한다.실제로 JPA는 인터페이스 모음에 불과하며, 구체적인 구현체인 Hibernate, EclipseLink, DataNuclues 등을 통하여 사용할 수 있다.JPA 주요 개념엔티티(Entity)엔티티는 데이터베이스의 테이블과 매핑되는 Java 클래스이다. JPA는 엔티티 클래스를 통해 DB의 테이블 구조를 정의하고 매핑할 수 있다.엔티티 클래스는 @Entity 와 같은 어노테이션을 통해 지정하며, 클래스 필드는 테이블의 각 컬럼에 매핑된다.import jakarta.pe..
[Database] 01. JDBC
·
공부/Spring Boot
JDBC란?JDBC란 Java에서 데이터베이스와 상호작용하기 위한 저수준 API이며 해당 API를 통해 Java에서 여러 데이터베이스와 연결하여 SQL 쿼리를 실행하고 결과를 처리할 수 있게 해주는 표준 인터페이스 이다.JDBC 주요 특징1. 저수준 데이터베이스 접근SQL 쿼리를 직접 작성하여 실행하기 때문에, DB와 해당 DB의 SQL 언어에 대한 이해가 필요하다.2. SQL 중심 프로그래밍모든 데이터 조작은 SQL 쿼리를 통해 이루어지며, 쿼리 결과를 ResultSet으로 받아와서 개발자가 직접 Java 객체에 매핑해주어야 한다.3. 커넥션 관리JDBC는 데이터베이스 연결을 위해 Connection 객체를 사용하며, 개발자가 직접 이 연결을 직접 생성하고 닫는 등의 처리 및 관리를 해주어야 한다.(잘..
[Spring Batch] 01. Spring Batch 기본 개념
·
공부/Spring Boot
Batch 작업이란?정해진 시간이나 조건에 따라 대량의 데이터를 한꺼번에 처리하는 작업을 의미한다.실시간 요청과는 다르게, 독립적으로 백그라운드에서 수행되며 대규모의 데이터 처리나 반복적인 작업을 효율적으로 수행하기 위해 사용된다. 배치 작업은 다음과 같은 특징을 가진다.주기적인 실행 : 특정 시간마다(하루에 한번, 주마다 등) 주기적으로 실행된다.대량 데이터 처리 : 대규모의 데이터를 처리하는데 사용된다.비동기적 처리 : 사용자의 즉각적인 응답이 필요하지 않아, 백그라운드에서 비동기적으로 처리된다.에러 관리 및 복구 : 배치 작업 중에 발생하는 에러를 관리하고, 필요 시 작업을 재시도하거나 복구할 수 있는 매커니즘을 가진다.스케쥴링 : 스케쥴러에 의해 실행된다.배치 작업은 금융, 제조, 통신, 전자상거..
07. API Gateway 서버 제작 (2)
·
Web/코테 준비용 서비스 만들기
API-Gateway 서비스 상세 내용1. UserServiceUserService는 사용자 인증과 관련된 로직을 담당하는 서비스다. Github OAuth를 통해 사용자 로그인을 처리하고, 인증된 사용자 정보를 관리한다.authenticateUserGithub OAuth를 통해 로그인한 사용자의 정보를 데이터베이스에 저장하거나 조회하고, 세션에 저장한다.OAuthUserService에서 Github에서 받은 사용자 정보를 GithubOAuthAttributeDto로 매핑하여 필요한 정보를 추출하고, UserRepository로 사용자 정보가 이미 존재하는지 확인한다. 새 사용자일 경우 데이터를 저장하고, 기존 사용자는 세션 정보만 갱신한다.getUserInfo사용자 ID를 기준으로 데이터베이스에서 사용..