카테고리 없음

JSCODE 5주차 미션

생선묵김치찌개 2023. 3. 26. 23:26

데이터베이스의 특징에 대해 설명해주세요.

DB : 엑셀과 비슷하지만 컴퓨터 언어로 제어가 가능하고 웹이나 앱을 통해 공유가 가능하다.

=> 누구나 접근, 편집 가능

(특징)

1. 실시간 접근성(Real-Time Accessibility): 실시간 처리에 의한 응답이 가능해야 한다. (바로바로 달라는 데이터를 줘야함)

 

2. 계속적인 변화(Continuous Evolution): 새로운 데이터의 삽입(Insert), 삭제(Delete), 갱신(Update)로 항상 최신의 데이터를 유지한다.

 

3. 동시 공용(Concurrent Sharing): 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.

 

4. 내용에 의한 참조(Content Reference): 데이터베이스에 있는 데이터를 참조할 때 사용자의 요구에 따른 데이터 내용으로 데이터를 찾는다.

 

데이터베이스 언어(DDL, DML, DCL)에 대해 설명해주세요.

 

DDL(데이터 정의어 D=definition) : 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어

ex) CREATE, ALTER, DROP

 

DML(데이터 조작어 M=maniplate) : 데이터를 CRUD할때 사용되는 명령어

ex) SELECT, INSERT, UPDATE, DELETE

 

DCL(데이터 제어어 C=controll): 객체들을 사용하도록 권한을 주고 회수하는 명령어들을 말함.

ex) GRANT, REVOKE (아직 안써봄)

 

트랜잭션이란 무엇인지 설명해주세요.

데이터 베이스는 트렌젝션 단위로 db에 값을 저장한다 = 데이터베이스를 변화시키 위해 수행하는 단위

 

ex) 송금을 하는 경우는 출금과 입금이 동시에 일어남

=> 출금과 입금을 한 트렌젝션으로 묶는다.

만약 출금이 일어났는데 입금이 일어나지 않으면 큰일남.

그래서 이렇게 오류가 발생하는 경우 롤백을 통해 db를 원래대로 만든다.

 

(용어정리)

커밋: 트렌젝션이 끝나서 db에 변화를 일으킴

롤백: 트렌젝션이 비정상적으로 끝 db를 이전으로 되돌

 

<배운점>

 

1. JPA에서 받는인자는 Entity이다

 

 

2. Spring Data JPA를 이용하면 인터페이스만 선언해도 바로 선언하여 멤버함수들을 사용할수 있다

인터페이스만 선언함
멤버함수 사용가능

 

3. DTO와 Entity 설계방법

https://velog.io/@alstn_dev/Entity%EC%99%80-Dto-%EC%99%9C-%EB%82%98%EB%88%84%EC%96%B4%EC%95%BC-%ED%95%A0%EA%B9%8C

 

Entity와 Dto, 왜 나누어야 할까?

인턴십 과정에서 처음 웹 프로젝트를 할 때 모든것이 낯설었지만 그 중에서 기억에 남는것은 Entity와 Dto를 분리 하는것이다. 처음에는 '어차피 데이터에서 뽑아 쓰고 저장하고 업데이트 하고 하

velog.io

 

entity 내부에 toDTO 멤버함수를 두어 entity=>DTO를 쉽게 만든다. DTO도 마찬가지로 toEntity를 만든다

entity, DTO 둘다 @Builder를 생성자로 만들어 이 둘을 다른 클래스에서 생성할때 .builder로 가독성이 좋게한다.

 

.4. Entity는 getter가 없으면 db랑 연결되지 않는다