Section 2. 모의 면접

Kim·2022년 10월 19일
0

Retrospect

목록 보기
5/11
post-thumbnail

오늘은 Section 2의 마지막 날이라 두 번째 기술면접 준비를 했다.
아래는 내가 답한 질문과 질문에 대한 답변이다.


DNS의 정의, DNS가 필요한 이유

DNS란 도메인 네임 시스템의 약어로 호스트의 도메인명을 호스트의 네트워크 주소로 바꾸거나, 혹은 그 반대의 경우를 수행합니다. DNS는 전세계적으로 약속된 규칙을 공유합니다.
만약 구글 웹사이트에 접속한다고 할 때, 접속할 때마다 매번 IP주소를 기억하여 일일이 입력하는 것은 매우 불편합니다. 모든 웹사이트의 IP 주소를 외우거나 저장하여 찾아보는 것은 굉장히 번거로운 일이기 때문에, DNS를 사용합니다.

DNS의 구성 요소

DNS의 구성 요소는 도메인 네임 스페이스, 네임 서버, 리졸버 세 가지입니다.

우선 한 도메인명의 IP주소를 저장하는 데이터베이스가 필요합니다. 분산된 데이터가 어디에 저장되어 있는지 찾을 프로그램이 필요하며, 해당 IP주소로 이동할 브라우저 등이 필요합니다. 이 때, 도메인 네임 스페이스라는 규칙을 사용해 도메인명 저장을 분산하는 것입니다.

네임 서버는 DNS 서버와 같은 의미로, 해당 도메인명의 IP 주소를 찾는 기능을 수행합니다.

리졸버는 DNS 클라이언트의 요청을 네임 서버로 전달하며, 정보를 클라이언트에게 제공하는 기능을 수행합니다.


트랜잭션이란?

트랜잭션은 데이터베이스의 상태를 바꾸기 위해 수행하는 작업 단위입니다. 상태를 바꾼다는 것은 SQL을 통해 데이터베이스에 접근하는 것입니다.

예를 들어, 게시판 사용자가 게시글을 작성하고 업로드 버튼을 누르고 다시 게시판에 돌아왔을 때, 자신의 게시물이 포함된 게시판을 보게 됩니다.
사용자가 업로드 버튼을 누르면, Insert문을 사용해 게시물의 데이터를 옮기고, 게시판을 구성할 데이터를 다시 Select해 최신 정보로 유지하게 됩니다.
여기서의 작업 단위는 insert문과 select문을 모두 포함한 것입니다.

트랜잭션의 특징

트랜잭션의 특징은 원자성, 일관성, 독립성, 지속성으로 구분할 수 있습니다.

  1. 원자성은 트랜잭션이 데이터베이스에 모두 반영되거나 혹은 전혀 반영되지 않아야 한다는 것입니다. 트랜잭션은 사람이 설계한 논리적인 작업 단위로, 일처리는 작업단위 별로 이루어져야 합니다.

  2. 일관성은 트랜잭션의 작업 처리 결과가 항상 일관적이어야 한다는 것입니다. 트랜잭션이 진행되는 동안 데이터베이스가 변경되더라도 처음 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행됩니다.

  3. 독립성은 둘 이상의 트랜잭션이 동시에 실행되고 있을 때 어떠한 트랜잭션도 다른 트랜잭션의 연산에 끼어들 수 없다는 것입니다. 실행되고 있는 트랜잭션이 완료될 때까지 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없습니다.

  4. 지속성은 트랜잭션이 성공적으로 완료된 경우에 결과는 영구적으로 반영되어야 한다는 것입니다.


Foreign key, Primary key

Primary key는 기본키로, 데이터 테이블에서 유일하게 구분되는 키입니다. 유일한 값으로 중복된 값을 가질 수 없고, 공백 또한 가질 수 없습니다.

Foreign key는 외래키로, 테이블 간의 연결을 만들기 위해, 한 테이블과 참조되는 다른 테이블 간의 연결되는 primary key 칼럼입니다.
기본키를 참조하는 속성이나 속성들의 집합을 말하며, 참조 관계의 기본키와 같은 속성을 갖습니다.

0개의 댓글