본문 바로가기
반응형

Computer Science25

OSI 7계층 이해하기 기술면접 단골 주제 중 하나이기 때문에 OSI 7계층에 대해서는 잘 알고 계시거나, 적어도 한번쯤은 들어보셨을 겁니다. 저는 기사 시험 준비를 하면서 [물데네전세표응]만 달달 외웠던 것 같습니다. OSI 7계층이 필요한 이유 OSI 7계층은 네트워크 사이의 원활한 통신을 위해 필요한 것들을 계층별로 나눠놓은 개념 모델로서 국제 표준입니다. 계층이라는 표현보다는 단계라고 하는 것이 이해하기엔 더 쉬울 것 같습니다. 이런 걸 굳이 왜 만들어서 사람을 피곤하게 하느냐 하는 생각이 들 수도 있는데 어느 계층에서 문제가 발생하는 지 파악하기가 쉬울 뿐 아니라 서로 다른 하드웨어, 소프트웨어를 사용하는 시스템 사이에서 원활하게 통신이 이루어지도록 하기 위함이라고 합니다. 또 개발자, 관리자 입장에서도 네트워크 통신.. 2023. 2. 17.
네트워크 프로토콜의 의미, 요소, 기능 프로토콜 은 약속입니다. 약속의 당사자는 서로 통신을 원하는 송신자들과 수신자들입니다. 프로토콜이 필요한 이유는 정보를 정확히 주고받기 위해서입니다. 가장 흔하면서도 중요한 프로토콜로 HTTP가 있습니다. TCP/IP, ARP, RARP, SMTP 등등 P로 끝나는 단어는 대부분 프로토콜이라고 보면 됩니다. 프로토콜의 핵심 요소 로는 구문(Syntax), 의미(Semantic), 타이밍(Timing)이 있습니다. 구문 은 주고 받을 정보의 구조와 형식을 의미합니다. 구문을 통해서 데이터를 어떻게 읽을 것인지, 어떤 순서로 표시될지를 알 수 있습니다. 의미 는 각각의 필드가 어떤 의미를 가지고 있는지 해석합니다. 또 전송 제어와 에러 발생 시 처리 방법을 포함합니다. 타이밍 은 데이터 손실을 막기 위해서 .. 2023. 2. 14.
네트워크 토폴로지 토폴로지(Topology)라는 것은 형태로 구분할 수 있는 네트워크의 설계 방법을 말합니다. 토폴로지라는 단어 자체는 위상, 각 요소의 배치라는 의미를 가지고 있습니다. 메시형 Mesh 모든 노드가 point-to-point(ptp)로 서로 연결되어 어느 하나에 이상이 생기더라도 전체 네트워크에 영향이 없는 것이 특징입니다. 하지만 그만큼 선을 많이 깔아야 하니 비용은 많이 들게 됩니다. 또 하나의 노드에 여러 케이블을 연결해야 하므로 이렇게 생긴 Multistation access unit(MSAU)이 필요합니다. 그래서 전체 네트워크의 일부만을 메쉬형태(partial mesh)로 만들기도 합니다. 스타형 Star 중앙의 허브에 모든 노드가 ptp로 연결되어 있는 형태입니다. 중앙 제어 노드의 입장에서.. 2023. 2. 8.
네트워크의 의미와 분류 네트워크란 네트워크는 그물처럼 연결된 통신망을 의미하는 net와 여러분이 제일 싫어하는 work의 합성어로, 통신망을 이용해 일을 하는 것을 의미합니다. 인터넷은 net과 net을 연결한다는 의미를 가지고 있어 네트워크보다 더 넓은 개념이라고 볼 수 있습니다. 네트워크의 분류 데이터 전송 방식에 따라 1. 회선 교환망(아날로그) + 독립적인 회선을 통해 통신하므로 보안에 강하지만 - 설치 비용이 많이 들고, 전송할 수 있는 데이터 양도 적으며 전송 효율도 떨어지는데다 눈치 없이 회선을 독점하는 놈이 있으면 네트워크 전체 효율을 낮추게 되는 단점이 있습니다. 2. 패킷 교환망(디지털) 모든 노드를 연결해 놓고 데이터만 패킷 단위로 쪼개서 전송하는 방식으로, 패킷은 마치 혈관을 타고 흐르는 지방 덩어리들처럼.. 2023. 2. 6.
[Web] Subresource Integrity 1. 개요 직역하면 '하위 자원 무결성' 이라는 의미를 가지고 있습니다. SRI 는 써드파티 서버에서 제공하는 리소스들이 변조되지 않았음을 개발자들이 확신할 수 있도록 하는 W3C 사양입니다. CDN을 피해야하는 이유에서 본 것처럼 CDN을 통해서 외부 리소스를 로드할 경우에는 Subresource Integrity(이하, SRI)를 활용하여 CDN의 취약점을 보완해줄 필요가 있습니다. 2. 사용법 먼저 integrity 속성에 넣어줄 SRI hash 값을 생성해야 합니다. 이 값은 "해시 알고리즘-해시값" 형태로 되어있습니다. 1) SRI Hash generator https://www.srihash.org/ 에서 로드할 리소스의 주소(아래의 경우 https://code.jquery.com/jquery.. 2023. 1. 30.
다이나믹 프로그래밍 Dynamic Programming 1. divide and conquer와 dynamic programming의 차이 divide and conquer(분할정복)는 하나의 문제를 해결할 수 있을 정도의 작은 부분으로 분할하여 하나하나 정복해나가는 프로그래밍 기법을 말합니다. 작게 나눌수록 복잡해 보였던 문제는 단순화되고 보다 쉽게 해결책을 도출해낼 수 있게 됩니다. dynamic programming(동적계획법)은 문제를 작은 조각들로 분해하여 한꺼번에 해결한다는 점에서 분할정복과 유사해보입니다. 하지만 분명한 차이가 있습니다. 분할정복은 하나의 문제를 작은 문제들로 나누고, 그 작은 문제들을 해결한 결과를 합쳐나가는 방식으로 문제에 대한 최종 해를 구하는 것인 반면, 다이내믹 프로그래밍은 일련의 문제들을 해결하기 위해서 문제를 작은 조.. 2022. 12. 29.
반응형