JAVA/용어

JAVA 용어 정리 - 12 (디자인 패턴, DBMS)

choibk 2023. 6. 2. 18:10

*** 디자인 패턴(JAVA)

- 정의 : 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 해결책, 대표적으로 MVC 패턴이 있다


** 알고리즘

- 정의 : 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 설명하는 과정, 주어진 문제를 해결하는 일련의 절차, 방법이다

 

 

알고리즘 예시


* 디자인 패턴 vs 알고리즘

: 주어진 문제에 대한 일반적인 해결책이라는 공통점이 있지만, 알고리즘은 어떤 목표를 달성하기 위해 따라야 할 명확한 일련의 절차(-> 요리법), 디자인 패턴은 해결책에 대한 더 상위 수준의 설명이다 (-> *청사진)
[*청사진 : 어떠한 자세한 계획을 설계 도면과 같이 그려놓은 것]


** MVC 패턴

- 정의 : Model-View-Controller의 약자로 어플리케이션을 3가지 역할로 구분한 개발 방법론
- 특징 : 사용자 interface로부터 business logic을 분리하여 어플리케이션의 시각적 요소나 그 이면에서 실행되는 business logic을 쉽게 수정할 수 있다
- API에서의 역할 : View -> Controller, Controller -> Service, Model -> Model
1) Model : 어플리케이션의 정보, Data, Component 등을 나타낸다
2) View : input text, checkbox 항목 등과 같은 사용자 interface 요소를 나타낸다
3) Controller : 데이터와 UI요소들을 이어주는 다리 역할을 수행한다

- 장점 
1) 서로 분리되어 각자의 역할에 집중과 개발을 돕는다
2) 유지, 보수성과 어플리케이션의 확장성 그리고 유연성이 증가한다
3) 중복된 코드가 발생하지 않는다

MVC 패턴 그림 예시



** DataBase(DB)

- 정의 : 데이터들의 집합, 저장소
- 의미 : 일상생활이나 직장, 가정 등에서 보관하고 있는 모든 데이터


** DBMS

- 정의 : 데이터베이스를 관리하고 운영하는 소프트웨어
- 특징 : 다양한 데이터가 저장되어 있는 어러 명의 사용자나 응용 프로그램을 공유하고 동시 접근이 가능해야 한다
- 종류
1) MySQL (전 세계적으로 가장 많이 쓰이는 관계형 DBMS)
2) Oracle (미국 Oracle에서 판매하는 관계형 DBMS)
3) SQL Server (Microsoft에서 개발한 관계형 DBMS)
4) Maria Server (MySQL에서 갈라져 나와 개발되고 있는 관계형 DBMS)
5) PostgreSQL (확장 가능성 및 표준 준수를 강조하는 객체-관계형 관계형 DBMS)


- DBMS분류

1. 계층형

- 특징 : 과거에 주로 사용했던 형태로, 사장 1명에 이사 3명이 연결되어 있는 구조, 세부 내용으로 이동 시 정해진 경로를 항상 경유해야 한다는 단점이 있다


2. 망형 

- 특징 : 계층형의 단점을 개선하기 위해 사용한 형태로 모든 세부 내용을 파악하고 있지만 프로그래밍 내용을 모두 이해해야만 프로그램 작성이 가능하다는 단점이 있다


3. 관계형(RDBMS) 

- 특징 :  엑셀 형태와 비슷하게 테이블이라는 최소 단위로 구성되며, 하나 이상은 열과 행으로 이루어져 있다


*** 관계형 데이터베이스

3-1) SQL(Structured Query Language)
- 정의 :  관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어
- 특징 :  테이블은 행과 열로 구성되어 정해진 명령어를 사용하여 프로그램을 처리한다


3-2) PostgreSQL
- 정의 : The PostgreSQL Global Development Group에서 개발하는 오픈 소스 ORDBMS
- 특징 :  MySQL에 비해서 SQL표준을 더 잘 지원하고 기능이 더 세부적이며 쿼리가 복잡해질수록 성능이 더 잘 나오는 편이다

 

 

*** 비관계형 데이터베이스

1) NoSQL
- 특징
1-1. 데이터 엑세스 및 관리를 위해 데이터 모델을 사용한다 큰 데이터 볼륨
1-2. 짧은 지연 시간과 유연한 데이터 모델이 필요한 애플리케이션에 최적화 되어있다
1-3. 데이터 일관성 제약 일부를 완화시켜준다
1-4. 관계형 DBMS와 달리 표 형식이 아니며 다른 방식으로 데이터를 저장한다
1-5. 데이터 모델에 따라 유형이 다양하다
1-6. 주요 유형으로는 문서, 키 값, 와이드 컬럼, 그래프가 있다

 

관계형 DB vs 비관계형 DB