일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- STL
- DB
- Application Layer
- 데이터베이스
- dp
- 응용 계층
- 네트워크
- 부트시퀀스
- 관계형 모델
- Database
- 프로그래머스
- 임베디드
- Transport layer
- 자료구조
- baekjoon
- BHS
- 릿코드
- 전송 계층
- Djikstra
- C++
- Network
- 다익스트라
- 백준
- ps
- leetcode
- boot sequence
- swea
- BST
- 문제풀이
- Embedded
- Today
- Total
목록전체 글 (69)
BOBO's Note

크롤링(Crawling) 크롤링이란, 웹상에 존재하는 컨텐츠를 프로그래밍으로수집하는 작업이다. Scrapy Scrapy는 Python 기반의 오픈소스 웹크롤링 프레임워크이다. Scrapy의 구성요소는 다음과 같다. Engine: 모든 구성요소간 데이터 흐름 관리 Scheduler: 엔진으로부터 request를 받아 큐에 저장하고 이후 엔진에 다시 반환 Downloader: 웹 페이지 fetch해서 엔진을 거쳐 스파이더에 반환 Spider: response를 파싱해서 아이템을 추출 Item Pipeline: 스파이더에 의해 추출된 아이템 처리 1. 스파이더로부터 엔진이 request를 받는다. 2. 엔진은 스케쥴러에 request를 등록하고 다음 request를 요청한다. 3. 스케쥴러는 엔진에게 requ..
www.acmicpc.net/problem/1103 1103번: 게임 줄에 보드의 세로 크기 N과 가로 크기 M이 주어진다. 이 값은 모두 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 보드의 상태가 주어진다. 쓰여 있는 숫자는 1부터 9까지의 자연수 또는 www.acmicpc.net 풀이 방법 임의의 칸에서 움직일 수 있는 모든 칸에 대해서 DFS 방식으로 확인해보면 된다. 이때, 시간 초과가 발생할 수 있으므로 DP를 이용한다. memo[i][j]에 board[i][j]에서 시작할 때 최대 움직일 수 있는 횟수를 저장하면, 똑같은 위치를 재방문할 때 곧바로 결과값을 알아낼 수 있다. 우선 dfs() 함수에서는 현재 위치 cur에서 시작할 때, 최대 움직일 수 있는 횟수를 반환한다고 하자...

세그먼트 트리는 어떠한 배열이 주어졌을 때, 각 구간의 대표값(예. 합, 최대값 등)을 빠르게 구할 수 있는 자료구조이다. 배열의 크기가 N일 때, 임의의 구간에 대한 쿼리를 O(logN)에 수행할 수 있다. 인덱스 트리는 팬윅 트리(Fenwick Tree)라고도 하며, 세그먼트 트리처럼 각 구간의 대표값을 빠르게 구할 수 있다. 세그먼트 트리보다 구현하기 더 간단하고 속도가 빠르다는 장점이 있다. 이 포스터에서는 구간합을 세그먼트 트리를 이용해 빠르게 구하는 방법에 대해 알아보자. 구간합 구하기 배열 arr[0], arr[1], ..., arr[N-1]이 있다고 할 때, 임의의 구간 [l, r]에 대하여 구간합 arr[l] + arr[l+1] + ... + arr[r-1] + arr[r]을 구해라. 위..
https://programmers.co.kr/learn/courses/30/lessons/42629 코딩테스트 연습 - 라면공장 라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니�� programmers.co.kr 풀이 방법 하루에 밀가루를 1톤씩 사용하므로, 밀가루 재고가 amount일 때 현재 날짜가 amount 보다 크거나 같으면 밀가루 재고가 부족하다. 따라서 이 경우에는 그 전에 밀가루를 미리 구매해야 한다. 이때, 밀가루 구매 횟수를 최소화하기 위해서는 한번에 최대한 많이 구매할 수 있는 날에 구매해야 한다. 따라서 우선순위 큐를 두어서 한번에 구매할 수 있는..

Network Layer 네트워크 계층은 단말기 뿐만 아니라 라우터, 스위치 등 모든 네트워크 노드가 갖고 있는 계층이다. 네트워크 계층은 크게 2가지 기능을 한다. Forwarding: 패킷을 노드 외부로 내보낸다. → Data Plane (전송부) Routing: 목적지까지의 경로를 결정한다. → Control Plane (제어부) 전통적인 네트워크 구조에서는 각 라우터마다 전송부와 제어부를 갖는다. SDN(Software Defined Network)에서는 각 라우터가 전송부만 가지고, 제어부는 중앙 컨트롤러에 통합된다. IP Fragmentation / Reassembly 네트워크 링크는 최대 전송 크기인 MTU(Maximum Transmission Unit)을 갖고 있다. 따라서 이보다 큰 se..
보호되어 있는 글입니다.

Transport Layer 전송 계층에서는 프로세스 간의 논리적 통신 기능을 제공한다. 네트워크 계층에서 호스트 간의 논리적인 전송을 담당한다면, 전송 계층에서는 호스트 내의 프로세스 간의 통신을 담당한다. 응용 계층에서 받은 메시지를 segment로 쪼개어 네트워크 계층에 전송하고, 반대로 네트워크 계층에서 받은 segment를 합쳐서 메시지를 만들어 응용 계층으로 올려 보낸다. 대표적인 프로토콜로 TCP와 UDP가 있다. Multiplexing / Demultiplexing 멀티플렉싱이란, 여러 소켓에서 전송하려는 데이터에 전송 계층의 헤더를 붙여 이 segment를 네트워크 계층으로 전달하는 작업이다. 멀티플렉싱을 통해 sender는 하나의 physical link만 있어도 여러 sending p..

Transaction 트랜잭션은 DBMS의 데이터베이스를 접근하고 업데이트하는 프로그램 실행의 단위이다. 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위이다. 트랜잭션은 여러 연산을 실행하지만, DBMS의 입장에서는 데이터베이스의 데이터를 READ/WRITE하는 연산만 중요하다. 많은 사용자의 동시 접근을 위해 트랜잭션을 concurrent하게 처리해주어야 한다. ACID rules 데이터 무결성을 보장하기 위해 트랜잭션이 갖추어야 할 4가지 속성이다. Atomicity: 트랜잭션의 모든 연산은 완전히 반영되거나, 아예 반영되지 않아야 한다. (all or nothing) Consistency: 트랜잭션이 완료되면 언제나 일관성 있는 상태여야 한다. 트랜잭션을 실행..