2025. 2. 11. 19:29ㆍmaeng grow/UX・UI
UX UI 디자인을 하며 팀 작업을 할 때
회의 도중 개발자분들이 하는 이야기를 조금이나마 더 알아듣기 위해,
기획-개발-디자인 간 조금 더 원활한 소통을 위해
개발용어 관련 스터디에 참여하게 되었다.
개발 관련 지식은 원체 아는게 없으니 글이 길어지는 경향이 있고,
파고들다보면 끝이 없어서 어느쯤에서 멈춰야하는지 감이 잘 안온다.
(본문은 디자이너의 관점에서 정리해본 개념들이니, 저를 믿지 마시오...)
누구든 좋습니다. 정정이 필요한 부분이 있다면 댓글 남겨주세요👍🏽
1. Database
정의:
- 데이터베이스(DB)는 여러사람이 공유할 수 있도록 체계화된 데이터의 집합
(여러 가지 업무에 공동으로 필요한 데이터를 유기적으로 결합하여 저장한 집합체) - 데이터를 효율적으로 처리하기 위하여 개발됨
- 단어, 숫자, 이미지, 비디오, 파일 등 다양한 유형의 데이터를 저장할 수 있음
장점:
- 데이터가 중복되는 문제를 없앨 수 있음
- 업무가 확대되어도 새로 파일을 준비할 필요가 없음
특징:
- 실시간 접근 가능
- 데이터를 계속 삽입, 삭제, 수정 할 수 있음
- 여러 사용자가 동시에 데이터를 사용할 수 있음
- 데이터를 구조화하여 효율적으로 처리할 수 있음
----------------------------------------
2. Relational DB ( =RDB =관계형데이터베이스)
정의:
- 관계형 데이터베이스 Relational Database (RDB)
관계형 데이터베이스는 키(key)와 값(value)들의 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다. - 전통적인 관계형 데이터베이스 시스템으로, 테이블 형태로 데이터를 저장
SQL(Structured Query Language)을 사용하여 데이터를 조작 - 정형화된 데이터를 다루는 데 가장 적합
(테이블 간의 관계를 설정하여 데이터의 일관성,무결성을 유지할 수 있음)
특징:
- 관계형 데이터베이스를 사용하려면 SQL(Structured Query Language)을 사용해야 함
----------------------------------------
3. DBMS
정의:
- DataBase Management System
- 다수의 사용자들이 체계적으로 DB내에 접근, 생성, 업데이트 및 검색할 수 있는 소프트웨어(도구) 시스템을 의미함
- 사용자와 데이터 사이의 중개자 역할을 함
파일 시스템에 대비한 DBMS의 장점:
- 데이터 중복성 감소 (ex.데이터는 중앙에 저장되므로, 개개인마다 중복된 데이터를 가지고 있을 필요 없음)
- 데이터 무결성 향상 (ex.변경한 내용은 모든 관련 데이터 포인트에 반영됨)
*무결성 이란? 데이터의 정확성, 일관성, 유효성이 유지되는 성질 - 강화된 보안 (DBMS는 역할 기반 액세스를 제공> 권한이 있는 사용자만 데이터를 보거나 수정할 수 있도록 보장)
- 데이터 엑세스 간소화 (SQL과 같은 '쿼리 언어'를 사용하면 데이터를 빠르고 쉽게 검색할 수 있음)
* 쿼리언어 란? 데이터베이스에서 정보를 검색하는 데 사용되는 특수 컴퓨터 언어(사용자-데이터베이스 간의 인터페이스 역할) - 데이터 관계 지원 (데이터 포인트를 연결하여 관계 관리를 더 쉽게 만듦/ 고객과 주문은 "고객 ID"를 사용하여 연결될 수 있음)
- 동시성 제어 (여러 사용자가 충돌 없이 동시에 데이터에 액세,수정 가능)
----------------------------------------
4. SQL - (DML, DDL, DCL)
(0) SQL (Structured Query Language):
- 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수목적의 프로그래밍 언어
- 표준 대화식 프로그래밍 언어임
[SQL의 문법종류 3가지]
(1) DDL (Data Definition Language): 데이터 정의 언어
- 테이블이나 관계의 구조를 생성하는데 사용하며 CREATE/ DROP/ ALTER/ TRUNCATE 문 등이 있음
- CREATE : 새로운 데이터베이스 관계 (테이블) View, 인덱스, 저장 프로시저 생성
- DROP : 이미 존재하는 데이터베이스 관계 (테이블), 뷰, 인덱스, 저장 프로시저 삭제
- ALTER : 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할
- TRUNCATE : 관계 (테이블)에서 데이터를 제거 (한번 삭제시 돌이킬 수 없음)
(2) DML (Data Manipulation Language): 데이터 조작 언어
- 테이블에 데이터 언어를 검색/삽입/수정/삭제 할 수 있음
- SELECT: 검색(질의)
- INSERT : 삽입(등록)
- UPDATE : 업데이트(수정)
- DELETE : 삭제
(3) DCL (Data Control Language): 데이터 제어 언어
- 데이터의 사용 권한을 관리하는 데 사용함. GRANT/ REVOKE 문 등이 있음
- GRANT : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여한다.
- REVOKE : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈 or 회수 한다.
- CONNECT : 데이터베이스 or 스키마에 연결하는 권한.
- SELECT : 데이터베이스에서 데이터를 검색할 수 있는 권한
- INSERT : 데이터베이스에서 데이터를 등록(삽입)할 수 있는 권한
- UPDATE : 데이터베이스의 데이터를 업데이트 할 수 있는 권한
- DELETE : 데이터베이스의 데이터를 삭제할 수 있는 권한.
- USAGE : 스키마 또는 함수와 같은 데이터베이스 개체를 사용할 수 있는 권한
----------------------------------------
5. NoSQL DB - (Redis, mongoDB)
(0) NoSQL DB 정의:
- NoSQL DB (Not Only Structured Query Language DB)
- 여러 유형의 데이터베이스를 사용하는 비관계형 데이터베이스 프로그래밍언어
(SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 지칭하는 단어이다. 관계형 데이터베이스를 사용하지 않는다는 의미가 아닌, 여러 유형의 데이터베이스를 사용하는 것이다.) - 비정형 데이터와 반정형 데이터를 수용하는 유연한 스키마를 활용하는 동시에
테이블 형식이 아닌 데이터 저장 방식을 활용하는 데이터베이스를 의미함.
(1) Redis (Remote Dictionary Server)
- In-Memory 기반의 Key-Value 기반의 NoSql DBMS이다.
In-Memory | Redis는 기본적으로 In-Memory기반이다. 즉, 데이터들이 디스크에 저장되는 다른 DBMS와 달리 Memory(Ram)에 저장된다. 일반적으로 디스크를 읽는 속도보다 메모리를 읽는 속도가 훨씬 빠르기 때문에 데이터를 Read/Write하는 과정에서 속도가 훨씬 빠르다는 장점이있다. |
Key-Value | Redis는 key-value로 데이터가 이루어져 있다. 예를 들어 내가 key가 "a"이고 value="1"이라는 데이터를 넣었을 때, 나중에 데이터를 Read할 때는 key를 통해 데이터를 찾을 수 있다. |
Collection | Redis는 Collection 즉, 다양한 자료구조(String, Hash, Set, List, Sort등)를 저장할 수 있는 기능이 있다. 이 기능을 이용해 개발자들의 편의성과 성능을 높여줄 수 있다. 예를 들어 RDBMS에 SCORE를 저장하고 정렬하여 출력한다고 가정을 했을 때, RDBMS 정렬을 디스크에서 수행하기 때문에 속도가 느려지지만 Redis의 Sort자료구조를 활용하면 속도와 편의성을 동시에 얻을 수 있다. |
Cache 방식 | Redis는 기본적으로 Cache방식을 사용한다. 여기서 Cache란 데이터를 미리 저장해놓고 요청에 따라 필요한 데이터를 바로 보내주는 것이다. 이 방식을 사용함으로써 DB Read의 부하를 줄여줌으로 써 많은 요청이 몰렸을 때 성능이 향상될 수 있다. |
Expires | Expires는 말그대로 만료를 뜻하는데, Redis는 각 데이터(key-value)에 만료시간을 설정하여 일정 시간후 데이터를 자동으로 없앨 수 있다. (ex. 로그인 인증 토큰 처리) |
(2) mongoDB
- MongoDB는 NoSQL로 분류되는 크로스플랫폼 도큐먼트 지향 데이터베이스 시스템이다.
- 전통적인 고정된 테이블-관계 기반의 RDBMS가 아니며, 동적 스키마형 문서를 사용한다.
- MongoDB는 가장 기본적인 데이터를 Document라고 부른다. 이 Document의 집합을 Collection이라고 한다.
- 똑같은 조건으로 설계되었을 시, 기존 RDBMS보다 속도가 굉장히 빠르다는 장점이 있으나
이런 속도는 ACID(원자성, 일관성, 독립성, 지속성> 데이터베이스 트랜잭션이 안전하게 수행된다는 것을
보장하기 위한 성질을 가리키는 약어)를 포기한 대가로 얻은 것이다.
저장하는 데이터가 은행 데이터같이 일관성(consistency)이 매우 중요한 작업에는 MongoDB는 부적합 하다.
----------------------------------------
6. Schema
정의:
- ‘데이터의 구조’ 또는 ‘데이터베이스의 설계’ 를 의미
DB 내에 어떤 구조로 데이터가 저장되는가! 를 나타냄
(데이터베이스의 구조, 제약조건에 관해 전반적인 명세를 기술한 것)
특징:
- 사용자의 관점에 따라 (스키마의 3계층! 외부>개념>내부 스키마)로 나눠짐
(1) 외부 스키마 (사용자 관점 / view)
- 사용자나 프로그래머가 각 개인의 입장에서 필요로하는 데이터베이스의 논리적 구조를 정의한 것
- 일반 사용자는 SQL 을 이용하여 DB 를 쉽게 사용/ 프로그래머는 C, JAVA 등의 언어를 사용하여 DB 에 접근한다.
- 하나의 DB 시스템에는 여러개의 외부 스키마가 존재할 수 있다.
(외부 스키마는 사용자가 보는 관점이 중심이기 때문에 사용자에 따라 다르게 출력되며, 여러 개가 존재)
- 외부 스키마는 전체 데이터베이스의 어느 한 논리적인 ‘부분’으로 볼 수 있기 때문에
외부스키마는 곧 서브스키마(sub schema)라고도 한다.
(2) 개념 스키마 (사용자 관점)
- 조직체나 기관의 관점에서 논리적 구조를 기술함.
- 데이터베이스는
1.사람이 이해하는 논리구조와 2.컴퓨터가 이해하는 물리구조로 나뉘는데,
그 중 사람이 이해하는 논리구조가 개념스키마 이다.
- 데이터베이스의 ‘전체’를 정의한 것으로 데이터 개체, 관계, 제약조건, 접근권한, 무결성 규칙등을 명세한 것이며
데이터베이스의 전체적인 구조를 우리가(사용자가) 알아볼 수 있게 표현한 것이다.
- 앞을 생략한 채로 그냥 스키마 라고 이야기 하면 = 개념스키마 라고 이해하면 된다.
(시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마)
(3) 내부 스키마
- 컴퓨터(물리적 저장창지 관점)의 입장에서 논리적인 구조를 기술함.
- 데이터베이스가 사용자들에게 제공되기 위해서 ‘실제적인 기계적 처리’에 의해서 분배되고 저장되어야 하는데,
기계적 처리를 하는 일련의 과정을 의미한다.
- 내부스키마는 DB의 전체적인 구조로써 단 하나만 존재할 수 있다.
----------------------------------------
7. Table
정의:
- 데이터베이스 에서 테이블은 '열과 행' 으로 구성된다. (표 형식으로 구성된 관련 데이터의 모음)
- 관계형 데이터베이스와 플랫 파일 데이터베이스에서 테이블은 수직 열 (이름으로 식별 가능)과 수평 행 모델을 사용한다.
(셀은 행과 열이 교차하는 단위이다.)
(테이블에는 지정된 수의 열이 있지만, 행은 많아도 된다./ 행을 고유하게 식별하는 특정 열 선택을 기본 키 라고 한다.)
특징:
- 테이블의 데이터는 물리적으로 데이터베이스에 저장될 필요가 없다.
----------------------------------------
8. Row / Column
Row 정의:
- 객체 하나를 나타내는 단위를 (row = instance = 행 = 튜플 = 레코드)이라고 한다.
특징:
- 하나의 로우 = 하나의 관계 데이터
- 같은 테이블 안에서 로우는 항상 동일한 구조이다.
- 로우를 단위로 데이터를 삽입
Column 정의:
- 이름/나이/주소/학점평균 처럼 학생이 가지는 속성. (column = attribute 속성 = 열 = 필드)
특징:
- 컬럼의 이름은 동일한 테이블 내에서 중복될 수 없음
- 컬럼의 이름과 데이터 타입은 테이블을 만들 때 미리 정해짐
----------------------------------------
9. Column Relationship (관계형 데이터베이스의 관계) - (1:1, 1:n, n:1, n:m)
(1) 1:1 (일대 일)
- 한명의 사용자는 하나의 프로필만 가지게 되고 프로필 입장에서도 하나의 사용자만 가지게 된다.
(2) 1:n (일대 다) n:1 (다대 일)
- 이 관계의 경우는 테이블 A의 하나의 레코드는 테이블 B의 여러 레코드와 관련되어 있다.
다만 테이블 B는 하나의 A의 레코드하고만 연결된다. 위 그림에서 와 같이 사용자는 여러번 주문을 할수 있다.
하지만 주문은 주문자로써의 사용자정보를 하나만 가진다.
(3) n:m (다대 다)
- 테이블 A의 여러 레코드는 테이블B의 여러 레코드와 관련있을수 있으며,
테이블B도 테이블A의 여러 레토드와 관련있을 수 있다.
위 그림의 예시에서 처럼 한권의 책을 열러 작가가 쓸수도 있고 작가 한명이 여러개의 책을 쓸 수 도 있다.
----------------------------------------
10. key
배경지식:
- 관계형 데이터베이스는 키(key)와 값(value)들의 관계를 테이블화 시킨, 매우 간단한 원칙의 전산정보 데이터베이스인데,
각각의 테이블은 row와 column으로 구성되어 있다.
- 관계형 데이터베이스에서 "관계"는 엔터티(=1개의 table)와 엔터티 사이의 관계를 의미한다.
1:1(일대일), 1:N(일대다), N:M(다대다)의 세 가지 형식이 있다.
KEY 정의:
- 테이블에서 튜플을 유일하게 식별할 수 있는 속성 혹은 속성들의 집합이다.
테이블은 중복된 튜플을 허용하지 않기 때문에 각각의 튜플에 포함된 속성들 중 어느하나(혹은 하나 이상)는 값이 달라야 한다. 즉, 키가 되는 속성(혹은 속성의 집합)은 반드시 값이 달라서 튜플들을 서로 구별할 수 있어야 한다.
(* tuple이란? 각 attribute의 값으로 이루어진 리스트)
Key 참고 블로그
https://mimah.tistory.com/entry/%EA%B4%80%EA%B3%84-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8-%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98Relation%EA%B3%BC-%ED%82%A4Key
관계 데이터 모델, 릴레이션(Relation)과 키(Key)
관계 데이터 모델(Relational data model) 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델이다. 하나의 개체에 대한 데이터를 하나의 릴레이션(테이블)에 저장한다. 바탕이 되는 데이터 구
mimah.tistory.com
'maeng grow > UX・UI' 카테고리의 다른 글
[Team TAB] 4주차 스터디 (0) | 2025.02.28 |
---|---|
[Team TAB] 2주차 스터디_ERD(Entity-Relation Diagram)해석해보기 (0) | 2025.02.24 |