Dev36 Data structure: Binary Search Tree (이진 탐색 트리) 서론 Binary Search Tree(이진 탐색 트리) 에 관한 지식들을 공부하고, 정리했던 내용을 바탕으로 글을 작성해 보았습니다 혹시나 틀린 내용이 있다면 지적해 주시면, 바로 반영하도록 하겠습니다 Binary Search Tree 란? Binary Search + Linked List Binary Search 장점 : 검색에 특화되어 시간 복잡도 O(log n) 단점 : 삽입 삭제는 되지 않음 Linked List 장점 : 삽입 삭제 시간 복잡도 O(1) 단점 : 검색 시간 복잡도 O(n) Binary Search Tree Binary Search 의 검색 능력을 유지하면서, 빈번한 자료 삽입 및 삭제가 가능하도록 하는 자료 구조 Binary Search Tree 의 특징 A 노드를 기준으로, B.. Dev/Computer Science 2024. 4. 9. OS - Paging(페이징 기법) 서론 페이징 기법에 관한 지식들을 공부하고, 정리했던 내용을 바탕으로 글을 작성해 보았습니다 혹시나 틀린 내용이 있다면 지적해 주시면, 바로 반영하도록 하겠습니다 Paging ? 모든 프로세스를 일정 크기로 잘라서 메모리에 불연속적으로 배치하는 것 Process 의 논리 주소 공간을 Page 라는 일정 단위로 자름 Memory 의 물리 주소 공간을 Frame 이라는 페이지와 동일한 Size 로 자름 왜 Paging 을 하는가? Process 들의 크기는 모두 제각각이다 프로세스들은 실행되는 시점에 메모리에 배치되어 있어야 실행이 가능하다 프로세스들을 메모리에 탑재하다 보면, 중간 중간에 실행이 끝나 메모리에서 삭제되어 빈 공간이 나타난다 새로 메모리에 배치할 프로세스의 크기가 빈 공간의 크기보다 크다면 .. Dev/Computer Science 2024. 4. 7. CI/CD, 무중단 배포 서론 CI/CD와 무중단 배포에 관한 지식들을 공부하고, 정리했던 내용을 바탕으로 글을 작성해 보았습니다 혹시나 틀린 내용이 있다면 지적해 주시면, 바로 반영하도록 하겠습니다 CI/CD 란? 어플리케이션 개발 단계부터 배포까지 모든 단계를 자동화를 통해 효율적이고 빠르게, 빈번히 배포할 수 있도록 하는 개발 프로세스 CI 란? Continuous Integration (지속적인 통합) 개발을 진행하면서도 품질을 관리할 수 있도록, 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있는 것을 의미 통합을 위한 단계의 자동화 코드 변경사항 이후에도 빌드, 테스트를 자동화 Main Repository 에 주기적인 Merge → 추가된 코드와 함께 Build, Test 를 자동으로.. Dev/Computer Science 2024. 4. 7. Network - Load Balancing (부하 분산) 서론 로드 밸런싱에 관한 지식들을 공부하고, 정리했던 내용을 바탕으로 글을 작성해 보았습니다 혹시나 틀린 내용이 있다면 지적해 주시면, 바로 반영하도록 하겠습니다 배경 및 기본 지식 Proxy “대리” 라는 뜻으로 생각하면 됨 무슨 일을 대신 처리하는 것 Proxy Server 특정 작업을 대신 처리해주는 서버 클라이언트 - 서버 사이의 중계 서버로, 통신을 대리 수행하는 서버 캐싱, 보안, 트래픽 분산 등 여러 장점을 가진다 종류로는 Forward Proxy, Reverse Proxy 가 있다 Reverse Proxy Reverse Proxy는 서버 앞단에 존재하며, 서버로 오는 요청을 대신 받아서 각 서버로 대신 전송해주는 역할을 한다 이를 통해 캐싱, 보안(서버의 IP주소를 클라이언트는 알 수 .. Dev/Computer Science 2024. 4. 7. 쿠키(Cookie)와 세션(Session), 그리고 토큰(Token) #1 배경 쿠키와 세션, 그리고 토큰은 HTTP 프로토콜의 stateless, connectionless 라는 특징을 어느정도 보완하기 위하여 등장했다 stateless : state(상태) 에 대한 정보를 저장하지 않는 HTTP의 특징 중 하나이다. 이전 상태에 대한 정보를 저장하지 않기 때문에, 서버에 연속된 요청을 보내더라도 서버는 사용자가 이전에 통신했음을 인지하지 못한다. connectionless : connection(연결)을 지속하지 않는다. 하나의 요청에 대한 응답을 마치면, 서버는 즉시 클라이언트와 연결을 끊는다. 우리가 흔히 말하는 3way handshaking을 통한 연결의 수립을 매 요청마다 반복한다. 왜 두가지 특징을 보완해야 하는가? 특정 웹사이트가 있다고 해보자, 우리는 주문을 하.. Dev/Java 2024. 4. 6. 이전 1 2 3 4 ··· 8 다음