일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클래스
- 파이썬
- 너비 우선 탐색
- Docker 원리
- 구현
- 냅색 알고리즘
- Python
- bfs
- 배낭 문제
- db replication
- npm start
- 그래프탐색
- lazy evaluation
- 나는 바보야...
- 수학
- 그래프 이론
- 그래프 탐색
- 깊이 우선 탐색
- 문자열
- 일단 시도
- dfs
- 모듈러 연산 분배법칙
- 동적 계획법
- LCS 알고리즘
- 다이나믹 프로그래밍
- 정처기 필기
- Container vs VM
- 최장공통부분수열
- 최장공통부분문자열
- error:0308010C:digital envelope routines::unsupported
- Today
- Total
목록분류 전체보기 (58)
Save my data
영상 참고 : https://www.youtube.com/watch?v=EV3FZ3cWBp8 예전에 팀 프로젝트 할 때 시험삼아 도입해봤던 방식. 당시에는 중요성을 잘 모르기도 했고 때문에 이런 비중이 크다고 생각하지 않아서 물 흐르듯이 넘어가버렸던 기억이 았다. 스탭업을 위해서는 반드시 알아야 할 지식이라고 본다. GitFlow 방식. 보통 아래 다섯 가지의 브런치로 구성된다. main(master) 말 그대로 프로젝트의 메인 브랜치. release에서 최종 검수가 끝나면 배포를 위해 main에 머지시킨다. 최종 검수가 끝난 부분을 develop에도 반영해야 한다. develop 개발용 브랜치. 근데 여기서 바로 개발하는건 아니다. 개발자간에 여러 개발중인 기능들이 있을 때, 그 각각의 개발자들이 만든..
자바스크립트는 비동기 처리를 위해 콜백 함수를 사용한다.남발하게 되면 콜백 지옥에 빠지게 된다.프로미스를 사용함으로써 다음과 같이 복잡성을 해소할 수 있다.비동기 처리 시점을 명확하게 표현할 수 있다.연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다.비동기 작업 상태를..
이번에 입사한 우리 회사에서는 Github 대신 Bitbucket이라는 걸 사용한다고하여 조사해보았다.Bitbucket이란?2008년 스타트업에서 개발하기 시작했고, 2010년에 Atlassian이라는 회사에 인수되었다.웹 기반 버전 관리 저장소 호스팅 서..

AWS EC2 instance는 ubuntu 22.04 버전으로 생성했다. 아래와 같이 VS Code SFTP 확장을 설치한다. 설치 후 fn + f1을 눌러 config를 연다. 자신의 환경에 맞게 설정을 한다. name 임의로 정해도 되는 서버의 이름이다. fn + f1을 누르면 나오는 SFTP: List All에서 표시될 이름을 정한다. host EC2 인스턴스의 호스트명을 입력한다. EC2 인스턴스의 연결 탭을 누르면 알 수 있는 도메인 네임이다. protocol sftp 방식으로 연결하겠다는 것을 정의한다. 수정하지 않는다. port 해당 번호의 포트를 사용하겠다는 의미이다. 기본적으로 수정하지 않는다. username 유저 네임을 입력한다. EC2 인스턴스를 생성할 때 설정된 유저 이름을 입력..
요새 하고있는 크롤링 프로젝트를 하다가 고민했던 부분이다. 데이터를 dict형태로 바로 반환하면 되는데, jsonify로 굳이 한줄 더 써서 직렬화 하는 절차에 대해,왜 그럴까 잠깐 고민했다. 지금 하고 있는 프로젝트에서는 특정 메서드가 작업을 수행한 후 결과값을 dictionary형태로 반환하고 있다. 그리고 flask view 함수에서는 dict형태의 반환값은 자동으로 직렬화 해주기 때문에, 사실 이것을 그대로 전달해버려도 response.json() 해서 쓸 수가 있다.디테일한 구성이 필요하다면 data에 status code나 message 등을 덧붙이면 되는 일이고, 어쨌든 dict 형태로 반환이 가능하다. 그리고 직렬화 하기 전에도 결국 dict 형태로 바꿔줘야 하는건 마찬가지였다. 그럼 그냥..
요청 부하 설계에 대해서, 서버의 부하 분산 외에도 DBMS 서버의 부하도 신경을 써야한다. 이 경우 DBMS 서버를 이중화하여 부하를 해결할 수 있다. DB Replication Replication은 복제를 뜻하며 DB Replication은 두 대 이상의 DBMS에 데이터를 나눠서 저장하는 방식이다. 사용하기 위해 최소 Master / Slave 구성을 취해야 한다. Master DBMS 서버로부터 데이터 등록, 수정, 삭제 요청시 바이너리 로그(Binarylog)를 생성하여 Slave DBMS로 전달한다. 주로 웹서버가 요청한 데이터의 등록, 수정, 삭제를 하는 용도로 사용된다. Slave DBMS Master DBMS로부터 전달받은 바이너리 로그를 데이터로 반영하게 된다. 주로 데이터를 불러오고..
옛날에 적어놓았던 글인데 리뷰해보니 심각하게 잘못된 글이라 수정함. - 2025.02.10오버헤드의 사전적인 의미는 '(비용등의) 간접비'라는 의미를 가지고 있다.컴퓨터 공학에서는 어떤 명령어를 처리하는데 소비되는 간접적, 추가적인 컴퓨터 자원을 의미한다. 이와 관련해서 파이썬 멀티쓰레딩의 성능 이야기를 할 수 있다.파이썬 3.13 이전 버전에서 멀티쓰레딩을 해도 성능 향상 없이 오히려 떨어지는 이유가 여기 있다. 파이썬 GIL 때문에 실질적인 병렬 처리가 되질 않으니, 컨텍스트스위칭 때문에 괜히 필요없는 (도표상의)횡이동을 하는 시간만큼 오버헤드가 발생하기 때문이다. (물론 네트워크 I/O 작업이나 블로킹 I/O 작업에서는 여전히 도움이 된다.)네트워크에도 Overhead라는 용어를 사용한다. 이 때 ..

가상화 기술의 변천사 VM(Virtual machine) 가상화 기술이 등장하기 이전, 하나의 컴퓨터에서는 오직 하나의 OS만 작동시킬 수 있었다. 이로 인해 자원의 많은 낭비가 생겼다. 이러한 잉여 자원의 효율적인 사용을 위해 하나의 컴퓨터에 여러 개의 OS를 설치해서 활용하는 가상화 기술이 등장했다. 가상화 기술은 기존 운영체제 위에 하드웨어를 에뮬레이션 하고, 그 위에 운영체제를 올리는 것이다. Hypervisor 기반의 가상화 기술이 가장 많이 사용되었다. VM간에는 분리되어있기 때문에 오류가 발생해도 다른 VM에 영향이 없다는 것이 가상화 기술의 장점이다. Hypervisor: 논리적으로 분할된 어떤 공간에서 독립적인 환경을 구성하고 호스트 OS 커널에서 게스트 OS를 관리하는 기술 Docker..