일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백엔드 개발
- django 슬랙봇
- ssl.key
- slack bot
- AWS Aurora
- 정렬
- 비즈니스
- django slack bot
- django slack
- 개발회고
- 업비트 웹소켓
- redis lock
- 숲을 바라보는 개발자
- 비즈니스적 관점에서 생각하는 개발자
- django
- 알고리즘
- MySQL
- haystack
- 개발자에세이
- django #django 5.0 #django 5.0 요약
- add colume
- 서버 개발
- 개발자의 마인드
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- 개발자와 비즈니스
- public.pem
- 슬랙봇
- 웹소켓 api
- 개발자와 비즈니스 관계
- private.pem
- Today
- Total
Info-Tech
EC2 m4 인스턴스에서 사용중인 mysql 디비서버를 RDS로 옮기는 과정을 적어봤습니다. 서버이전은 AWS에서 제공하는 Data Migration Service(DMS)를 이용하여 이전작업을 진행했습니다. DMS는 데이터를 AWS로 빠르고 나름 안전하게(?) 그리고 프로덕션을 무중단 상태로 운영하면서 마이그레이션을 도와줍니다. 동종 마이그레이션뿐 아니라 Oracle 또는 Microsoft SQL Server에서 Amazon Aurora로의 마이그레이션과 같은 이기종 데이터베이스 플랫폼 간의 마이그레이션도 지원합니다 준비단계RDS 인스턴스 생성DMS 인스턴스 생성DMS의 엔드포인트 생성 1 RDS 인스턴스 생성원본 데이터베이스에서 데이터를 마이그레이션 할 인스턴스를 생성합니다.저희 회사에서는 엔진옵션으..
Upbit Websocket통신 할 수 있는 소스를 구현해봤습니다. 출처 : https://docs.upbit.com/docs/upbit-quotation-websocket import websocket import json try: import thread except ImportError: import _thread as thread import time def on_message(ws, message): get_message = json.loads(message.decode('utf-8')) print(get_message) def on_error(ws, error): print(error) def on_close(ws): print("close") def on_open(ws): def run(*a..
ssl.key 혹은 crt 확장자로 된 인증서를 base64로 인코딩 된 pem 파일 만들기 openssl rsa -in ssl.key -text > private.pem openssl x509 -inform PEM -in server.crt > public.pem 내용은 이런식으로 가져오기 : cat private.pem | pbcopy
문제상황 약 3gb가 넘는 table에 새로운 컬럼을 하나 추가해야하는 상황이었다. (대략 4억 이상의 데이터 값들이 들어있음) 첫번째. 처음에는 아무생각없이 아래와 같은 방법으로 컬럼을 추가해봤다. alter table ~~ add new_colume after ~~ 도저히 끝날 기미가 보이지 않고, 실제 운영중인 서비스이기 때문에 최대한 lock (downtime)이 걸리면 안되었다. 두번째. 갓 스택오버플로우의 검색결과 abc라는 테이블에 컬럼을 추가한다고 했을 때, abc_v2 테이블을 하나 만들고 여기다가 colume 추가 후 abc의 값들을 abc_v2로 옮기는 방법이다. 30분씩 50만개씩 쉬지않고 data를 옮긴다고 가정했을 때, 4억 / 50만개 = 24000분 => 400시간 => 16..
어느날 갑자기 디비 서버접속이 안되는 경우가 발생 mysql의 error.log를 살펴본 결과 아래와 같은 로그가 발생함. 2018-11-28 08:12:00 7805 [Note] Plugin 'FEDERATED' is disabled. 2018-11-28 08:12:00 7805 [ERROR] Function 'innodb' already exists 2018-11-28 08:12:00 7805 [Warning] Couldn't load plugin named 'innodb' with soname 'ha_innodb.so'. 2018-11-28 08:12:00 7805 [ERROR] Function 'federated' already exists 2018-11-28 08:12:00 7805 [Warni..
선택정렬은 첫번째에 인덱스의 값을 선택후 내부 반복을 통해 ‘최소값’을 찾는다. 오른쪽으로 계속 이동하여 ‘최소값’일 경우 위치를 스왑한다. [10 , 8 , 3 , 1, 5]가 있다고 가정한다. 최초로 10이 선택되어 진다. [8,3,1,5] 에서는 최소값이 1이다. 즉 선택된 ’10’은 8부터 시작해 최소값 인 ‘1’과 자리를 바꾸게 된다. 1회전 결과 -> [1,8,3,10,5] 두번째는 8이 선택되어 진다. [3,10,5] 에서 최솟값은 ‘3’이다. 8과 3이 자리를 바꾸게 된다. 2회전 결과 -> [1,3,8,10,5] 3번째는 다시 8이 선택되어 진다. [10,5] 에서 최솟값은 ‘5’이다. 8과 5가 자리를 바꾸게 된다. 3회전 결과 -> [1,3,5,10,8] 4번째는 10이 선택되어 진다..
삽입정렬 2번째 자료부터 자기 바로 왼쪽 부터 index가 0이 될때까지 비교하는 방법. [2,5,3,4,1] 첫번째로 5(2번째 자료)가 선택되어 진다.
객체지향적 언어 예를들어 하나의 자동차를 만드는 공장이라고 생각하자. 자동차를 이루는 구성품은 바퀴, 몸체, 엔진, 창문 등등이 있다. 객체지향적은 이러한 객체(구성품)을 먼저 설계하고 적절히 조합을 하여 하나의 프로그램으로 완성시키는 기법이다. (절차 지향적은 바퀴 -> 몸체 -> 엔진 ->창문 이렇게 순서대로 절차를 거쳐서 만들어야함, 하나가 고장나면 전체가 고장 나게 설게 될 수도 있다) 이러한 객체지향의 특성에는 크게 3가지가 있다. 상속 - 공통적인 내용을 담는 상위 class를 선언 후 하위 클래스에서 상속 받아서 쓸 수 있다 (extends 사용) //Car라는 상위 클래스 선언 class Car{ private String model; protected int wheelCount; publ..