CS28 [CS] 이진 탐색 트리의 문제점 이진 탐색 트리 Binary Search Tree이진 탐색트리에 새로운 노드가 삽입이 되면 부모의 노드보다 작은 값은 왼쪽으로 큰 값은 오른쪽으로 추가하면서 서브트리가 계속 구성되어진다. 이때, 자료가 많아질수록 트리의 높이가 커져 검색에 불리해지고 최악의 경우 특정 노드를 탐색하는데 log(n) 이 소요된다.예를들어 지금까지 배운 방식대로 1 , 2, 3, 4 를 이진트리에 추가한다면 아래의 그림과 같이 된다. 위의 사진 처럼 이진 탐색트리가 한쪽으로 치우쳐저 있는 트리를 편향 이진 탐색 트리(skewed binary search tree)라고 부르며, 이때가 성능면에서 최악의 경우(worst case)이다.이처럼 최악의 경우의 성능을 갖거나 계속 트리의 높이가 높아지는 일을 방지하기 위해 나온것이 .. 2024. 6. 19. [CS] TCP 신뢰성 TCP : Transmission Control Protocol인터넷에서 데이터를 전송하는 주요 프로톤콜 중 하나로, IP와 함께 TCP/IP라고 불린다.신뢰성을 보장한다는 특징을 갖는데, 이 신뢰성에 대해 설명하고자 한다. TCP 개념에 대해서는 이전 게시글을 참고.https://pearhj.tistory.com/59 [CS] TCP/UDPTCP (Transmission Control Protocol, 전송 제어 프로토콜)인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜로 TCP/IP 프로토콜이라고도 불린다.연결 기반이기 때문에 데이터를pearhj.tistory.com 순서 보장데이터 패킷에 Sequence Number를 부여해 수신자가 패킷을 올바른 순서대로 재조립 할 수 있도.. 2024. 6. 17. [CS] 네트워크 - 3 way handshake, 4 way handshake TCP (Transmission Control Protocol)인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜.TCP는 애플리케이션에게 신뢰적이고 연결지향성 서비스를 제공한다. 일반적으로 TCP와 IP는 함께 사용되며 IP는 배달을, TCP는 패킷의 추적 및 관리를 한다. TCP는 연결형 서비스로, 신뢰적인 전송을 보장하기에 hanshaking하고 데이터의 흐름제어와 혼잡제어를 수행하며 그로인해 속도가 느리다. 특징3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 연결을 해제한다.흐름 제어, 혼잡 제어.높은 신뢰성 보장UDP보다 느린 속도전이중(Full-Duplex), 점대점(Point to Point) 방식. UDP (U.. 2024. 6. 13. [CS] Thread Safe 멀티 스레드 프로그래밍멀티스레드 프로그래밍은 하나의 프로세스에서 여러 개의 스레드를 만들어 자원의 생성과 관리의 중복을 최소화하는 것이다.장점멀티 프로세스에 비해 메모리 자원소모가 줄어든다.Heap 영역을 통해서 스레드 간의 통신이 가능하기 때문에 프로세스 간의 통신이 간단해진다.스레드의 컨텍스트 스위칭은 프로세스의 컨텍스트 스위칭보다 훨씬 빠르다.단점힙 영역에 있는 자원을 사용할 때 동기화를 해야한다.동기화를 위해서 락을 과도하게 사용하면 성능 저하가 발생할 수도 있다.하나의 스레드가 비정상적으로 동작하면 다른 스레드도 영향을 받아 종료하게 될 수도 있다. 스레드 안전 Thread-Safety스레드 안전(Thread-Satety)란 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가.. 2024. 6. 10. 이전 1 2 3 4 ··· 7 다음