-
[TIL] DB, ORM과 JPATIL(Today I Learned) 2022. 12. 6. 21:26
*20221206의 회고
오늘도 어김없이 오전엔 프로그래머스 코딩테스트 문제를 풀었고, 오후에는 스프링 입문 강의를 들었다. 오전에 1시간 동안만 코테 문제를 푸는게 목표였으나, 문제가 안풀려서 결국 세시간 정도 붙잡고 있었던 것 같다. 내일까지 스프링 강의를 듣고 나서 개인과제를 제출해야 되는데, 문제를 풀고야 말겠다는 승부욕이 발동되어서 끝까지 붙잡고 있던 것 같다. 처음 시도한 문제가 안풀려서 두번째 문제도 시도하다가 세번째 문제까지 손을 댔다가 결국엔 세번째 문제도 못풀고 두번째 문제를 조금 더 잡고 있은 후에나 풀 수 있었다. 그러나 두번째 문제도 풀긴 풀었는데, 프로그래머스에서 채점하면 런타임 에러가 난다. 그래서 그냥 내일 다시 도전해보기로 하고 스프링 강의를 들었다.
오늘은 DB와 ORM, JPA의 개념에 대해서 배웠다.
- DBMS(Database Management System) : 데이터를 관리하고 운영하는 소프트웨어
- RDBMS(Relational DBMS)
- 관계형 데이터베이스 -> 테이블, 열, 행으로 구성
- MySQL, PostgresSQL, Oracle Database ...
- In - memoryDB : 서버가 작동하는 동안에만 내용을 저장하고, 서버가 작동을 멈추면 데이터가 모두 삭제되는 DB
- SQL(Structured Query Language) : RDBMS에서 데이터를 다루기 위해 사용되는 언어
- ORM(Object Relational Mapping)
- 객체 관계 매핑
- 객체와 RDBMS의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
- 객체 지향 프로그래밍은 클래스를 사용, RDBMS는 테이블을 사용 -> 불일치 발생 => ORM을 통해 해결
- 자바의 클래스와 RDB(Relational Database)의 테이블을 매핑
- 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것
- JPA(Java Persistence API)
- Java 진영에서 ORM 기술 표준으로 사용하는 인터페이스 모음
- Java 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
- 인터페이스 이기 때문에 Hibernate, Open JPA등이 JPA를 구현함
데이터 베이스에 직접 테이블을 생성하지 않고, 알아서 처리해주는 도구가 있다니... 정말 알면 알수록 대단한 기술 투성이다. 인생 선배님들께 정말 감사하다. 덕분에 과거보다는 훨씬 편하게 공부할 수 있는 것 같다. 좋은 개발자가 되기 위해 앞으로도 새로운 기술들이 나올 때 마다 항상 배우고 받아들이는 자세를 갖자!! 언젠간 나도 그 새로운 기술을 개발하는데 일조 할 수 있으려나...? ㅎㅎ 무튼 오늘 고생했고 내일까지 제출인 과제 얼른 하자... 화이팅 !
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] SpringBoot로 블로그 백앤드 서버 만들기 (0) 2022.12.08 [TIL] Springboot, JPA로 블로그 만들기 (0) 2022.12.07 [TIL] 스프링을 배우기에 앞서서... (0) 2022.12.05 [TIL] JUnit Thread (0) 2022.12.02 [TIL] 자바의 Interface, Stream, Optional 등등 (0) 2022.12.01