728x90
반응형

1. RDBMS과 NoSQL에 대해 설명해주세요.

RDBMS는 관계형 데이터베이스로 데이터를 테이블에 저장하는 데이터베이스입니다.
엔티티 간의 관계를 정의하고 스키마를 엄격하게 관리합니다.
반면 NoSQL은 키-값, JSON문서, 그래프 등의 다양한 방법으로 데이터를 저장하는 데이터베이스입니다.
일관성이 낮은 대량의 데이터를 저장하는 애플리케이션에 적합합니다.

 

 

<데이터 모델>

RDBMS는 데이터를 테이블에 저장하는 관계형 데이터 모델을 사용합니다. 

NoSQL 데이터베이스는 JSON 문서, 키-값 쌍 또는 그래프와 같은 다양한 방법으로 데이터를 저장할 수 있습니다.

 

<일관성>

RDBMS는 데이터가 항상 일관되게 유지되도록 하는 ACID 속성을 지원합니다. 

NoSQL 데이터베이스는 일관성 속성을 지원하지 않을 수 있습니다.

 

<확장성>

RDBMS는 일반적으로 수직 확장(성능업)을 통해 확장됩니다.

NoSQL 데이터베이스는 일반적으로 수평 확장(서버 추가)을 통해 확장됩니다.

 

<사용>

RDBMS는 일반적으로 OLTP(온라인 트랜잭션 처리) 애플리케이션에 사용됩니다. 

NoSQL 데이터베이스는 일반적으로 OLAP(온라인 분석 처리) 애플리케이션 및 대량 데이터 애플리케이션에 사용됩니다.

 

 

🔥꼬리질문 : 관계형 데이터베이스는 왜 관계형이란 이름이 붙을까요?🔥
관계형 데이터베이스는 데이터가 서로 관련된 방식으로 테이블에 저장되기 때문에 관계형이라고 합니다. 테이블은 행과 열로 구성되며 행은 데이터 레코드이고 열은 데이터 필드입니다. 테이블은 관계를 통해 함께 연결할 수 있으며 관계는 데이터의 논리적 관계를 나타냅니다. 예를 들어 고객 테이블과 주문 테이블은 고객 ID 열을 통해 연결될 수 있습니다. 즉, 특정 고객 ID에 대한 모든 주문을 검색할 수 있습니다.

🔥꼬리질문 : 프로젝트에서 RDBMS를 사용한 이유는?🔥
저희 최종프로젝트의 주제는 맛집SNS였습니다. 팔로워와 팔로잉간의 관계, 게시물의 좋아요와 댓글 등 다양한 데이터들이 서로 관계가 있기 때문에 NoSQL보다는 RDBMS에 적합하다 생각하여 RDBMS를 채택하게 되었습니다.

 

🔥꼬리질문 : NoSQL를 사용하는 이유는 무엇일까요?🔥
NoSQL을 사용하는 이유는 다양합니다.

첫째, RDBMS보다 많은 리소스가 필요하지 않기 때문에 대량의 데이터를 저장할 수 있습니다.

둘째, 수직확장(기능업)하는 RDBMS보다 NoSQL의 수평확장(서버추가)이 확장하기 용이합니다.

셋째, NoSQL은 복잡한 쿼리문을 사용하지 않기 때문에 사용하기가 편합니다.

그래서 NoSQL은 로그기록과 같이 데이터 일관성이 낮은 대량의 데이터를 처리할때 적합합니다.

 

🔥꼬리질문 : 트랜젝션에 대해 설명해주세요.🔥
트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션의 주요 목적은 데이터의 무결성과 일관성을 보장하는 것입니다. 여러 작업을 단일 트랜잭션으로 그룹화하여 트랜잭션 내의 모든 작업이 성공적으로 실행되거나 아무 것도 실행되지 않도록 할 수 있습니다.

트랜잭션은 신뢰할 수 있고 일관된 데이터 처리를 보장하는 ACID속성을 따릅니다.

트랜잭션은 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)의 4가지 특징을 가집니다.

 

원자성은 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것을 의미합니다.
일관성은 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것을 의미합니다.
독립성은 둘 이상 트랜잭션이 동시 실행시 어떤 트랜젝션이라도 다른 트랜잭션 연산에 끼어들 수 없다는 점을 의미합니다.
지속성은 트랜잭션이 성공적으로 완료됬을 경우, 결과는 영구적으로 반영되어야 한다는 점입니다.

 

2. REST API에 대해 설명해주세요.

RESTful API란 REST 아키텍처 스타일을 따르는 API입니다.
웹 서비스에서 자원을 정의하고 HTTP 메소드를 사용하여 CRUD작업을 수행합니다.
REST의 핵심은 요청의 목적을 명시적으로 드러내도록 작성하는 것 입니다.

 

 

🔥꼬리질문 : URL과 URI 차이점을 설명해주세요.🔥

URL과 URI는 모두 자원을 식별하는데 사용되지만 의미가 다릅니다.
URL은 네트워크에서 자원을 식별하는데 사용되는 URI의 일종입니다. 
예를 들어 http naver.com의 url은 웹사이트의 기본페이지인 index.html 파일이 있는 위치를 식별합니다.

URI는 네트워크에서 자원을 식별하는 것에 사용되는 URI의 일종입니다. URL, URN 및 기타 자원 식별자를 포함하는 포괄적인 용어입니다.
따라서 모든 URL은 URI지만, 모든 URI는 URL은 아닙니다. URI는 파일, 웹 사이트, 이메일 메시지 또는 기타 네트워크 리소스를 식별하는 데 사용할 수 있습니다. URL은 네트워크에서 자원의 위치를 ​​식별하는 데만 사용할 수 있습니다.

결론적으로는 URL은 자료의 위치, URI는 자료의 식별자라고 보시면 됩니다.

 

🔥꼬리질문 : HTTP와 HTTPS 차이점을 설명해주세요.🔥
HTTP와 HTTPS의 주요 차이점은 데이터가 전송되는 방식, 즉 SSL의 유무입니다. 
HTTPS는 HTTP 프로토콜에 보안 기능을 추가한 것으로, 이 보안 기능은 매우 중요합니다.
HTTP는 데이터를 평문으로 전송하는 반면 HTTPS는 암호화된 연결을 사용하여 데이터를 전송합니다. 
즉, HTTPS는 HTTP보다 안전합니다. 

SSL(Secure Sockets Layer)은 웹 서버와 클라이언트 간에 보안 연결을 설정하는 데 사용되는 암호화 프로토콜입니다.
보안강화하는 방법으로는 암호화, 인증, 무결성이 있습니다.

 

🔥꼬리질문 :Stateless Protocol에 대해 설명해주세요.🔥
Stateless Protocol은 서버가 클라이언트에 대한 정보를 저장하지 않는 프로토콜입니다.

즉, 각 요청은 독립적으로 처리되고 서버는 이전 요청이나 다음 요청에 대한 정보를 저장하지 않습니다.

Stateless Protocol에는 다음과 같은 장점이 있습니다.
1. 확장성: 클라이언트 수가 많더라도 확장하기 쉽습니다. 서버는 클라이언트에 대한 정보를 저장할 필요가 없으므로 확장할 때 더 많은 컴퓨팅 리소스가 필요하지 않습니다.
2. 효율성:  서버는 클라이언트에 대한 정보를 저장할 필요가 없으므로 각 요청을 처리하는 데 더 적은 리소스가 필요합니다.
3. 보안: 서버는 클라이언트에 대한 정보를 저장할 필요가 없으므로 공격자가 클라이언트에 대한 정보를 훔칠 가능성이 줄어듭니다.

상태가 없는 프로토콜에는 다음과 같은 단점도 있습니다.
1. 추적하기 어려움:  서버는 클라이언트에 대한 정보를 저장할 필요가 없으므로 각 요청을 추적하기가 어렵습니다.
2. 낮은 사용자 경험: 예를 들어, 로그인한 상태를 유지하려면 서버는 클라이언트에 대한 정보를 저장해야 합니다.

 

전반적으로 상태가 없는 프로토콜은 확장성, 효율성 및 보안성을 제공합니다. 그러나 추적하기 어렵고 사용자 경험이 떨어질 수 있습니다.

728x90
반응형

+ Recent posts