자료구조와 알고리즘 중에서 자주 사용되는 것들은 어떤 것이 있나요?
배열 (Array)
연결 리스트 (Linked List)
스택 (Stack)
큐 (Queue)
해시 테이블 (Hash Table)
힙 (Heap)
트리 (Tree)
그래프 (Graph)
이진 검색 (Binary Search)
정렬 알고리즘 (Sorting Algorithms) : 선택정렬, 삽입정렬, 퀵정렬, 병합정렬, 힙정렬 등
탐색 알고리즘 (Search Algorithms) : DFS, BFS 등
그래프 알고리즘 (Graph Algorithms) : 최단 경로, 최소 신장 트리 등
동적 계획법 (Dynamic Programming)
그리디 알고리즘 (Greedy Algorithms)
데이터베이스 (Database)와 ORM(Object Relational Mapping)에 대해 설명해보세요.
데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장됩니다 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며 단축하여 데이터베이스라고도 합니다.
대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용합니다.
데이터베이스에는 일반적으로 데이터베이스 관리 시스템(DBMS)으로 알려진 포괄적인 데이터베이스 소프트웨어 프로그램이 필요합니다. DBMS는 데이터베이스와 최종 사용자 또는 프로그램 간의 인터페이스 역할을 하여 사용자가 정보의 구성 및 최적화 방법을 검색, 업데이트 및 관리할 수 있게 해줍니다. 또한 DBMS는 데이터베이스의 감독 및 제어가 용이하여 성능 모니터링, 튜닝, 백업, 복구 같은 다양한 관리 작업이 가능합니다.
인기 데이터베이스 소프트웨어 또는 DBMS로는 MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database 및 dBASE가 있습니다.
계층형( Hierarchical DataBase )
트리 형태의 구조. 트리는 부모-자식 관계로 표현되며 1:N로 구성될 수 있음
DBMS예 : IMS ( IBM 의 Information Management System )
네트워크형 ( Network DataBase )
계층형 데이터베이스의 단점을 보완하여 데이터 간 N:N ( 다 대 다) 구성이 가능한 망 형 모델. 계층 구조에 링크를 추가하여 유연성과 접근성을 높였지만 구조가 복잡해 유지보수가 어렵다.
DBMS 예 : IDMS ( Integrated Data Store )
관계형 ( Relational DataBase )
관계형 데이터베이스 모델은 키( key )와 값 ( value )으로 이루어진 데이터들을 행( row )과 열 ( Column )로 구성된 테이블 구조로 단순화 시킨 모델이다. SQL ( Structured Query Language ) 를 사용하여 테이터를 처리한다. 데이터 모델링이 간단하지만 CAD/CAM , GIS 등과 같은 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않다.
DBMS 예 : UniSQL, Object store
객체 지향형 ( Object-Oriented DataBase )
객체지향 프로그래밍 개념에 기반하여 만든 데이터베이스 모델이다. 정보를 객체의 형태로 표현한다. 객체지향 프로그래밍 개념 ( 클래스, 상속 등 )을 사용할 수 있다.
CAD/CAM. GIS 등의 비정형 데이터들을 데이터베이스화 할 수 있도록 하기 위해 만들어진 모델이다.
멀티미디어 데이터 지원이 가능하지만 SQL 쿼리를 사용할 수 없고 ( OQL 이 있긴하다. ), 검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있어 몇몇 특수한 전문분야 정도에서만 사용되고 있다.
DBMS 예 : O2, ONTOS
객체 관계형 ( Object-Relational DataBase )
관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델이다. 객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 관계형 데이터베이스 보다 더 다양하게 추가되었다.
DBMS 예 : MySQL
NoSQL
Not Only SQL 의 줄임말로 SQL 뿐만 아니라 다양한 특성을 지원한다는 의미라고 해석할 수 있다. 데이터 간에 관계를 정의하지 않는 데이터베이스 모델로 기존의 RDBMS 의 복잡도와 용량의 한계를 극복하기 위한 목적으로 만들어졌다. 비정형 데이터 처리에 유리하지만 스키마 변경이 불가능해 데이터값에 문제가 발생하면 감지가 어렵다.
DBMS 예 : redis
NewSQL
New 와 SQL 의 합성어이다. RDBMS 의 SQL 과 NoSQL 의 장점을 결합하여 관계형 모델, 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델이다.
DBMS 예 : VoltDB
ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relational DataBase)에서 쓰이는 데이터인 테이블 자동으로 매핑(연결)하는 것을 의미한다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결한다. 따라서 ORM을 이용하면 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 된다.
출저
https://www.oracle.com/kr/database/what-is-database/
https://noahlogs.tistory.com/36
https://geonlee.tistory.com/207