일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 장학금
- MSA
- 이분탐색이란
- jpa n+1 문제
- 프로세스
- posix
- Kruskal
- heapq
- SpringSecurity
- 최대 힙
- 완전이진트리
- 스케줄링
- 강화학습
- 운영체제
- spring
- python
- 엔티티 그래프
- 백준장학금
- 연결리스트
- 자료구조
- 최소힙
- HTTP
- JPA
- JVM
- 멀티프로세서
- 알고리즘
- AVL트리
- 힙트리
- 연결리스트 종류
- 점근적 표기법
- Today
- Total
목록cs (57)
KKanging

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 7장 캐시 웹 캐시는 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치이다. 1. 불필요한 데이터 전송 복수의 클라이언트가 자주 쓰이는 원 서버 페이지에 접근할 때, 서버는 같은 문서를 클라이언트에게 각각 한 번씩 전송하게 된다. 이러한 반복적인 수행은 네트워크 대역폭을 잡아먹고 전송을 느리게 하며 웹 서버에 부하를 준다. 캐시를 이용하면, 첫 번째 서버 응답은 캐시에 보관한다. 캐시된 사본이 뒤이은 요청들에 대한 응답으로 사용 될 수 있기 때문에, 원 서버가 중복해서 트래픽을 주고 받는 낭비가 줄어들게 한다. 2. 대역폭 병목 캐시는 또한 네트워크 병목을 줄여준다...

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 6장 프락시 웹 프락시 서버는 클라이언트와 서버 사이에 중개자 역할을 한다. 이 글은 프락시가 어떤 일을 하는지와 어느 위치에 있는지 등을 다룬다. 1. 웹 중개자 ( 프락시란) 프락시는 트랜잭션을 수행하는 중개인이다. 클라이언트 입장에선 서버처럼 서버 입장에선 클라이언트 처럼 작동하므로 HTTP 클라이언트와 서버의 규칙을 잘따라야 한다. 1.1 개인 프락시와 공유 프락시 프락시의 종류는 크게 개인 프락시 공유 프락시로 나뉜다. 공유 프락시 여러 클라이언트가 함께 사용하는 프락시 대부분 공유 프락시이고 중앙 집중형 프락시를 관리하는게 비용 효율이 좋다. 캐시 프락시 같은 공유..

이분 탐색이란 이분 탐색의 특징 일반적으로 크기가 N인 배열이 순서대로 정렬되어 있을 때 사용할 수 있다. 수행시간이 O(logn)으로 완전 탐색 알고리즘 보다 훨씬 단축된다. 이분탐색은 왜 필요로 할까 위와 같은 N=5 배열이 있고 우리는 배열의 원소를 찾는 과정을 수행한다고 가정해보자 만약 브루트 포스 알고리즘 ( 완전 탐색 알고리즘)을 사용한다면? 1을 찾는다면 한번에 찾을 수 있다. 하지만 20을 찾는다면 20을 찾을 때까지 5번의 수행을 해야한다. 위 예시는 배열의 크기가 작지만 1024개의 크기라고 가정하면 1024번을 수행한다. 이분탐색의 원리 찾는 대상 20 mid 인덱스 값을 구한다 이때 mid 인덱스는 탐색하는 배열의 첫 원소와 마지막 원소의 인덱스의 중간값이다. mid = (start..
브루트 포스 알고리즘: 완전탐색의 미학 브루트 포스 알고리즘은 컴퓨터 과학에서 사용되는 중요한 탐색 기법 중 하나입니다. 브루트 포스는 '무식하게 푼다'라는 뜻으로, 모든 가능한 경우를 하나씩 검사하면서 정확한 답을 찾는 방법입니다. 비록 최적화된 알고리즘이 아니더라도, 경우에 따라서는 간단하고 직관적인 해결책을 찾는 데 유용합니다. 브루트 포스의 의미와 사용 이유 브루트 포스는 간단한 아이디어에서 출발합니다. 모든 가능한 조합을 시도해보면 결국 정확한 답을 얻을 수 있을 것이라는 믿음에 기반을 두고 있습니다. 이는 여러 이유로 유용합니다. 확실한 결과: 브루트 포스는 모든 가능한 경우를 탐색하기 때문에 정확한 답을 얻을 수 있습니다. 어떤 경우에도 해결책을 놓치지 않습니다. 단순한 구현: 브루트 포스는..

분할정복(divide and conquer) 분할정복이란 두괄식으로 설명하자면 큰 문제를 작은 문제로 나눠서 작은 문제의 문제들을 해결하고 그 해결한 값으로 큰문제를 해결하는 해결 방식이다. 분할정복의 구성 divide(분할) : 문제를 작은 크기의 문제들로 나눈다 conquer(정복): 더 이상 나눌 수 없는 문제라면 해를 구한다. conbine : 작은 문제의 해를 합쳐서 original 문제의 해를 구한다. conquer은 더 나눌수 있는 문제라면 위 방식을 재귀적으로 반복한다.큰문제 (divide) → 작은 문제 작은 문제 (conquer)하지만 더 나눌수 있다면 divide ex) 분할 정복 예 거듭 제곱 예 3^8을 구한다고 가정 3을 한번씩 8번 곱할 수 있음 하지만 분할정복을 사용하면 위 ..

최소신장 트리(MST: Minimum Spanning Tree)란 그래프의 정점이 다 포함되어있는 트리( 신장 트리 (spanning tree)) 가중치 그래프가 주어질 경우 간선들의 비용 합이 최소가 되는 신장 트리 cycle이 발생하면 안됨 그래프란 → 노드(정점 vertex)와 그 노드를 연결하는 간선을(edge) 하나로 모아놓은 자료구조 무방향 그래프: 간선이 방향이 없는 그래프 방향 크래프: 간선의 방향이 있는 그래프 그래프의 표현 방법 인접 행렬 인접 리스트 인접행렬 가중치 그래프란 그래프의 간선에 가중치(weight)를 부여한 것 트리란 → 그래프의 한 종류 → Cycle이 불가능 (그래프에서 사이클(Cycle)이란 어떤 특정 정점에서 출발하여 간선과 정점들을 지 나 다시 처음에 출발했던 특..

greedy 알고리즘이란 매 선택의 순간마다 순간 (local)에 최적인 답을 선택하여 전체 최적해를 구할거라고 기대를 하는 알고리즘이다 순간마다의 최적이라고, 그 순간들을 수집한 최종적인 해답이 최적해를 보장하지는 않는다 (하지만 최적해를 보장하는 예는 계산 속도가 엄청 빠르다) -greedy 알고리즘을 적용하기 좋은 조건 → greedy 알고리즘은 항상 최적해를 보장하지는 않지만 최적해를 보장하는 2가지 조건이 있다 탐욕적 선택 속성: 앞의 최적해 선택이 이후의 최적해 선택에 영향을 주지않는다.즉, 탐욕적 선택으로 전체 문제의 최적해를 반드시 구할 수 있다는 것을 보여야 한다. 최적 부분 구조 : 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성된다. -greedy 알고리..

*** AVL트리는 이진탐색트리의 종류입니다. 이진탐색트리의 개념을 모른다면 보는 것을 추천합니다 https://kkangmg.tistory.com/15 1. AVL 트리 이진 탐색 트리의 단점 이진 탐색 트리는 평균 복잡도가 O(logn)으로 효율적인 트리이다. 하지만 트리의 균형(balance)이 깨지면 O(n)으로 비효율적인 트리가 된다. 비효율적인 이진 탐색 트리 AVL 트리란 발명자인 Adelson-Velsky and Landis 에서 따온 이름 이진 탐색 트리의 종류 자가 균형 이진 탐색 트리이다. 이진탐색트리의 단점을 보완하여 트리의 균형을 유지한다. 검색, 삽입 , 삭제 연산에서 평균과 최악 둘 다 O(logn)의 시간 복잡도를 가진다. 원리 트리의 높이를 통해 균형도(Balance Fac..

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 5장 웹 서버 1. 다채로운 웹 서버 웹 서버라는 용어는 웹 서버 소프트웨어와 웹페이지 제공에 특화된 장비 양쪽 모두를 가리킨다. 웹서버는 HTTP 요청을 처리하고 응답을 제공한다. 1.1 웹 서버 구현 웹 서버란 HTTP 및 그와 관련된 TCP처리를 구현 웹서버는 자신이 제공하는 리소스를 관리 웹서버를 설정, 통제 , 확장하기 위한 관리 기능을 제공한다. 웹서버는 TCP커넥션 관리에 대한 책임을 운영체제와 나눠 갖는다. 운영체제는? 컴퓨터 시스템의 하드웨어를 관리하고 TCP/IP 네트워크 지원 웹 리소스를 유지하기위한 파일시스템 현재 연산 활동을 제어하기 위한 프로세스 관리..

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 4장 커넥션 관리 1. TCP 커넥션 HTTP 통신은 TCP/IP 통신을 통해 데이터를 전송한다. 순서 브라우저가 호스트명을 추출한다. 브라우저가 포트 번호를 얻는다. 브라우저가 IP주소와 포트로 TCP 커넥션을 생성한다. 브라우저가 서버로 HTTP GET 요청 메시지를 보낸다. 브라우저가 서버에서 온 HTTP 응답 메시지를 읽는다. 브라우저가 커넥션을 끊는다 1.1 신뢰할 수 있는 데이터 전송 통로인 TCP TCP 커넥션은 인터넷을 안정적으로 연결해준다. 클라이언트에서 데이터를 전송하면 한쪽에 있는 바이트들은 반대쪽으로 순서에 맞게 전달된다. 1.2 TCP스트림은 세그먼트로..