일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로세스 #CPU #시공유 #커널
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 서브넷 #안에 #ec2 인스턴스 #ami #생성 #firewall
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #웹페이지 #http #public #instance
- samba #가상머신 #daemon
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- aws #아키텍트 #과정 #s3 #bucket #생성 #이미지업로드
- 인바운드 #아웃바운드 #방화벽설정
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #internet gateway #연결
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #private subnet
- ubuntu #설정변경 #vmware #vmbox #linux #명령어
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #보안그룹 #생성 #http #ipv4
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #igw #curl #명령어 #http
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 비트 #바이트 #이진수
- virtualbox #vmware #router #nat #pat #네트워크 구성도 #aws #ubuntu #
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- oracle vmbox #rocky #linux9 #명령어 #암호화인증 #해시알고리즘
- 쓰레드 #쓰레드풀 #프로세스
- aws #클라우드 #퍼블릭 클라우드 #아키텍트 #과정
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- tar #build #배포 #통신포트 #설정방법 #linux #apache
- sasac #aws 클라우드 #아키텍트 과정 #가상화 #vmbox #vmware #esxi #tar #selinux
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #route53 #igw #연결
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 JPA (다락방) 본문
JPA(Java Persistence API)란
JAVA에서 제공하는 ORM기술로 RDBMS를 다루기 위한 인터페이스 표준명세이다.
Persistence(영속성)은 JPA를 관통하는 매우 중요한 개념이며
관계형 데이터 베이스를 사용하기 위한 API, 인터페이스 이다.
Persistence(영속성)
영속성은 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다.
JPA에서 영속성은
데이터를 가지는 객체(Entity) 그 자체를
Application의 라이프 사이클과 무관하게 영구히 저장함을 의미한다.
Java를 이용한 ORM(Object - relational mapping)으로
JPA를 사용하기 위해서는
JPA를 구현한 Hibernate, EclipseLink, DataNucleus등 과 같은 ORM 프레임워크를 사용해야한다.
이 중에서 Hibernate가 가장 범용적이며 다수의 기능을 제공한다.
JPA를 써야하는 이유
주류 어플리케이션 개발스택
객체지향 언어(JAVA, C#, Python 등)와 관계형 DB는
기본적으로
패더라임의 불일치가 존재한다.
객체지향 언어는
객체의 특성(추상화, 캡슐화, 정보은닉, 상속, 다형성)을 통해서
시스템의 복잡한 비즈니스를 제어하는데 목적이 있다면
관계형 DB는
데이터간 관계를 통해서 데이터를 저장하고 보관한다.
객체를 관계형 DB로 변환하는 것에서 문제가 발생한다.
객체지향 언어를 사용하는 JAVA 진영은
좀 더 편하고 안정적인 방법으로 객체를 데이터베이스에 영구히 저장하기 위해서
JDBC(Java Database Connectivity)를 기반으로
Persistence Framework(SQL Mapper, ORM)을 탄생 시켰다.
ORM은 성능이 느리고 복잡했던 EJB -> Hibernate -> JPA순으로 발전했다.
SQL Mapper와 ORM
SQL Mapper(Mybatis, JDBC Templates)는
저장하거나 저장된 객체 데이터를 SQL을 통하여 직접 맵핑해줘야하기에
지루하고 반복적인 SQL을 작성해야한다.
SQL을 직접사용함으로 인해서
비즈니스 DMBS에 의존하거나 종속시키는 오류를 가져오고
비즈니스를 처리하는 객체지향 시스템에 혼란을 준다.
이를 해결하기 위해서
RDBMS의 Entity관계를 매핑 시켜서
SQL Query가 아닌
코드 구현을 통해 데이터를 다룰 수 있는
기술 ORM(Object - relational mapping)이 나타났다.
비즈니스를 직접적으로 수행하는
객체지향 패러다임(DDD, EDA 등)에 집중하여
RDBMS에 독립적이며 재사용, 유지보수, 리팩토링에 용이한
어플리케이션 구현을 위해서 사용한다.
JPA는 만능이 아니기에 모든 영속을 JPA로 대체할 수 없다.
'Spring' 카테고리의 다른 글
스파르타 부트캠프 JPA 동작 원리 (다락방) (0) | 2024.06.18 |
---|---|
스파르타 부트캠프 객체와 관계형 DB (다락방) (0) | 2024.06.18 |
Spring Boot JUnit 과 TDD, 단위테스트와 통합테스트 (1) | 2024.06.15 |
스파르타 부트캠프 REST API 요청과 응답 (다락방) (0) | 2024.06.14 |
스파르타 부트캠프 스프링 부트 U(update)D(delete) 다락방 (3) | 2024.06.13 |