no image
[WebRTC] WebRTC Overview, NAT, STUN
WebRTC Overview Stands for Web Real-Time Communication 라이브 스트리밍, 라이브 채팅을 위해 Peer to Peer 방식으로 연결한다. P2P방식은 매우 빠르며 브라우저간 대용량 커뮤니케이션을 가능하게 해준다. WebRTC는 표준화 된 API를 제공한다. 브라우저간 통신뿐만 아니라 mobile, IOT 디바이스 간에도 통신을 제공한다. P2P 통신 지연 시간이 존재한다. 역 프록시던 TURN 허브던 상관없이 트래픽 프로세스를 보고 트래픽을 복호화 하여 상대 리소스에 접근한다. WebRTC 통신 과정 A wants to connect to B A는 B의 Public 주소로 연결할 수 있는 방법을 탐색한다. B는 A의 Public 주소로 연결할 수 있는 방법을 탐색..
2022.08.07
no image
[Docker] 도커 설치(Mac m1)
도커 설치 > 이하의 내용들은 명령어 입력 시 출력 결과값입니다. docker version # 도커 버전 확인 ​ # >> Docker version 20.10.17, build 100c701 ​ docker pull nginx # nginx 설치로 확인하기 ​ # >> Using default tag: latest # >> ... # >> docker.io/library/nginx:latest docker images # 만들어진 도커 이미지 확인 ​ # >> REPOSITORY TAG IMAGE ID CREATED SIZE # >> nginx latest fd2d3e51789e 9 days ago 135MB ​ docker run -d -p 80:80 --name test nginx # 80 포트에..
2022.07.30
no image
[OS/공룡책] Ch1. Introduction
Overview 운영체제 : 컴퓨터 사용자와 하드웨어간의 중개자 역할을 수행 목적 : 사용자가 편리하고 효율적으로 프로그램을 실행할 수 있는 환경 제공 컴퓨터 하드웨어를 관리하는 소프트웨어 Why study operating system? 대부분의 코드가 운영 체제 위에서 실행되기 때문에 운영 체제의 작동 방식에 대한 지식은 적절하고 효율적이며 효과적인 보안 프로그래밍에 매우 중요하다! 1. What Operating Systems Do 컴퓨터 시스템 하드웨어(hardware) : 시스템의 기본 컴퓨팅 리소스 제공 운영체제(operating system) : 하드웨어 제어와 응용 프로그램 간의 하드웨어 사용 조정 운영체제는 다른 프로그램이 유용한 작업을 수행할 수 있는 환경을 제공한다. 응용 프로그램(a..
2022.07.27
[Python/수학] 최대공약수(GCD), 최소공배수(LCM)
최대공약수 math 내장 함수 사용하기 math.gcd(n, m) 유클리드 호제법 | a와 b 의 최대공약수는 (a를 b로 나눈 나머지)와 b 의 최대공약수와 같다. # a a) : a,b = b,a while(b!=0): a=a%b a,b=b,a 큰 수를 작은 수로 나누고 나누어 떨어질 때까지 계속 반복 최소공배수 math 내장 함수 사용하기 math.lcm(n, m) python 3.9부터 지원된다! 직접 구현하기 import math def lcm(a,b): return (a * b) // math.gcd(a,b)
2022.06.23
no image
Programmers. 거리두기 확인하기 파이썬
Programmers. 거리두기 확인하기 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr [파이썬(python) - DFS & BFS] 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 ..
2022.06.23
no image
[Python/수학-정수론] 에라토스테네스의 체
에라토스테네스의 체 다수의 자연수에 대하여 소수 여부를 판별 1. 2부터 N까지의 모든 자연수를 나열한다. 2. 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 3. 남은 수 중에서 i의 배수를 모두 제거한다.(i는 제거하지 않는다.) 4. 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다. 이후 남아있는 수들은 모두 소수가 된다. python 구현 코드 import math n = 1000 array = [True for _ in range(n + 1)] # 소수일 경우 True, 소수가 아닐 경우 False로 표현 for i in range(2, int(math.sqrt(n)) + 1): if array[i] == True: j = 2 while i * j m c. a >..
2022.06.02
no image
[알고리즘 대비 - 이코테] 8. 최단 경로
최단 경로(Shortest Path) 가장 짧은 경로를 찾는 알고리즘 한 지점에서 다른 특정 지점까지의 최단 경로 구하기 모든 지점에서 다른 모든 지점까지 최단 경로 구하기 간선 간의 가중치가 있을 경우 활용 그리디, DP의 한 유형 다익스트라(Dijkstra) 특정 한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산 ⭐️ 음의 간선이 없는 경우 사용 현실 세계의 프로그래밍을 할 때 많이 사용 매 상황 가장 비용이 적은 노드를 선택하므로 그리디 알고리즘으로 분류하기도 한다. 한번 방문한 노드일 경우 이후에 해당 노드에 대해 최단 경로가 다시 갱신되는 일은 없다. 1. 출발 노드 설정 2. 최단 거리 테이블 초기화(기본 무한) 3. 방문하지 않은 노드 중 최단 거리가 가장 짧은 노드 선택 4. 해..
2022.05.25
no image
[AWS/RDS] RDS TimeZone 변경하기
⚠️ Problem AWS RDS로 기본 설정으로 DB 생성 시, 시스템 시간이 UTC 로 저장되어 보기 불편하다. 타임존 설정을 통해 아시아/서울 로 바꿔준다. ✨ Solve RDS → 사이드 바 → 파라미터 그룹 기본적으로 디폴트 파라미터 그룹이 있는데, 디폴트 파라미터 그룹의 경우 편집이 불가능하다. → 새로 생성해줘야 한다 파라미터 그룹 생성 후 → 검색 탭에 time_zone 검색 time_zone 항목 선택 후, 파라미터 편집 선택 이후 time_zone : Asia/Seoul 로 바꿔주고 변경 사항 저장 ! 다시 RDS 탭으로 가서 수정 선택 추가 구성 → DB 파라미터 그룹 → 새로 생성한 파라미터 그룹으로 지정 DB 재부팅 타임존 변경 확인!
2022.05.20
[C++] 시스템 소프트웨어 개발
시스템 소프트웨어 개발(Development Assistance Guidance for system software) DAG(Development Assistant Guide) Scalability Scalability 시스템에 들어오는 워크로드가 증가할때, 해당 시스템을 처리하는 능력 | Ex. 기존 시스템에서의 작업량이 1이었는데, 이가 2, 100, 1000과 같이 부하가 커졌을 때도 시스템 처리가 가능한가? But, 이상적으로 하드웨어적, 네트워크적 부하를 무한대로 감당할 수 있는 시스템은 존재 하지 않는다. 🌟 따라서 프로그래밍의 전과정에서 이를 해결하는 게 가장 중요! Scalability의 향상 방법 1. System Call Awareness 시스템 콜 시간 : 200 usec ~ 1000..
2022.05.20