일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 연결리스트 종류
- 최소힙
- JPA
- 완전이진트리
- spring
- 백준 장학금
- python
- JVM
- 엔티티 그래프
- 스케줄링
- 강화학습
- 운영체제
- 연결리스트
- 점근적 표기법
- heapq
- 멀티프로세서
- 백준장학금
- AVL트리
- 자료구조
- HTTP
- 이분탐색이란
- 최대 힙
- 알고리즘
- MSA
- SpringSecurity
- Kruskal
- posix
- 힙트리
- 프로세스
- jpa n+1 문제
- Today
- Total
목록전체 글 (107)
KKanging

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 10장 HTTP/2.0 1. HTTP/2.0의 등장 배경 HTTP/1.1은 커넥션을 하나를 두고 요청보내야만 응답을 받고 응답을 받고 요청을 보내는 구조를 가지고 있다. 이는 심각한 회전 지연을 피할 수 없었다. 이 문제를 회피하기 위해 병렬 커넥션이나 파이프라인 커넥션이 도입 되었지만 성능 개선에 대한 근본적인 해결책은 되지 못했다. 이에 구글은 SPDY라는 프로토콜을 개발했고 이는 헤더 압축과 한개의 커넥션으로 여러 요청을 동시에 보낸다는 점이 강점으로 HTTP보다 훨씬 빨랐다 이에 HTTP 작업 그룹은 SPDY를 기반으로 HTTP/2.0 프로토콜을 설계하기로 결정하였다...

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 9장 웹 로봇 웹 로봇은 사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램이다. 그 방식에 따라 크롤러, 스파이더 , 웜, 봇 등의 각양각색의 이름으로 불린다. 1. 크롤러와 크롤링 웹 크롤러는 먼저 웹체이지를 한 개 가져오고, 그다음 그 페이지가 가리키는 모든 웹페이지를 가져오고, 다시 그 페이지들이 가리키는 모든 웹페이지들을 가져오는, 이러한 일을 재귀적으로 반복하는 방식으로 웹을 순회하는 로봇이다. 이렇게 재귀적으로 따라가는 로봇을 크롤러 혹은 스파이더라고 부른다. 기어다니다(crawl) 인터넷 검색 엔진은 웹을 돌아다니면서 그들이 만나..

백준 장학금 1달 목표 1일 1 알고리즘 문제 해결( 못 푸는 문제는 풀이를 보고 다음에 다시 풀어보기) http 완벽 가이드 도서 1권 읽기 일주일에 자료구조 및 알고리즘 공부 후 블로그에 정리 3주 차 성과 1일 1 알고리즘 문제 해결: 성공 http 완벽 가이드 도서 1권 읽기: 진행 중(한 달 계획이라 진행 중입니다.) 일주일에 자료구조 및 알고리즘 공부 후 블로그에 정리: 성공 3주 차 성과 (증빙 자료) 1일 1 알고리즘 문제 해결 (백준) http 완벽 가이드 도서 1권 읽기: 진행 중(한 달 계획이라 진행 중입니다.) [http 완벽 가이드] 6장 프락시 (tistory.com) [http 완벽 가이드] 7장 캐시 (tistory.com) [http 완벽 가이드] 8장 통합점: 게이트웨이,..

이 내용은 http 완변 가이드란 책을 읽고 정리한 내용입니다. 더 자세한 내용이 궁금하시면 책을 직접 읽어보시는 걸 추천합니다. 8장 통합점: 게이트웨이, 터널 , 릴레이 이 장에서는 여러 종류의 리소스에 접근하는데 HTTP 가 어떻게 쓰이는지 알아보고, 다른 프로토콜이나 애플리케이션 간 통신에 HTTP 를 어떻게 사용하는지 알아볼 것이다. 게이트웨이: 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스 애플리케이션 인터페이스: 서로 다른 형식의 웹 애플리케이션이 통신하는 데 사용 터널: HTTP 커넥션을 통해서 HTTP 가 아닌 트랙픽을 전송하는데 사용한다. 릴레이: 일종의 단순한 HTTP 프락시로 , 한 번에 한개의 홉에 데이터를 전달하는 데 사용한다. 1. 게이트웨이 웹이 더 복잡한 리소스..

이 내용은 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..
브루트 포스 알고리즘: 완전탐색의 미학 브루트 포스 알고리즘은 컴퓨터 과학에서 사용되는 중요한 탐색 기법 중 하나입니다. 브루트 포스는 '무식하게 푼다'라는 뜻으로, 모든 가능한 경우를 하나씩 검사하면서 정확한 답을 찾는 방법입니다. 비록 최적화된 알고리즘이 아니더라도, 경우에 따라서는 간단하고 직관적인 해결책을 찾는 데 유용합니다. 브루트 포스의 의미와 사용 이유 브루트 포스는 간단한 아이디어에서 출발합니다. 모든 가능한 조합을 시도해보면 결국 정확한 답을 얻을 수 있을 것이라는 믿음에 기반을 두고 있습니다. 이는 여러 이유로 유용합니다. 확실한 결과: 브루트 포스는 모든 가능한 경우를 탐색하기 때문에 정확한 답을 얻을 수 있습니다. 어떤 경우에도 해결책을 놓치지 않습니다. 단순한 구현: 브루트 포스는..
from sys import stdin input = stdin.readline N,M,Q = map(int,input().split(" ")) row = {i:0 for i in range(N+1)} col = {i:0 for i in range(M+1)} for i in range(Q): n1,n2,n3 = map(int,input().split(" ")) if n1 == 1: row[n2] += n3 elif n1 == 2: col[n2] += n3 for i in range(1,N+1): for j in range(1,M+1): print(row[i]+col[j],end=" ") print() 풀이방법 n1 은 행 더하기인지 n2는 인덱스 n3는 더해지는 값으로 마지막 출력할 때 i행 j열의 더해..
from sys import stdin from collections import deque input = stdin.readline N = int(input()) str_li = [] s1 , s2 = '@','@' for i in range(N): temp = input()[:-1] #문자열 if temp == "?": if str_li: s1 = str_li[-1][-1] else: pass if str_li: if str_li[-1] == '?': s2 = temp[0] str_li.append(temp) M = int(input()) for i in range(M): temp = input()[:-1] if (temp[0] == s1 or s1=='@') and (temp[-1] == s2 or..