💡 PK, FK, ER 모델이란?
Primary Key
- 테이블에서 각 Row를 유일하게 구분하는 Column Key
Foreign Key
- 하나의 테이블에 있는 Column으로는 그 의미를 표현할 수 없는 경우, 다른 테이블의 Primary Key Column의 값을 반드시 참조하여 표현해야 하는 Column
Field
- Table에서 Row와 Column이 교차하는 데이터
💡 참조무결성이란?
관련된 테이블의 레코드 간의 관계를 유효하게 하는 규칙으로
사용자의 실수로 관련 데이터가 삭제되거나 수정되는 것을 막아준다.
참조 무결성을 설정할 수 있는 조건은 기본 테이블에서 일치하는 필드가 기본 키이거나 고유 인덱스를 갖고 있거나 관련 필드의 데이터 형식이 같아야 한다.
💡 RDBMS란?
- 모든 데이터를 2차원 테이블로 표현.
- 테이블은 row(record, tuple)과 column(field, item)으로 이루어진 기본 데이터 저장 단위.
- 상호관련성을 가진 테이블(table)의 집합.
- 만들거나 이용하기도 비교적 쉽지만, 무엇보다도 확장이 용이하다는 장점을 가짐.
- 데이터베이스의 설계도를 ER(Entity Relationship) 모델.
- ER모델에 따라, 데이터베이스가 만들어지며, 데이터베이스는 하나 이상의 테이블로 구성됨. ER모델에서 엔티티를 기반으로 테이블이 만들어짐.
- SQL(Structured Query Language)은 오라클 데이터베이스와 통신하기 위한 언어.
💡 DB에서의 Commit와 Rollback 이란?
Commit : 수행 쿼리문을 확정
- 쿼리문에서 Update, Delete, Insert를 수행했을 때, 그 쿼리문 수행결과에 대해서 확정을 짓는다는 것이다.
- Commit하기 전까지는 실제로 적용이 되진 않는다.
Rollback : 사용자가 Update, Delete, Insert 등을 실수로 수행했을 때, 데이터를 복원시킬 경우에 사용한다.
- Commit 하기 전에 수행함으로써 수행 쿼리문에 대해서 원상복귀 시킴
- 테이블에 데이터가 1개 있고 추가로 사용자가 테이블에 데이터를 2개 insert했다고 한다면, 이 때 Commit를 하면 해당 테이블에 3개 데이터가 확정이 되고 Commit 전에 Rollback를 하게 되면 3개의 데이터가 아닌 1개의 데이터가 그대로 보인다는 것이다.
💡 DBMS에 대해 설명해보시오.
- Database Management System의 약자로, 데이터베이스 관리시스템이라고도 한다.
- 다수의 컴퓨터 사용자들이 컴퓨터에 수록된 수많은 자료들을 쉽고 빠르게 추가,수정,삭제할 수 있도록 해주는 소프트웨어이다.
- 목적
: 데이터베이스 내의 정보를 검색하거나 데이터베이스에 정보를 저장하기 편리하고 효율적인 환경을 제공하는 것 - 기능 (세 가지)
- 구성기능
- 데이터베이스에 저장될 자료의 구조와 응용 프로그램이 그것을 이용하는 방식을 정의하는 것
- 레코드 구조의 정의, 데이터 모형의 정의, 물리적 구조의 정의를 포함 - 조작기능
- 사용자의 도구에 따라 데이터베이스에 저장된 자료를 검색,갱신,삽입,삭제할 수 있도록 하는 기능 - 제어기능
- 데이터베이스의 내용이 일관성을 유지하고 중복되지 않도록 하며, 허가되지 않은 접근을 제한하여 자료를 보호하는 기능
- 구성기능
- 종류 (세 가지)
- 계층형
- 이름과 같이, 계층구조로 데이터를 보존유지하게 됨
- 데이터를 대분류, 중분류, 소분류 등으로 분류 및 정리할 수 있을 경우에 적용. - 네트워크형
- 데이터끼리의 상호관계를 네트워크로 나타냄
- 대규모 데이터베이스에서 많이 사용됨.
- 최근에는 객체지향 기술을 사용한 DBMS도 제품화되어 있음 - 관계형
- 정보계 시스템용으로 업계표준이 되어 있는데, 최근엔 트랜잭션 처리를 목적으로 하는 업무계의 DBMS로도 사용하게 됨.
- 정보계 시스템용 DBMS
: 기간 시스템에서 축적한 데이터를 사용자가 자유롭게 검색 및 가공하도록 하기 위한 시스템으로 기획 등 여러 면에서 클라이언트/서버 시스템에 대응하기 쉽도록 되어 있다.
- 계층형
💡 DB정규화란(개요)?
자료의 손실이나 불필요한 정보의 도입 없이 데이터의 일관성, 데이터 중복을 최소화하고 최대의 데이터 안정성 확보를 위한 안정적 자료 구조로 변환하기 위해서 하나의 테이블을 둘 이상을 분리하는 작업
💡 DB정규화의 목적?
- 자료 저장에 필요한 저장 공간을 최소화
- 자료의 삽입, 갱신 및 삭제에 따른 이상 현상 제거 (데이터 무결성 유지)
- 자료 구조의 안정성 최대화
정규형 | 설명 |
제 1정규형(First Normal Form, 1NF) | 테이블의 각 셀의 값은 단일값을 가진다. |
제2정규형(2NF) | 주키가 합성키며 부분종속(Partial Dependence)이 존재할 경우 2차 정규형의 대상이 된다. |
제 3정규형 | 비주키 속성간에 발생하는 함수적 종속(이전종속)이 발생하면 3차 정규형의 대상이 된다. 이전 종속(Transitive Dependence)이 존재하지 않는 관계를 말한다. |
정규형 차수가 높을수록 데이터베이스의 무결성을 저해할 수 있는 다양한 종류의 논리적 모순이 존재할 가능성과 데이터가 중복으로 존재할 가능성을 줄여 준다.
- 차수가 높게 정규화된 테이블들은 고립 시킬 수 있는 트랜잭션들을 많이 쓰는 데이터베이스 (예 :자동입출금기기 시스템)에 많이 쓰임.
- 차수가 낮게 정규화된 테이블들은 읽기 동작이 대부분인 데이터베이스(예:리포트)에 많이 쓰임.
💡 SQL에 대해 설명해보시오.
SQL은 structured query language의 약자로 구조화 질의어
데이터 정의어(DDL)와 데이터 조작어(DML)를 포함한 데이터베이스용 질의 언어(query language)의 일종으로 데이터베이스를 사용 할 때 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 말한다.
💡 TCP/IP에 대해 설명해보시오.
인터넷에서 서로 다른 시스템을 가진 컴퓨터들을 서로 연결하고, 데이터를 전송하는 데 사용하는 통신 프로토콜.
TCP 는 신뢰성 있고 무결성을 보장하는 연결을 통해 데이터를 안전하게 전달해주는 L4의 전송 프로토콜이고,
IP 는 패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 L3의 통신 프로토콜이다.
💡 TCP와 UDP의 차이점에 대해 설명해주세요.
TCP 는 인터넷 상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 흐름제어 및 혼잡제어를 제공하고, 전이중, 점대점 방식이라서 멀티캐스팅이나 브로드캐스팅을 지원하지 않는다. 높은 신뢰성을 보장하고 UDP보다 속도가 느리다.
UDP 는 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형 서비스로 데이터그램 방식을 제공하고 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다. 또한, UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다. 신뢰성이 낮고 TCP보다 속도가 빠르다.
💡 임베디드 시스템이란?
: 다른 시스템에 내장되어 해당 시스템의 기능 수행을 담당하는 컴퓨팅 시스템이다.
특정 업무를 수행하기 위해 H/W와 S/W를 밀접하게 통합한 컴퓨팅 장치
- 다른 시스템에 내장
- 컴퓨팅 시스템(CPU, 메모리, 입출력 장치, 임베디드 SW가 내장)
- 특정 기능 수행
- 범용 시스템이 아님(특수 목적을 수행하기 위해 만들어짐)
- 수행 기능에 특화된 H/W 및 S/W 사용
- 임베딩하는 시스템에 따라 임베디드 시스템의 요구사항이 달라짐
- 배터리를 이용하는 휴대폰의 경우, 전력 소모의 최소화가 중요함
- 원자로 제어 시스템에 경우에는 실시간 처리가 필요함
💡 리눅스와 유닉스의 차이점은?
유닉스(Unix)
- 인터넷 서버, 워크스테이션 그리고 Solaris, Intel, HP, APPLE에서 주로 사용하는 OS입니다.
- 유닉스는 1960, 70년대 개발된 운영체제로 다양한 시스템 사이에서 이식이 가능하다.
- 다중 사용자를 지원하고 있기 때문에 시스템에 직접 로그인이 가능하고 원격 로그인 역시 가능한 네트워크 기능을 기본적으로 포함하고 있으며 멀티 태스킹이 가능하도록 만들어 졌다.
- 운영체제에 여러 가지 하드웨어 플랫폼을 최대한 맞출 수 있도록 자체 드라이버와 유틸리티를 내포하고 있기 때문에 기본적으로 운영체제로서의 기능과 유틸리티의 총체적인 집합으로 볼 수도 있다.
- 유닉스의 상표권은 오픈 그룹이 가지고 있으며 유닉스 소스 코드의 저작권은 노벨이 소유하고 있다.
리눅스(Linux)
- 오픈소스 무료 OS로, 컴퓨터 하드웨어, 소프트웨어, 게임개발, 태블릿 등에 널리 활용되고 있습니다.
- 리눅스는 유닉스를 기반으로 1991년 핀란드의 대학생인 리누스 토르발즈가 개발, 재생산된 공개 운영체제이다.
- 유닉스와 유사한 환경에 덧붙여, 저렴한 비용과 같은 특징을 중심으로 급속히 확대되어 사용되고 있다.
유닉스(Unix)에서 리눅스(Linux)가 분리되어 나왔기때문에 아버지와 아들같은 부분도 있습니다.
'📌ETC > Tech Interview' 카테고리의 다른 글
신입 개발자 기술면접 질문 정리 #1 ~ #6 (0) | 2022.09.26 |
---|---|
신입 개발자 기술면접 질문 정리 #6 (0) | 2022.09.20 |
신입 개발자 기술면접 질문 정리 #4 (0) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #3 (2) | 2022.09.16 |
신입 개발자 기술면접 질문 정리 #2 (0) | 2022.09.16 |