일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹 프로그래밍
- Container vs VM
- 너비 우선 탐색
- 그래프 탐색
- Python
- 수학
- error:0308010C:digital envelope routines::unsupported
- 최장공통부분문자열
- 구현
- LCS 알고리즘
- npm start
- db replication
- lazy evaluation
- 깊이 우선 탐색
- 최장공통부분수열
- 정처기 필기
- dfs
- 냅색 알고리즘
- Docker 원리
- 클래스
- 문자열
- 파이썬
- 배낭 문제
- bfs
- 모듈러 연산 분배법칙
- 그래프탐색
- 그래프 이론
- 일단 시도
- 동적 계획법
- 나는 바보야...
- Today
- Total
목록개인공부 (22)
Save my data
https://mhd329.tistory.com/63 [Python][이게 왜 안돼?] yield 키워드와 Generator예전에 회사에서 만들었던 프로젝트를 재구성하다가 몰랐던걸 발견해서 기록함.OpenCV로 캠영상을 읽은 뒤 웹(Flask)으로 스트리밍하는 모듈을 만드는 중이었다.캠을 읽는 단위는 클래스 단위로mhd329.tistory.com위 포스팅이랑 이어지는 글임.멀티쓰레드 작업을 하려고 함수 하나 만들었다.처음에는 이렇게 작성했음.def multi_thread(method: str, cams_number: int, test: bool) -> None: def run(args: tuple): method, thread_number, test = args cam = Cam(thread_numb..
예전에 회사에서 만들었던 프로젝트를 재구성하다가 몰랐던걸 발견해서 기록함.OpenCV로 캠영상을 읽은 뒤 웹(Flask)으로 스트리밍하는 모듈을 만드는 중이었다.캠을 읽는 단위는 클래스 단위로 만들어진다. 즉, 클래스 인스턴스의 개수 == 연결된 캠의 개수.여기서 싱글쓰레딩 작업 말고 멀티쓰레딩, 멀티프로세싱를 적용해가며 캠 fps를 줄이는 작업을 했었음.어쨌든 위와 같은 상황에서 다음과 같은 코드를 작성했다.# 실행 메서드def run(self, method: str, test: bool): ... while True: reading_success, frame = self.cap.read() if not reading_success: # 비디오 송출값 없음 ..
Java로 구현된 (개선된 형태의)CGI 이다.Java, JSP, 스프링부트를 순서대로 학습하면서 Servlet 이라는 기술에 대해 많이 보기도 했고 듣기도 했지만 정리가 안되고 있었다. 정리를 안하고 넘어가면 찝찝해서 정리를 해보고자 한다.먼저 CGI에 대해 알아보자. 왜냐하면 Servlet은 CGI의 단점을 개선한 방식이기 때문이다.* CGI란?- Common Gateway Interface의 약자이다. 말 그대로 인터페이스이다.가령 자바 프로그램을 개발했다고 하고, 이를 통해 비즈니스 로직을 처리한다고 하자. 그러면 자바 프로그램은 자바 프로그램대로 따로 돌고 있고, 웹에서는 HTTP 프로토콜로 따로 도는 환경이다. 이를 연결하려면 웹 환경에 맞게 동시성 처리와 관련된 작업도 해줘야 하고, 웹에서 ..
아래 질문들은 흔하게 나오는 질문들인데, 얼마나 알고 있는지 문항을 보고 답변해봅시다.1. RDBMS가 무엇인가요?더보기1. RDBMS는 실제 세계의 정보를 관계라는 개념으로 표현한 데이터베이스 관리 시스템입니다.2. 2차원 구조로 구성되며 가로 방향을 행 및 레코드라 부르고, 세로 방향을 열 및 컬럼이라 부릅니다. 2차원 시트를 테이블이라 부르고, 테이블들이 관계에 따라 서로 이어져있으며 그것들을 SQL을 통해 다양한 조작이 가능합니다.1-1. SQL이 무엇인가요?더보기Structured Query Language의 약자로 RDBMS에서 원하는 데이터를 추출하고 분석하는 데 사용하는 언어입니다.1-2. RDBMS와 NoSQL의 차이에 대해 아는 만큼 설명해보세요.더보기RDBMS의 경우 정해진 스키마가 ..
아래 질문들은 흔하게 나오는 질문들인데, 얼마나 알고 있는지 문항을 보고 답변해봅시다.1. HTTP 에 대해 설명해보세요.더보기1. HTTP는 하이퍼텍스트를 클라이언트와 서버 간에 어떻게 통신할지에 대해 정해놓은 규칙(프로토콜) 입니다.2. 요청과 응답으로 구성되어있고, 일반적으로 80번 포트를 사용합니다.3. 기본적으로 상태를 유지하지 않습니다. 따라서 어떤 웹 서비스에서 상태를 유지하려면 세션, 토큰, 쿠키등의 추가 자원을 활용해야 합니다. 다만 이러한 무상태성 덕분에 스케일아웃 방식의 서버 확장에 용이합니다.4. 연결도 유지하지 않습니다. 클라이언트는 서버측에 어떠한 요청을 보내고, 서버는 응답을 한 후 바로 연결을 끊습니다. 다만 HTTP/1.1 버전 이상에서는 커넥션 헤더의 Keep-Alive ..
알고리즘 문제를 풀다가 map을 쓸 일이 생겼다.상황은 이러하다. 1. list1 에 있는 내부 요소들을 list2 로 옮겨야 된다.2. 방법이야 여러 가지가 있겠지만, map을 써서 옮길 수 없을까 생각했다.3. append 함수가 있으니, map을 활용해서 해볼 수 있겠다 생각함.4. 여러 가지 버전의 코드들을 테스트 해봤다.# 1list1 = [1, 2, 3]list2 = []list2 = [*map(list2.append, list1)]print(list2) # [None, None, None]# 2list1 = [1, 2, 3]list2 = []map(list2.append, list1)print(list2) # []# 3list1 = [1, 2, 3]list2 = [][map(list2.app..
영상 참고 : https://www.youtube.com/watch?v=EV3FZ3cWBp8 메인(마스터) 브랜치 하나만 관리하는 방식. 그리고 필요할 때 마다 feature 등의 브랜치를 만들고 작업한 다음 머지하여 배포. Github Flow와 유사한 방식임. 장점 : 소스코드를 관리하기 용이함. 단점 : 테스트의 양이 많아지고 꼼꼼하게 해야 함.
영상 참고 : https://www.youtube.com/watch?v=EV3FZ3cWBp8 예전에 팀 프로젝트 할 때 시험삼아 도입해봤던 방식. 당시에는 중요성을 잘 모르기도 했고 때문에 이런 비중이 크다고 생각하지 않아서 물 흐르듯이 넘어가버렸던 기억이 았다. 스탭업을 위해서는 반드시 알아야 할 지식이라고 본다. GitFlow 방식. 보통 아래 다섯 가지의 브런치로 구성된다. main(master) 말 그대로 프로젝트의 메인 브랜치. release에서 최종 검수가 끝나면 배포를 위해 main에 머지시킨다. 최종 검수가 끝난 부분을 develop에도 반영해야 한다. develop 개발용 브랜치. 근데 여기서 바로 개발하는건 아니다. 개발자간에 여러 개발중인 기능들이 있을 때, 그 각각의 개발자들이 만든..