RDB와 NoSQL의 차이에 대해 설명해주세요RDB, 관계형 데이터베이스는 엄격한 규칙(스키마)에 따라 데이터를 저장한다. 그렇기 때문에 데이터가 중복 없이 체계적으로 관리되고, 테이블 간 관계를 맺어 데이터를 합쳐서(Join) 보기 용이하다. 데이터의 일관성(ACID)을 보장하기 때문이다. 하지만, 규칙이 엄격하기 때문에 정해진 형식과 다른 데이터는 RDB에 보관하기 어렵다. NoSQL은 정해진 규칙(스키마)이 없거나 매우 유연한 형태로 존재한다. 어떤 형태의 데이터든 빠르게 저장할 수 있다는 특징이 있어서, 비정형 데이터 저장에 주로 사용된다. 만약 저장소 공간이 부족해지면, 수평적인 확장이 용이하기 때문에 확장성이 뛰어나다. 하지만, 해당 저장소 안에 데이터 간의 관계성을 파악하기에는 매우 복잡하다..
정규화가 무엇인가요?정규화는 관계형 데이터베이스를 설계할 때, 데이터의 중복을 최소화하고, *무결성을 보장하기 위해 테이블을 특정 규칙에 따라 분해하는 과정이다. 정규화를 통해 삽입, 수정, 삭제 시에 발생할 수 있는 이상현상을 방지하고, 데이터 구조를 더 효율적으로 논리적으로 만들 수 있다. *무결성:데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다. - 정확성 : 중복이나 누락이 없는 상태 - 일관성 : 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태 - 유효성 : 사용자로부터 값을 입력받을 때 정확한 값만 입력되도록 하는 성질 예를 들어보자.여기 학생과 수강 과목 정보가 하나의 엑셀 시트에 저장되어 있다. 만약 이렇게 저장되어 있을 때, 아래와 같은 상황이 발생하면 어떨까? - ..
XSS에 대해서 설명해주세요.XSS(Cross-Site Scripting), 사이트 간 스크립팅은 공격자가 신뢰받는 웹사이트의 응답 페이지에 악의적인 스크립트를 삽입하는 공격 기법을 말한다. 해당 스크립트가 수신자의 브라우저에서 그대로 실행되면서, 공격자는 사용자의 세션 정보나 쿠키를 탈취하거나 의도치 않은 행위를 수행하도록 만들 수 있다. 예를 들어보자. 이처럼 XSS는 웹사이트가 사용자의 입력을 제대로 검증하거나 처리하지 않고, 그대로 페이지에 표시할 때 발생하는 보안 취약점이라 할 수 있다. Q1. 저장형(Stored) XSS와 반사형(Reflexcted) XSS의 가장 큰 차이점은 무엇인가요?저장형 XSS : 악성 스크립트가 서버의 데이터베이스에 영구적으로 저장되어 불특정 다수를 공격한..
멀티플렉싱이 무엇인가요? 멀티플렉싱은 송신 측에서 여러 개의 서로 다른 어플리케이션(프로세스)에서 오는 데이터 스트림들을 하나의 전송 계층 프로토콜(TCP 또는 UDP)를 통해 묶어 내보내는 기술이다. 예를 들어보자. *멀티플렉싱 (Multiplexing, 다중화):내 컴퓨터(송신 측)에서는 크롬(웹 서핑)도 하고, 카카오톡(채팅)도 하고, 게임도 동시에 한다. 이 3개의 애플리케이션은 각자 다른 데이터를 인터넷으로 보내려고 한다. 이때, 운영체제는 이 3개의 다른 데이터들을 모두 걷어서, 하나의 거대한 TCP/UDP 세그먼트에 담는다. 그리고 이 세그먼트들을 하나의 IP 패킷에 담아 하나의 랜선으로 내보내게 된다. 만약 이 기능이 없다면, 크롬 전용 도로, 카카오톡 전용 도로, 게임 전용 도로를 따로..
서브넷 마스크와 게이트웨이 서브넷 마스크는 IP 주소에서 네트워크 영역과 호스트 영역을 구분하는 32비트 값으로, 이를 통해 컴퓨터는 특정 IP 주소가 자신과 같은 내부 네트워크에 있는지 외부 네트워크에 있는지 판단할 수 있다. 게이트웨이는 내부 네트워크에 속한 장치가 외부 네트워크(인터넷)와 통신하기 위해 거치는 관문 역할을 하는 라우터의 사설 IP 주소이다. Q1. 그럼 게이트웨이 주소는 반드시 설정해야 하나요?그건 아니다. 만약 해당 컴퓨터가 내부 네트워크(예: 사내망)에서만 통신하고 외부 인터넷을 전혀 사용하지 않는다면, 게이트웨이 주소를 설정할 필요는 없다. Q2. 서브넷 마스크가 255.255.255.0 이면 사용 가능한 호스트(PC)는 몇 개 인가요?호스트 영역이 8비트(0 부분)이므..
로드밸런서가 무엇인가요?로드밸런서는 특정 서비스로 들어오는 네트워크 트래픽(요청)을 여러 대의 백엔드 서버에 효율적으로 분산시켜주는 장치 또는 소프트웨어이다. 단일 서버에 과부하가 걸리는 것을 방지하고, 일부 서버에 장애가 발생하더라도 중단 없이 서비스를 제공할 수 있도록 하여 전체적인 서비스의 가용성과 성능을 향상시키는 역할을 한다. 예를 들어보자. 로드밸런서는 은행의 인기 있는 창구 앞에 있는 안내직원이다.상황 : 10개의 처리 창구 (서버)가 있는 은행에 수많은 손님(트래픽)이 동시에 몰려오고 있다.안내직원의 역할 (로드 밸런서) :손님이 들어오는 즉시, 10개의 창구 중 가장 한가한 창구가 어디인지 실시간으로 파악한다.손님에게 “3번 창구로 가세요”, “다음 손님은 5번 창구로 가세요” 라며 요청..