React
기본구조
- src 를 해석한 결과 자바스크립트를 얻어내는 환경 = React
- 작업한 결과 = bundele.js로 얻어낸다.
- spring boot 에 돌릴려면 작업한 결과 파일을 templates 에 붙인다.
- create react app = 개발 프로젝트를 만들면 실시간으로 bundle.js 로 얻어낼 수 있다.

===> index.html 이랑 src를 붙이면 똑같이 돌아감.
JSX
- JSX : 자바스크립트와 xml 이 혼재하고 있다.
- JSX에서는 단독으로 닫는 기호가 반드시 존재해야 한다.
<br/> , <input/> 으로 반드시 닫아줘야 한다.
지금 우리는... src 파일을 계속해서 쌓아간다.
상태값 관리
왜 하는가...? 데이터를 변경하면 UI가 자동으로 업데이트
- 새로운 숫자, 문자열, 배열, 오브젝트로 덮는다.
- 상태와 변화하는 방식을 분리해서 실행.

상태값을 변경하기 위해서는 함수를 만들고 거기에서 setCount 등의 메소드를 이용해서 변경한다.
key
- React의 구조상 요소를 가져올 때 고유의 key 값으로 가지고 오기에 요소마다 고유의 키를 가지고 있어야 한다.
- ctrl + c 는 서버 작동 종료시키기
uuid
Spring boot
JPA
- 테이블을 entity로 간편하게 만들 수 있으면 sql문을 작성하지 않아도 DB에 접근이 가능하다.
h2db test db
entity
- entity 의 빈으로 인해 test bd에 테이블이 생성됨
- @ID , @GeneratedValue 로 primary key 생성
- insert 할 때 row를 entity로 변경 메소드를 같이 설정함

entity 생성 == 테이블 생성
Repository
- repository에서 상속받는 순간 insert, update 등이 가능해진다.

save은 insert 와 update를 모두 수행
- primary key가 null이면 insert 가 일어나고
null이 아니면 update가 일어난다.

getById, findById
findById
- findById는 추가적인 작업이 가능함

Optional <Member> 은 추가적으로 조작이 가능하다...?
- .get() 을 이용해서 값을 얻어올 수 있음

getById
- getById 는 entity 를 얻어오는 메서드가 없음

entity 로 얻어올 수 없으니 변경 과정이 복잡할 듯
!!!리스트 가져오는 코드 !!!
- repo의 findAll로, entity 가 담긴 list 가져오고, stream 과 map으로 요소를 dto로 변경하고, list 로 뽑음

원하는 메소드 생성
내림차순 정렬된 list를 얻어내기
- Repository에 규칙대로 적는 순간 원하는 sql문이 실행된다.

- service 에서 위에 작성한 쿼리처럼 데이터 가져옴

작성한 순간 원하는 sql문이 작성됨....
내림차순 정렬된 list를 얻어내기(직접 생성하기)
- @Query

선택된 row가 list에 담기는 것에 의의가 있음
Gallery
날짜 데이터를 현재 입력한 날짜로 넣기
- @PrePersist
- 데이터 넣을 때 SYSDATE 넣은 느낌쓰

entity로 createdAt 열에 SYSDATE 로 넣는 기능
oracle SYSDATE 쿼리
- oracle 에서 SYSDATE 사용하는 쿼리
CREATE TABLE test_table (
id NUMBER PRIMARY KEY,
name VARCHAR2(100),
created_at DATE DEFAULT SYSDATE
);
INSERT INTO test_table (id, name) VALUES (1, '테스트 데이터');
SELECT * FROM test_table;
date 형식을 dto 담기
- String type 으로 저장
- SimpleDateFormat으로 date 열을 string 으로 변경 후 dto의 builder 에 넣기

dto에 담기 전에는 Date 형식을 String 으로 꼭 변경하기
JpaRepository 를 사용하지 않고 직접 DB를 사용(구조 확인)
- Jpa 에 내재되어 있는 작업을 직접 해보기
- persist 영구화, commit 저장, 아니면 rollback , close 작업 종료

Emp
join 을 어떻게...?
- dept 는 부모, emp는 자식...
- many 사원이 하나의 부서에 속할 수 있음 = many to one = emp 자식이 주가 된다.
- 하나의 부서에 many 사원이 속할 수 있음 = one to many = dept 부모가 주가 된다.
join 프로세스
- entity에 조인 관계 작성
- 지금 현재의 entity에서 ManyToOne 인지? OneToMany? 인지 생각하기
- dept 열에는 해당 dept 부서 정보가 통째로 들어가 잇음

- 조인관계 형성된 entity를 담을 새로운 dto 생성
-
EmpDeptDto를 만들어서 데이터를 담되 부서정보가 담긴 데이터는 .getDept()에서 한번 더 들어가서

조인해서 얻은 열의 값은 2번 깊게 들어가야 함
-
사원에 대한 정보, 부서에 대한 정보 + 몇 명이 근무하는가....?
-
사원이름 클릭시 사원에 대한 정보를 볼 수 있게끔
-
한쪽은 readonly로 사용하는게
-
JPA의 양방향 맵핑
보완점
-
JPA 흐름 PPT 정리...?
-
eentity 와 dto가 떨어져 있고 다른 존재라고 생각하기
- table 생성은 entity에서 일어나고 UI에서 데이터를 보여주기 위해서는 dto에 담아야 함.
- .stream 과 :: 연관해서 생가하기