728x90
반응형

1. OSI 7계층에 대해 설명해주세요.

OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로, 
국제표준화기구 (ISO)에서 네트워크 간의 호환을 위해 OSI 7 계층이라는 표준 네트워크 모델을 만들었습니다. 
이 모델은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층 및 응용 계층으로 구성됩니다.

OSI 7계층은 다음과 같습니다:

1. 물리 계층: 전기적 신호로 변환하여 물리적인 전송이 가능하게 합니다. (리피터 , 케이블 , 허브)
2. 데이터 링크 계층: 인접한 노드간의 신뢰성 있는 데이터 전송을 제어합니다. ( 브릿지 , 스위치 )
3. 네트워크 계층: 종단간 전송을 위한 경로 설정을 담당합니다. ( 라우터 , IP )
4. 전송 계층: 종단간 신뢰성 있는 데이터 전송을 담당합니다. ( TCP , UDP )
5. 세션 계층: 응용 프로그램간의 논리적인 연결 생성 및 제어를 담당합니다. ( API , Socket )
6. 표현 계층: 데이터 표현방식, 상이한 부호체계 간의 변화에 대해 규정합니다. ( JPEG , MPEG )
7 .응용 계층: 사용자가 네트워크에 접근할 수 있도록 해주는 인터페이스를 제공합니다. ( HTTP , FTP , DNS )

 

 

계층을 3단계로 나누면,

계층1,2,3(네트워크 지원계층) : 하나의 장치에서 다른 장치로 전송되는 데이터의 물리적인 면을 처리

계층5,6,7(사용자 지원계층) : 관계 없는 소프트웨어 시스템 간 상호 운용성 제공

계층4(전송계층) : 네트워크 지원 계층과 사용자 지원 계층을 서로 연결,
네트워크 지원 계층이 전송한 것을 사용자 지원 계층이 사용할 수 있는 형태가 되도록 보장

 

 

OSI 7계층

참고: https://teamsparta.notion.site/osi-7-03d065a960704b4ca524c4a2d69ded2e

 

🔥꼬리질문🔥

 < SSH, TLS에 대해 설명해주세요 >.

더보기

SSH와 TLS는 둘 다 네트워크 통신을 보호하는 데 사용되는 프로토콜이지만 다른 용도로 사용됩니다.

SSH는 Secure Shell의 약자이며 네트워크를 통해 두 장치 간에 암호화된 보안 연결을 설정하는 데 사용되는 프로토콜입니다. 
일반적으로 원격 로그인 및 파일 전송에 사용됩니다. SSH를 사용하여 원격 장치에 연결하면 장치 간에 교환되는 모든 데이터가 암호화되므로 
네트워크에서 도청 중인 공격자가 데이터를 가로채거나 변조할 수 없습니다.

TLS는 Transport Layer Security의 약자로 웹 트래픽을 보호하는 데 사용되는 프로토콜입니다. 
SSL(Secure Sockets Layer)의 후속 제품이며 일반적으로 웹 서버와 웹 브라우저 간의 보안 통신을 제공하는 데 사용됩니다. 
HTTPS를 사용하여 웹 사이트를 방문할 때 TLS는 브라우저와 웹 서버 간에 전송되는 데이터를 암호화하는 데 사용되는 프로토콜입니다. 
TLS는 두 당사자 간에 교환되는 데이터의 인증, 기밀성 및 무결성을 제공합니다. 

요약하면 SSH는 일반적으로 원격 액세스를 위해 두 장치 간에 보안 연결을 설정하는 데 사용되는 반면 
TLS는 웹 트래픽을 보호하고 서버와 클라이언트 간에 교환되는 데이터에 대한 기밀성, 무결성 및 인증을 제공하는 데 사용됩니다.

 

<데이터 링크 계층에서 사용되는 에러 체크 기술은 어떤 것이 있나요?>

더보기

데이터 링크 계층에서 사용되는 에러 체크 기술에는 패리티 검사(Parity Check), 순환 중복 검사(CRC, Cycle Redundancy Check), 해밍 코드(Hamming Code) 등이 있습니다.
패리티 검사(Parity Check)는 데이터 뒤에 하나의 비트를 추가하여 오류가 있는지 찾아내는 방법입니다. 
데이터는 0과 1로만 이루어져 있기 때문에, 마지막에 비트 하나를 추가해서 데이터의 1의 총개수를 짝수 또는 홀수로 맞추는 형태입니다.
순환 중복 검사(CRC, Cycle Redundancy Check)는 데이터를 나누어서 나머지 연산을 수행하여 오류를 검출하는 방법입니다. 
이 방법은 패리티 검사보다 더 강력한 오류 검출 기능을 가지고 있습니다.
해밍 코드(Hamming Code)는 데이터 전송 중 발생할 수 있는 오류를 검출하고 수정하는 기능을 가진 에러 정정 코드입니다. 
이 코드는 데이터의 일부 비트를 추가하여 오류 검출 및 정정을 수행합니다. 
이러한 기술들은 데이터 전송 중 발생할 수 있는 오류를 검출하고 수정하는 역할을 합니다.

 

 < osi 7 계층을 기반으로 하는 네트워크 프로토콜은 어떤게 있나요? >

더보기

HTTP, SMTP, FTP, DNS, SNMP 및 SIP를 비롯한 여러 네트워크 프로토콜이 OSI 계층 7을 기반으로 합니다. 
이러한 프로토콜은 웹 브라우징, 이메일, 파일 전송, 네트워크 관리 및 VoIP와 같은 다양한 서비스를 사용자 애플리케이션에 제공합니다.

 

 

2. DP 알고리즘에 대해 설명해주세요.

DP(Dynamic Programming) 알고리즘은 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하기 않도록 설계함으로써
메모리를 적절히 사용하여 수행 시간 효율성을 향상시키는 방법입니다.
DP구현 방법은 일반적으로 Top-down(하향식)과 Bottom-up(상향식)으로 구성됩니다.
대표적인 예시로는 피보나치 수열이 있습니다.

 

DP 알고리즘의 대표적인 예시로 피보나치 수열이 있습니다.
피보나치 수열은 다음과 같은 점화식으로 표현됩니다: F(n) = F(n-1) + F(n-2). 이를 단순 재귀 함수로 구현하면 같은 함수를 계속해서
중복 호출을 하기 때문에 시간복잡도가 O(2^n)이 됩니다. 이는 n이 커질수록 엄청나게 커지게 됩니다.

하지만 DP 알고리즘을 사용하면 중복 호출을 방지할 수 있습니다. 이미 계산된 결과(하위 문제)는 별도의 메모리 영역에 저장하여
다시 계산하지 않도록 설계함
으로써 메모리를 적절히 사용하여 수행 시간 효율성을 비약적으로 향상시키는 것입니다.
이를 메모이제이션(Memoization)이라고 합니다. 정상적으로 중복호출을 방지하면 시간복잡도가 O(n)이 됩니다.

 

🔥꼬리질문🔥

<이미 계산된 결과를 다시 계산할 일이 없으면 오히려 메모리 사용이 효율적이지 않은 건 아닌가요? 이 관점에 대해서는 어떻게 생각하시나요?>

더보기

이미 계산된 결과를 다시 계산할 일이 없다면 DP 알고리즘을 사용하지 않아도 됩니다. 
그러나 DP 알고리즘은 이미 계산된 결과를 다시 계산하지 않아야만 효율적으로 동작할 수 있기 때문에, 
입력 크기가 작은 경우에는 DP 알고리즘보다 더 간단한 알고리즘을 사용하는 것이 더 효율적일 수 있습니다. 
하지만 입력 크기가 큰 경우에는 DP 알고리즘이 더 효율적일 수 있습니다. 
따라서 DP 알고리즘을 사용할지 여부는 입력 크기와 같은 여러 가지 요소를 고려하여 결정해야 합니다.

 

<DP 알고리즘을 사용할 때 고려해야 할 최적 부분 구조와 중복 부분 문제에 대해서 설명해주세요.>

더보기

DP 알고리즘에서 최적 부분 구조(Optimal Substructure)란 큰 문제를 작은 문제로 나눌 수 있으며, 
작은 문제의 최적해를 이용해서 큰 문제의 최적해를 구할 수 있는 성질을 말합니다.  
(최적해(Optimal Solution)란 주어진 문제에서 가장 좋은 해결책을 말합니다.)
중복 부분 문제(Overlapping Subproblems)란 작은 문제들이 서로 중복되어 반복적으로 해결되는 성질을 말합니다. 
DP 알고리즘은 이러한 최적 부분 구조와 중복 부분 문제를 이용하여 문제를 해결합니다. 
따라서 DP 알고리즘을 사용할 때는 이러한 성질을 고려하여 적절한 구현 방법을 선택해야 합니다.

 

<dp를 사용해 해결할 수 있는 문제들은 대부분 어떤 유형에 속하나요?>

더보기

동적 프로그래밍(DP)은 최적화 문제를 더 작은 하위 문제로 나누고 각 하위 문제를 한 번만 해결하고 결과를 저장하여 중복 계산을 방지하여 최적화 문제를 해결하는 데 사용되는 기술입니다. 
DP는 광범위한 문제를 해결하는 데 사용할 수 있지만 다음과 같은 특성을 가진 문제에 가장 일반적으로 사용됩니다.

겹치는 하위 문제: 문제는 더 작은 하위 문제로 나눌 수 있으며 이러한 하위 문제에는 겹치는 하위 하위 문제가 있습니다. 
이는 동일한 하위 하위 문제를 여러 번 풀 수 있으며 중복 계산을 피하기 위해 DP를 사용할 수 있음을 의미합니다.

최적의 하위 구조: 더 큰 문제에 대한 최적의 솔루션은 더 작은 하위 문제에 대한 솔루션을 결합하여 찾을 수 있습니다. 
즉, 더 작은 하위 문제에 대한 솔루션을 사용하여 더 큰 문제에 대한 솔루션을 얻을 수 있습니다.

독립 하위 문제: 하위 문제는 서로 독립적으로 풀 수 있습니다. 이는 하나의 하위 문제에 대한 솔루션이 다른 하위 문제에 대한 솔루션에 의존하지 않음을 의미합니다.

일반적인 예에는 그래프에서 최단 경로 찾기, 두 문자열 간의 가장 긴 공통 하위 시퀀스 계산 및 배열에서 하위 배열의 최대 합계 찾기가 포함됩니다.

728x90
반응형

+ Recent posts