응애개발자
article thumbnail
JPA란 무엇인가?
Spring/JPA 2023. 7. 9. 12:52

JPA는 자바 진영의 ORM 기술 표준이다. ORM이란? ORM은 이름 그대로 객체와 관계형 DB를 매핑한다는 뜻이다. ORM 프레임 워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해준다. 예를 들어 개발자가 객체를 저장할 때 INSERT SQL을 직접 작성하는 것이 아닌 객체를 마치 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 된다. 그러면 ORM 프레임워크가 적절한 INSERT SQL을 생성해서 DB에 객체를 저장해준다. 객체 저장 ex)jpa.persist(member); //저장 객체 조회 ex) Member member = jpa.find(memberId); //조회 어느 정도 성숙한 객체지향 언어에는 대부분 ORM 프레임워크들이 있는데 단순히 객체 하나를 C..

article thumbnail
JPA 패러다임의 불일치
Spring/JPA 2023. 7. 9. 01:06

애플리케이션이 발전하며 그 내부 복잡성도 증가, 그래서 현대의 복잡한 애플리케이션은 대부분 객체지향 언어로 개발한다. 문제는 도메인 모델을 저장할때 발생한다. 예를들어 회원 객체를 저장해야 하는데 회원 객체가 팀 객체를 참조하고 있다면, 회원 객체를 저장할 때 팀 객체도 함께 저장해야 한다. 단순히 회원 객체만 저장하면 참조하는 팀 객체를 잃어버리는 문제를 발생한다. 현실적인 대안은 관계형 DB에 객체를 저장하는 것인데, 객체와 관계형 DB는 지향하는 목적이 서로 다르므로 둘의 기능과 표현 방법도 다르다. 이것을 객체와 관계형 DB의 패러다임 불일치 문제라 한다. 따라서 객체 구조를 테이블 구조에 저장하는 데는 한계가 발생한다. 1.상속 객체는 상속이라는 기능을 갖고 있지만 테이블은 상속 기능이 없다. ..

article thumbnail
JPA 소개
Spring/JPA 2023. 7. 7. 11:00

들어가기 앞서 JPA 게시글은 위의 책을 정리하여 만들었다. 1. JPA 소개 JPA를 쓰는 이유 지루하고 반복적인 CRUD SQL을 알아서 처리 객체 모델링과 관계형 DB 사이의 차이점도 해결 JPA는 실행 시점에 자동으로 SQL을 만들어 실행(개발자는 SQL을 직접 작성하는 것이 아닌 어떤 SQL이 실행될지 생각만 하면 됨) JPA의 장점 애플리케이션을 객체 중심으로 개발하니 생산성, 유지보수 상승 코드 수가 줄어들어 가독성 향상 테스트가 편리 데이터베이스 변경시 손쉽게 수정 가능 SQL을 직접 다룰 때 발생하는 문제점 1. 반복, 반복 그리고 반복 객체를 DB에 CRUD하려면 많은 SQL과 JDBC API를 코드로 작성해야 한다는 점 테이블마다 비슷한 일을 반복해야 하는데, 개발하려는 애플리케이션에..

article thumbnail
이산수학 기초
CS/이산수학 2023. 7. 3. 14:34

1. 이산수학 개요 이산수학(Discrete Mathematics) 개념 컴퓨터를 위한 수학 참과 거짓으로 살펴보는 컴퓨터 수학 이산수학을 배우는 이유 이산수학이란 불연속적인 숫자를 다루는 수학이다. 컴퓨터 내부적으로 0과 1만을 다루는 데 그러한 불연속적인 데이터 흐름을 다루기에 적합한 수학적 사고를 배양하는데 필수적인 강의라고 할 수 있다. 또한 이산수학에서는 다루는 내용이 자료구조, 알고리즘 등의 베이스가 되어 전체적인 컴퓨팅 사고력을 길러줄 것이다. 그리고 추후 수학적 귀납법 등의 다양한 기초 개념이 알고리즘에 반복적으로 출현하기 때문에 컴퓨터 과학의 베이스 학문 이라고 할 수 있다. 2. 명제 명제 (Proposition) 개념 진실 혹은 거짓을 말한다. 참(True)이나 거짓(False)으로 ..