본문 바로가기

TIL56

TIL내일배움캠프 13주차 JPA심화 JPA 테이블 매핑 오늘의 키워드JPA 테이블 매핑엔티티 객체 관리연관관계 매핑CascadeorphanRemovalFetchType오늘의 내용 JPA 테이블 매핑 기능@Entity객체 관점에서의 이름을 지정디폴트로 클래스명으로 설정됨엔티티의 이름은 JQL(JPA Query Language)에서 사용됨@TableRDB 테이블의 이름을 지정디폴트로 @Entity의 이름이 테이블 이름으로 사용됨주로 Entity 이름과 다르게 지정하고 싶을 때 사용@Id엔티티의 주키를 매핑자바의 모든 primitive 타입과 그 랩퍼 타입을 사용할 수 있음복합키 매핑도 가능@GeneratedValue주키의 생성 방법을 매핑생성 전략과 생성기를 설정 가능@Columnunique, nullable, length, columnDefinition 등의 .. 2024. 7. 8.
TIL내일배움캠프 12주차 JPA심화 JPA Repository 오늘의 키워드JPA RepositoryORM (Object-Relational Mapping)영속성 (Persistence)오늘의 내용JPA Repository 쿼리 코드 작성JPA Repository를 사용하면 데이터베이스와 상호작용하는 코드를 간단하게 작성할 수 있다. Spring Data JPA에서는 다양한 방법으로 쿼리를 정의할 수 있다파생된 쿼리 메서드 (Derived Query Methods)메서드 이름을 기반으로 쿼리를 생성한다public interface TutorialRepository extends JpaRepository {List findByPublished(boolean isPublished);List findByTitleContaining(String title);} @Query.. 2024. 7. 5.
TIL내일배움캠프 12주차 JPA심화 MyBatis 오늘의 키워드MyBatisSqlSessionFactoryBuilderSqlSessionFactorySqlSessionMapper InterfaceMapping FileJDBC 프로그래밍 단순화SQL 쿼리 분리 관리오늘의 내용MyBatis : JDBC의 반복되는 코드를 줄이고 SQL 쿼리와 프로그램 코드를 분리해 관리하는 프레임 워크이다JDBC 프로그래밍을 단순화한다SQL 쿼리를 XML 파일에 작성해 코드와 SQL을 분리한다설정 부분을 줄이고 SQL문과의 연결을 통해 빠른 개발이 가능하다코드는 map 인터페이스와 SQL 쿼리 및 ResultSet 매핑을 위한 XML, annotation을 사용한다DB 기능에 종속적이며 SQL을 직접 작성해야 한다실행 순서응용 프로그램이 SqlSessionFactoryBui.. 2024. 7. 5.
TIL내일배움캠프 12주차 JPA심화 JDBC 오늘의 키워드JDBC(Java Database Connectivity)JDBC Driver ManagerSpring Boot의 JDBC 라이브러리PreparedStatement오늘의 내용1. JDBC(Java Database Connectivity)JDBC 드라이버란?자바 애플리케이션에서 데이터베이스에 접근할 수 있도록 하는 API.자바 애플리케이션과 특정 데이터베이스 간의 연결을 가능하게 하는 역할.JDBC 드라이버 타입4가지 유형이 있으며, 일반적으로 Type 4(순수 자바 드라이버)가 사용됨.JDBC의 주요 기능Java와 데이터베이스를 연결.JPA도 이 기술을 사용하여 구현됨.다양한 유형의 데이터베이스와 연결 가능.JDBC Driver ManagerConnection을 생성하여 쿼리를 요청할 수 있.. 2024. 7. 3.
TIL내일배움캠프 12주차 JPA심화 DB Driver 오늘의 키워드DB Driver 동작 방식연결 초기화SQL 전송 및 실행결과 처리연결 종료오늘의 내용DB Driver 동작 방식: DB 드라이버는 애플리케이션과 데이터베이스 간의 데이터 교환을 조절하고 관리하는 역할을 한다. 이는 데이터베이스 시스템과 상호 작용할 수 있도록 하는 인터페이스를 제공하여, 애플리케이션이 데이터베이스에 명령을 보내고, 쿼리를 수행하며, 데이터를 검색하고, 결과를 반환받을 수 있게 해 준다.동작 방식:연결 초기화요청 수신: 애플리케이션이 DB 작업을 시작하기 위해 드라이버에 연결을 요청한다.연결 설정: 드라이버는 DB 서버에 로그인하고 필요한 설정을 수행하여 연결을 완료한다. 이 과정에는 네트워크 정보와 인증 자격 증명이 필요하다.SQL 전송 및 실행SQL 명령 변환: 애플리케이.. 2024. 7. 1.
TIL내일배움캠프 11주차 JPA심화 트랜잭션 오늘의 키워드트랜잭션원자성일관성독립성트랜잭션 관리 및 보안BEGIN, COMMIT, ROLLBACK접근권한 설정 (GRANT, REVOKE)오늘의 내용트랜잭션은 데이터베이스 상태를 변화시키기 위해 수행하는 작업의 단위로, 데이터 조회, 생성, 수정, 삭제와 같은 일련의 작업을 포함한다. 트랜잭션의 주요 특성과 관리 방법을 이해하는 것은 데이터베이스의 안정성과 일관성을 유지하는 데 매우 중요한다트랜잭션의 성질원자성 (Atomicity)트랜잭션은 모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 한다. 부분적으로 실행된 상태는 존재하지 않는다. 이 특성은 트랜잭션 중 오류가 발생하면 모든 변경 사항을 되돌리는 ROLLBACK 명령을 통해 보장된다​일관성 (Consistency)트랜잭션은 데이터베이스를 일관.. 2024. 6. 28.
TIL내일배움캠프 11주차 JPA심화 H2 데이터베이스 사용 방식 및 SQL 종류 오늘의 키워드H2 데이터베이스 사용 방식SQL 종류오늘의 내용H2 데이터베이스 사용 방식Server Mode (서버 모드)H2 데이터베이스 엔진을 독립적으로 설치하고 서버로 실행하는 방식이다데이터베이스 엔진이 애플리케이션과 별개로 작동하며, 외부에서 여러 애플리케이션이 데이터베이스에 접근할 수 있다데이터는 애플리케이션 외부에 저장되므로 애플리케이션 종료 후에도 데이터가 유지된다In-memory Mode (인메모리 모드)애플리케이션 내부에서 데이터베이스 엔진을 실행하는 방식으로, 주로 build.gradle과 application.properties 설정을 통해 사용된다데이터는 애플리케이션의 메모리에 저장되며, 애플리케이션 종료 시 데이터가 사라진다주로 테스트나 일시적인 데이터 저장에 유용하다Embedde.. 2024. 6. 27.
TIL내일배움캠프 10주차 박싱, 언박싱 등 오늘의 키워드박싱(Boxing)언박싱(Unboxing)스프링(Spring) 프레임워크성능 최적화데이터 바인딩ORM (Object-Relational Mapping)캐시 사용오늘의 내용오늘은 스프링(Spring) 프레임워크에서 박싱(Boxing)과 언박싱(Unboxing)의 개념, 발생 상황, 그리고 성능 최적화 방법에 대해 학습했다박싱과 언박싱 개념박싱(Boxing): 기본 타입(Primitive Type)을 해당하는 래퍼 클래스(Wrapper Class) 객체로 변환하는 과정 예를 들어, int를 Integer로 변환언박싱(Unboxing): 래퍼 클래스 객체를 다시 기본 타입으로 변환하는 과정. 예를 들어, Integer를 int로 변환스프링에서 박싱과 언박싱이 발생하는 상황데이터 바인딩:스프링 MV.. 2024. 6. 26.