엘라의 개발 스케치 Note
[TIL] 내일배움캠프 94일차(23.08.16.) - Java 자료형 vs. MySQL DB Type, PUT vs. PATCH, NoSQL vs. RDBMS 본문
내일배움캠프/TIL
[TIL] 내일배움캠프 94일차(23.08.16.) - Java 자료형 vs. MySQL DB Type, PUT vs. PATCH, NoSQL vs. RDBMS
엘라랑이 2023. 8. 16. 21:38To-do
- 최종 프로젝트 발제
- 최종 프로젝트 회의 및 S.A.(API 명세, ERD, 와이어프레임 등) 작성 -> 제출
- 기술면접 대비 공부
- 알고리즘 문제 풀이
TIL
< Java 자료형 -> MySQL DB Type >
Java 자료형 | MySQL 데이터베이스 타입 |
int | INT |
long | BIGINT |
String | VARCHAR, TEXT |
boolean | BOOLEAN, TINYINT(0 또는 1) |
float | FLOAT |
double | DOUBLE |
Date (java.util.Date 또는 java.sql.Date) | DATE, DATETIME, TIMESTAMP |
byte[] | BLOB, VARBINARY |
BigDecimal | DECIMAL, NUMERIC |
Enum | ENUM, VARCHAR |
List 또는 Set (대개 사용자 지정 객체 컬렉션) | 별도의 테이블을 만들거나, JSON 형식으로 저장 (MySQL 5.7 이상) |
Map (대개 사용자 지정 객체 맵) | JSON 형식으로 저장 (MySQL 5.7 이상) |
< Http 메소드 중 리소스 업데이트 - PUT과 PATCH의 특징과 차이점 >
* PUT 메소드
- PUT은 전체 리소스를 업데이트하는 데 사용됩니다. 즉, 요청된 데이터로 대상 리소스를 '완전히 대체'합니다.
- 클라이언트가 모든 필수 데이터를 가지고 있으며, 전체 리소스가 수정되어야 할 때 유용합니다.
- 서버는 요청된 리소스의 내용을 제공된 데이터로 바꿉니다. 기존 데이터가 없는 경우 새로운 리소스를 생성합니다.
* PATCH 메소드
- PATCH는 리소스의 부분적 업데이트에 사용됩니다. 즉, 리소스의 '일부분만 수정'하거나 추가합니다.
- 리소스의 변경된 부분만을 전송하고자 할 때 유용하며, 전체 리소스를 보내는 것보다 경제적입니다.
- 서버는 요청된 변경사항만을 리소스에 적용하여 업데이트합니다. 나머지 부분은 변경되지 않습니다.
< 요약 >
" PUT은 전체 리소스를 대체하고, PATCH는 리소스의 일부분만 업데이트합니다. PUT은 완전한 데이터를 요구하며, PATCH는 변경된 부분만 요구합니다. "
" 최근 웹 개발에서는 PATCH 메소드의 사용이 증가하는 추세입니다. 이는 대부분의 경우 리소스의 부분 업데이트가 필요하기 때문입니다. PATCH 메소드는 리소스 전체를 보내지 않아도 되므로 네트워크 자원과 대역폭을 더 효율적으로 사용할 수 있습니다. 또한 RESTful API 설계에서도 리소스의 부분 업데이트를 보다 명확하게 표현하는 방식으로 PATCH 메소드를 선호하는 경향이 있습니다. "
" 결론적으로, PUT과 PATCH 중 어떤 메소드를 선택할지는 사용하는 데이터와 요구사항에 따라 달라지며, 리소스 업데이트 방식에 따라 적절한 메소드를 선택하는 것이 중요합니다. "
< 데이터베이스 시스템의 두 가지 주요 유형 - NoSQL과 RDBMS의 특징과 차이점 >
* NoSQL (비관계형 데이터베이스)
- 특징
1. 유연한 데이터 모델: NoSQL은 스키마를 미리 정의하지 않고 데이터를 저장할 수 있으므로 데이터 모델을 유연하게 조정할 수 있습니다.
2. 확장성: NoSQL 데이터베이스는 수평 확장이 용이하며, 대규모 데이터 처리에 적합합니다.
3. 다양한 모델: 다양한 유형의 NoSQL 데이터베이스가 존재하며, 각각의 모델은 특정 사용 사례에 더 적합한 방식으로 데이터를 저장하고 관리합니다.
- 장점
1. 유연성: 데이터 모델의 유연성으로 인해 데이터 구조 변경이 간단하며, 새로운 필드 추가나 삭제가 쉽습니다.
2. 확장성: 대규모 데이터 처리에 적합하며, 클라우드 환경에서 효과적으로 확장할 수 있습니다.
3. 빠른 속도: 일부 NoSQL 데이터베이스는 단순한 데이터 구조로 데이터 조회 및 저장 속도가 빠를 수 있습니다.
- 단점
1. 제한된 쿼리 기능: SQL과 비교하여 쿼리 기능이 상대적으로 제한적일 수 있습니다.
2. 일관성 유지의 어려움: 분산 환경에서 데이터 일관성을 유지하기 어려울 수 있습니다.
3. 부족한 표준화: NoSQL 데이터베이스 간에 표준화가 부족하며, 사용자마다 다른 언어 및 API를 사용할 수 있습니다.
* RDBMS (관계형 데이터베이스)
- 특징
1. 정형 데이터 모델: RDBMS는 사전에 정의된 스키마에 따라 데이터를 구조화하고 관리합니다.
2. ACID 트랜잭션 지원: RDBMS는 트랜잭션 처리를 통해 데이터 일관성과 안정성을 보장합니다.
3. 강력한 쿼리 언어: SQL을 사용하여 복잡한 쿼리를 수행하고 데이터를 추출할 수 있습니다.
- 장점
1. 데이터 일관성과 안정성: ACID 트랜잭션을 지원하여 데이터 일관성과 안정성을 보장합니다.
2. 강력한 쿼리 기능: 복잡한 데이터 조작과 질의를 수행하는데 강력한 SQL 쿼리 언어를 사용할 수 있습니다.
3. 표준화: RDBMS는 SQL 표준을 준수하며, 다양한 벤더에서 동일한 SQL 언어를 지원합니다.
- 단점
1. 스키마 변경의 어려움: 데이터 모델의 변경이 어려울 수 있으며, 대규모 확장이 상대적으로 어려울 수 있습니다.
2. 수직 확장의 한계: 대부분의 RDBMS는 수직 확장만 지원하며, 대량의 데이터 처리에 한계가 있을 수 있습니다.
3. 복잡한 조인: 복잡한 조인 작업은 성능에 영향을 줄 수 있습니다.
< 요약 >
" NoSQL과 RDBMS는 데이터베이스 시스템으로, NoSQL은 유연하고 확장 가능한 데이터 모델로 비정형 데이터에 적합하며, 분산 환경에서 대용량 데이터 처리에 유리합니다. 하지만 쿼리 기능이 제한되고 일관성 유지가 어려울 수 있습니다. 반면, RDBMS는 정형 데이터를 강력한 쿼리와 ACID 트랜잭션으로 처리하며 데이터 일관성과 안정성을 보장합니다. 그러나 스키마 변경이 어렵고 대규모 확장에 한계가 있을 수 있습니다. "
Next...
- 최종 프로젝트 회의
- CS 공부
- 기술면접 대비 공부
- JPA 강의 듣기
- 알고리즘 문제 풀기
- 뚜까패 스터디 발표 자료 정리
'내일배움캠프 > TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 96일차(23.08.18.) - 정규식을 포함에서 조합으로 변경, RDBMS 정규화 (0) | 2023.08.18 |
---|---|
[TIL] 내일배움캠프 95일차(23.08.17.) - MVC 패턴 (0) | 2023.08.17 |
[TIL] 내일배움캠프 82일차(23.08.04.) - windows에서 PowerShell로 chmod 400 설정하기 / lastIndexOf() / Arrays.fill() (0) | 2023.08.04 |
[TIL] 내일배움캠프 81일차(23.08.03.) - 2차원 배열 정렬 (0) | 2023.08.03 |
[TIL] 내일배움캠프 80일차(23.08.02.) - LinkedList 개념과 메소드, ArrayList와의 시간 복잡도 비교 (0) | 2023.08.02 |