일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- private.pem
- ssl.key
- add colume
- 개발자와 비즈니스 관계
- 숲을 바라보는 개발자
- 비즈니스
- 알고리즘
- 개발자의 마인드
- #알고리즘
- 업비트 웹소켓
- #백준 #드래곤커브 #알고리즘
- slack bot
- innodb_buffer_pool_size 오류
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- 정렬
- 데이터베이스 오류
- django slack
- 웹소켓 api
- 슬랙봇
- sed명령어
- 개발자와 비즈니스
- AWS Aurora
- django 슬랙봇
- #데이터베이스 #트랜잭션 #ACID #격리수준
- django slack bot
- public.pem
- MySQL
- 비즈니스적 관점에서 생각하는 개발자
- django #django 5.0 #django 5.0 요약
- 개발자에세이
- Today
- Total
Info-Tech
동적 프로그래밍에서 지나치게 많이 일을 해서 좀 줄여보자는 취지로 만들어졌음. 미래를 생각하는게 아니라, 현재상황에서 최선을 택하는 기법이다. 활동선택문제와 백팩문제에서 쓰인다. 1.활동선택문제 이문제는 한 강의실에서 여러 수업을 진행한다고 했을 때, 가장 많이 할 수 있는 경우를 선택하는 문제이다. Si는 시작시간, Fi는 종료시간이다. 위 표를 보면 a1, a4와 a1,a2는 동시대에 진행되기 때문에 선택을 할 수 없다. 하지만 a1,a3은 선택이 가능하다. 즉 결과적으로 A1, a3, a6,a8 || A1, a3, a7, a9 이 후보지이다. G18을 a1이후, a8 이전으로 보면 선택 될수 있는 후보는 {a3,a5,a6,a7} 이다. 이중에서도 겹치지 않게 골라보면 {a3,a6} {a3,a7} {..
이 문제는 Union-find의 대표적인 문제이다 입력중에서 0인 경우 union을 해주면 되고, 1인 경우 find를 해주어서 루트가 똑같을 경우 YES, 아닐 경우 NO를 출력 해 주면 된다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { static int parent[]; static int rank[]; public stati..
이진탐색을 하기 위해서는 데이터가 정렬이 먼저 되어 있어야 한다. 배열 { 1, 2, 4, 5, 6, 10,13,15 } 에서 4 ( = target값) 를 찾는다고 가정하자. 이진탐색의 기본 방법은 left의 Index와 해당 범위 내의 right Index를 2로 나뉘어 mid값을 찾아가는 가정이다. 처음의 mid = (0+7)/2arr[mid] = arr[3] = 5 즉, 우리가 찾고자 하는 값보다는 크다. 그럴 때는 right의 값을 현재 mid - 1을 해준다. 만약 target 값이 컸다면 left = mid+1을 해준다. 두번쨰 mid = (0+2)/2;(right = mid-1)을 해줬음.arr[mid] = arr[1] = 2, 즉 우리가 찾고자 하는 값보다는 작다 세번째 mid = (1+..
disjoint set 이라고도 불리며 서로소 집합이라고도 한다. 우선 서로소 집합이라는 표현부터 알아봐야 한다. 1 2 3 4 5 6 이처럼 각각의 서로다른 요소가 들어있다. 123 4 5 6 1과 2를 합친 상태이다. 123 456 4,5,6 을 합친 상태이다. 즉 이말은 4와 5를 합친 후에 5와 6을 합친 상황이다. 123 456 만약 1과 4를 합치면 이렇게 된다 -> 그 이유는 (1,2)하나의 집합이였고 (4,5,6)집합이 합쳐졌기 때문이다. 즉 두 집합에 속한 요소들을 합치게 되면 두 집합 자체가 합쳐지게 된다. 노드를 트리구조로 만들기 int parent[100];int size[100]for(int i=0; i
파이썬에서 urllib 혹은request를 보낼 때 간혹 이와 같은 오류를 접할 수 있다. 이때 ssl인증을 거쳐갈 임시의 context를 생성 할 수 있다. import ssl ssl._create_default_https_context = ssl._create_unverified_context 위의 구문을 추가해주면 된다. 자세한 원인과 해결 방법은 >> https://stackoverflow.com/questions/27835619/urllib-and-ssl-certificate-verify-failed-error
쇼핑몰에서 판매하는 상품을 ‘0’원에 뿌리는 이벤트로, 준비된 상품수에 맞추어 선착순으로 주문하는 이벤트였습니다. 당시 웹 서버를 담당하는 아키텍쳐 입니다. 회사에서는 모든 서비스가 AWS에서 돌아가는 환경이였습니다. 기존 서버 스택 AWS 인스턴스 EC2 4대 (2대 web 서버, 1대 db서버, 1대 Redis서버) 문제점 이벤트 시작과 동시에 서버 터짐 db connection connection error 트랜잭션이 제대로 작동하지 않아 구매 가능한 상품보다 초과 구매가 된 상황 CPU, Memory 만땅 (인스턴스 부족) 고민 위에서 발생한 문제점들을 하나하나 살펴보기 시작했습니다. 1. DB 서버 현재 디비서버는 EC2에서 한대로 운영중이고 Master 한대로 운영중. Select 같은 que..
드래곤 커브는 다음과 같은 세 가지 속성으로 이루어져 있으며, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향, y축은 ↓ 방향이다.시작 점시작 방향세대0세대 드래곤 커브는 아래 그림과 같은 길이가 1인 선분이다. 아래 그림은 (0, 0)에서 시작하고, 시작 방향은 오른쪽인 0세대 드래곤 커브이다. 1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점을 기준으로 시계 방향으로 90도 회전시킨 다음 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점이란 시작 점에서 선분을 타고 이동했을 때, 가장 먼 거리에 있는 점을 의미한다. 2세대 드래곤 커브도 1세대를 만든 방법을 이용해서 만들 수 있다. (파란색 선분은 새로 추가된 선분을 나타낸다) 3세대 드래곤 커브도 2세대 드래곤 커브를 이용해 만..
데이터베이스에서 하나의 논리적인 실행단계를 트랜잭션이라고 한다. 은행에서 계좌이체를 트랜잭션이라고 할 수 있다. 이러한 트랜잭션이 안전하게 이루어지기 위해서는 ACID가 지켜져야 한다. Atomicity (원자성) 은행에서 계좌이체를 할 때 돈을 보내는 계좌에서는 돈이 차감이 되었지만, 받는 사람의 걔좌에서는 입금이 되지 않으면 안된다. 이처럼 처음부터 끝까지 작업이 실패하면 안되도록 하는 것이다. Consistency(일관성) 트랜잭션이 성공되면 언제나 일관성 있는 데이터베이스 상태로 유지되어야 한다. 트랜잭션 전, 후 데이터베이스가 정해논 제약을 어겨서는 안된다. Isolation(고립성) 트랜잭션 수행시 다른 트랜잭션의 연산작업이 끼어들지 못하도록 막는 역할이다. 즉, 각 트랜잭션끼리 영향을 끼쳐서..