CS

CS/SQL

[MySQL] Connection Pool을 사용하는 이유

1. Connection이란? 클라이언트(애플리케이션)측에서 데이터베이스에 접속해서 질의를 수행한 후, 결과를 받고 접속을 종료하는 일련의 과정을 의미한다. mysql.createConnection() -> connection.connect() -> connection.query() -> connection.end() 2. Connection Pool이란? 사용자의 요청에 따라 Connection을 생성하다 보면 많은 수의 연결이 발생했을 때 서버에 과부하가 걸리게 된다. 이러한 상황을 방지하기 위해 미리 일정수의 Connection을 만들어 Pool에 담아뒀다가 사용자의 요청이 발생하면 연결을 해주고 연결 종료 시 Pool에 다시 반환하여 보관하는 것이 바로 Connection Pool이다. 이러한 C..

CS/알고리즘 문제 풀이

[백준] 9205 - 맥주 마시면서 걸어가기 [Python(파이썬)]

문제 www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 풀이 문제에 50m, 20병 등과 같은 제약조건들이 덧붙여져 있어 헷갈릴 수 있는 문제였다. 쉽게 말하자면, 편의점 혹은 페스티벌 좌표까지의 거리가 1000m이하여야 한다는 의미였다. 문제 분류는 BFS&플로이드-와샬 알고리즘이었지만, 나는 BFS 개념에 그리디 알고리즘을 적용시켜서 풀어봤다. 먼저 시작 좌표를 큐에 담은 뒤, 계속 pop하면서 목적지까지의 거리가 1000m이하인지 체크한다. 만약 목..

CS/알고리즘 문제 풀이

[백준] 10026 - 적록색약 [Python(파이썬)]

문제 www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이 간단한 그래프 탐색 문제였다. 기본적으로 DFS로 풀이하되 적록색약자의 경우엔 탐색시에 조건을 추가하여 현재 방문한 노드가 'G'라면 'R'인 노드를 탐색할 수 있고, 'R'이라면 'G'인 노드를 탐색할 수 있게끔 했다. 코드 import sys sys.setrecursionlimit(10**6) def dfs(y, x): visited[y][x] = 1 for i in range(4): ny..

CS/SQL

[SQLD] Join 연산 정리

1. JOIN이란? 두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 의미한다. 일반 적인 경우 행들은 PK나 FK 값의 연관에 의해 JOIN이 성립되지만, 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로도 JOIN이 성립 가능하다. 2. EQUI JOIN vs Non EQUI JOIN EQUI JOIN(등가 조인)은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법으로 대부분 PK ↔ FK의 관계를 기반으로 한다. 하지만, 반드시 PK ↔ FK의 관계로만 EQUI JOIN이 성립하는 것은 아니다. Non EQUI JOIN(비등가 조인)은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하지 않는 경우에 사용된다. Non EQ..

CS/알고리즘 문제 풀이

[백준] 2805 - 나무 자르기 [Python(파이썬)]

문제 www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 풀이 이진탐색 문제였다. N의 범위가 크기 때문에 O(N^2)의 풀이로는 시간초과가 날 수 밖에 없다. 절단한 나무 길이의 합(_sum)을 집으로 가져가야 하는 나무의 길이(M)와 비교하여 포인터를 옮긴다. 이때, 합이 길이보다 작다면 right포인터를 mid-1로 줄여서 탐색의 범위를 줄인다. 반대로 크다면 left포인터를 mid+1로 옮긴 후, 현재 mid포인터가..

코택
'CS' 카테고리의 글 목록 (7 Page)