'스프링 부트 3 백엔드 개발자 되기(자바 편)' 교재를 참고하여 정리한 개념입니다.
1. 서버(server)와 클라이언트(client)
1.1. 클라이언트(client)란?
- 클라이언트 (client) : 서버로 요청하는 프로그램을 모두 일컬어 말함
ex. 웹 브라우저
주소 입력 ->enter 눌러서 정보 요청 (= 서버에 요청한다)-> 화면 확인 (서버는 그 주소에 맞는 화면으로 응답)
1.2. 서버(server)란?
- 서버 (server) : 클라이언트의 요청을 받아 처리하는 주체
ex. 클라이언트가 데이터를 요청? -> 데이터 반환
ex. 웹 브라우저에 주소 입력 하기 == 새로운 화면을 그리기 위한 데이터 달라는 데이터 요청에 해당
ex. 서버 내에서 처리만 해달라는 요청? ->해당 요청만 처리
2. 데이터베이스 (Database)
- 데이터베이스(Database) : 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소
ex. MySQL, 오라클(Oracle), 포스트그레SQL (postgreSQL) 등
=> 데이터 베이스(x) / 데이터베이스를 관리하기위한 시스템의 이름(O)
<데이터 베이스의 동작 원리>
클라이언트 ----SQL(데이터베이스를 조작하기 위한 언어)로 데이터 요청----> 데이터베이스 관리 시스템
↓
데이터베이스 관리 시스템 ----데이터를 꺼내 응답 ----> 클라이언트
2.1.관계형 데이터베이스(RDB, Relational Database)란?
<데이터베이스의 종류>
1) 관계형 데이터베이스(RDB, Relational Database)
- 가장 많이 사용하는 데이터베이스
- 데이터를 행(row)과 열(column)로 이루어진 테이블로 관리
- 기본키(primary key, PK)를 사용해 각 행을 식별
- 각 테이블 간에 관계를 지을 수 있음
ex. 오라클(Oracle), MySQL, SQL server, postgreSQL...
2) NoSQL
3) NewSQL
2.2 SQL(Structured Query Language)이란?
- SQL(Structured Query Language)
: 쿼리 == 데이터 검색을 하는 언어
<SQL 의 종류>
- ANSI 표준 SQL
- 그 외 RDB별 방언
+ NoSQL에도 SQL엔진 도입해서 데이터를 조금 더 편하게 질의하도록 지원하는 경우 많음
2.3. NoSQL이란?
- SQL을 안 쓴다는 의미로 사용되기도 함
- 최근에는 'Not Only SQL' 의미로 많이 사용
cf. RDB는 데이터 저장, 질의, 수정, 삭제가 용이 but 성능 올리는 게 쉽지 않음
- 데이터베이스 성능 높이려면
머신의 성능을 좋게하는 스케일업 (방법 : 장비 업그레이드)
또는
머신을 여러대로 분리하는 스케일아웃 필요 (방법 : 데이터베이스를 분산, 이 때 트랜잭션 사용하면 성능 떨어짐)
=> RDB의 이런 문제 해결 위해 NoSQL 등장
ex. 데이터 모델링 어떻게 하느냐에 따라
-> 다이나모디비, 카우치베이스, 몽고디비 등
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 2.5.개념 - 백엔드 개발자의 업무 / 백엔드 프로그래밍 언어 / 자바 애너테이션(Annotation, @) (0) | 2024.08.19 |
---|---|
[Spring Boot] 2.4.개념 - 라이브러리(library)와 프레임워크(framework) (0) | 2024.08.19 |
[Spring Boot] 2.3. 개념 - ip와 port (0) | 2024.08.19 |
[Spring Boot] 2.2. 개념- 데이터베이스(Database) (0) | 2024.08.19 |
[Spring Boot] 1. 환경설정(인텔리제이 설치 + 프로젝트 생성 + 환경설정) (0) | 2024.08.19 |