일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #cd
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #springmvc패턴 #model #view #controller
- 보안 #이슈
- 비트 #바이트 #이진수
- 스파르타 코딩클럽 #인메모리db #h2 #연동이슈 #문제해결 #방법 #spring security #header #
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #tdd #테스트 주도개발 #테스트코드 #유닛테스트
- ci/cd파이프라인
- spring security #jwt 토큰 #json web token #token #직렬화 #인증
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 프로세스 #CPU #시공유 #커널
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #aop #관점지향프로그래밍 #유지보수
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #최종프로젝트 #aws s3 #프로필 이미지 수정 #자동삭제
- java5기
- 스프링 #백엔드 #자바
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #대용량트래픽 #처리방법 #캐싱 #코드최적화 #db최적화 #트래픽 #로드밸런서
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #소셜로그인 #네이버 #기능구현 #vue.js #spring boot #네이버로그인 #연동하기
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #4개월삭제 #국비지원 #자바
- 인가 #
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 챌린저스 #bod
- 쓰레드 #쓰레드풀 #프로세스
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #ci #ioc #의존성
- 스파르타 코딩클럽 #내배캠 #최종프로젝트 #로그인 #인증인가 #jwt? #토큰인증 #액세스토큰 #리프레시토큰 #쿠키 #파싱 #서명키의 중요성 #security context holder
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #트랜잭션전파 #transaction
- 스파르타 코딩클럽 #내배캠 #모의면접 #예상질문 #http 메서드 종류 #메서드 #post #put #get #patch #get방식 #post방식 #http프로토콜 #클라이언트 #백엔드 #api
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 객체와 관계형 DB (다락방) 본문
관계형 DB에서 객체의 상속관계와 유사한 것이 Table 슈퍼타입, 서브타입관계이다.
Album을 저장하려면
객체 상속에서 Album은 Item속성을 받은 상태이다.
관계형 DB 입장에서
다른 Insert Qeury를 두번 작성해야한다.
insert into Item, insert into Album
Album을 조회하려면
관계형 DB에서 Item, Album 테이블을 JOIN하고
결과를
Item,Album객체의 속성에 맞게 데이터를 넣어줘야한다.
문제점은
Movie와 Book을 조회하려면
매번 ITEM 테이블과 각각 JOIN을 해야한다.
그 결과를 객체에 넣는 과정을 반복해야하기에
관계형 DB에 저장할 객체에는 상속관계를 쓰지않는다.
객체의 연관성은 참조를 사용한다.
Ex)member.getTeam();
테이블의 연관성은 외래키를 사용한다.
EX) JOIN ON M.TEAM_ID = T.TEAM_ID
객체의 연관관계에서는
Member객체로 Team객체를 참조할 수 있지만
Team객체는 Member객체를 참조할 수 없다.(단방향)
테이블의 연관관계에서
객체의 연관관계와는 다르게
TEAM테이블에서 MEMBER테이블을
TEAM_ID 속성을 통하여 역참조가 가능하다.(양방향 - 방향성이 없다.)
테이블 중심에 데이터 모델링을 객체 모델링에 표현할 수 없다.
teamId 가 아닌 TEAM을 참조할 수 있어야 객체모델링이다.
Member는 TEAM을 가지면서
member.getTeam().getId과 같이
속성에 접근하여 데이터를 조작할 수 있다.(연관관계)
Member, Team을 JOIN한 데이터를 얻기위해
member와 team에 각각 넣어주고
member.setTeam(team)으로 연관관계를 맺어줘야한다.
RDBMS 는 일반적으로 SQL쿼리수를 최소화하고
JOIN을 통하여
여러 엔티티를 로드하며 원하는 대상 엔티티를 선택해야한다.
Java에서는
객체간의 관계 그래프를 통해서 객체를 탐색하고 객체간 통신은 자유로워야한다.
처음 실행한 SQL 결과에 따라 탐색 범위가 결정되기에
객체그래프 탐색의 성질을 완벽히 사용할 수 없다.
Mapper통해서 맵핑된
member.getTeam(); 과
member.getOrder().getDelivery();가
NullpointerException에서 벗어날 수 있을지
어떻게 데이터를 조립했는지
Query까지 탐색해야지만 알 수가 있다.
동일한 회원정보를 가져오는데, 상황에 따라서 여러가지 조회 메소드를 만들어야 할 수 있다.
같은 memberId를 가지고 조회를 하더라도
결국 member1과 member2는 다르다.
주소값이 다르다
Member member 1 = memberDAO.getMember(memberId); 는
Member member1 = new Member(memberDAO.getMember(memberId)); 가
생략되어 진행된것과 똑같기에
새로운 주소값에 저장된 memberId의 String은 member 1이고
member2도 결국 위와 같이 진행되어
memberId = "100"이 정의된
"100"은 같지만
주소값은 다르기에 false로 표시되는것이다.
RDBMS는
기본키(PK)를 이용해
sameness라는 하나의 개념을 정확히 정의한다.
그러나 Java에서는
객체식별(a==b)과 객체동일성(a.equals(b))을 모두 정의한다.
RDBMS에서는 PK가 같으면 서로 동일한 record라고 정의하지
Java에서는 주소값이 같거나 내용이 같은 경우를 구분하여 정의한다.
https://hs-backend.tistory.com/199
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Entity 맵핑 (다락방) (0) | 2024.06.18 |
---|---|
스파르타 부트캠프 JPA 동작 원리 (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 JPA (다락방) (0) | 2024.06.18 |
Spring Boot JUnit 과 TDD, 단위테스트와 통합테스트 (1) | 2024.06.15 |
스파르타 부트캠프 REST API 요청과 응답 (다락방) (0) | 2024.06.14 |