서버 배포 방법 로컬 PC를 24시간 구동 호스팅 서비스(Cafe 24, 코리아 호스팅 등) 클라우드 서비스 (AWS, ZURE, GCP 등) 비용 측면에선 로컬PC나 호스팅 서비스가 유리 특정 시간에 트래픽이 몰리고, 유동적으로 사양을 늘려야 하는 상황이면 클라우드 서비스가 유리 클라우드란? 클라우드를 통해 서버, 스토리지, DB, 네트워크, 소프트웨어, 모니터링 등 컴퓨팅 서비스를 제공하는 것 AWS의 EC2는 서버 장비를 대여하는 것이지만, 실제로는 그 안의 로그, 모니터링, 네트워크 관리 등 자동 지원 IaaS (Infrastructure as a Service) - 아이아스 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해..
OAuth2 로그인 소셜 로그인 사용을 통하여 서비스 개발 집중 기존 1.5 버전에서 2.0 버전으로 바뀌면서 enum 대체 CommonOAuth2Provider enum 기능 구글, 깃허브, 페이스북 옥타등 기본 설정값 제공 - 다른 소셜 로그인은 추가 필요 구글 로그인 https://console.cloud.google.com/ 이동 프로젝트 생성 프로젝트 생성 - API 및 서비스 - 사용자 인증 정보 - 사용자 인증 정보 만들기 - OAuth 클라이언트 ID - 동의 화면 구성 OAuth 클라이언트 ID 만들기 클라이언트 ID와 보안 비밀번호가 발급된다. 리다리렉트 URI : {도메인}/login/oauth2/code/google 로 등록하자 위에 사진 오타 properties 등록 spring...
신장트리 원래의 그래프의 모든 노드가 연결되어 있으면서, 트리의 속성을 만족하는 그래프 Spanning Tree로 불리기도 한다. 신장 트리의 조건 본래의 그래프의 모든 노드를 포함 모든 노드가 서로 연결 트리의 속성을 만족 (사이클이 존재X) 최소 신장 트리 가능한 신장 트리중에 간선의 가중치 합이 최소인 신장 트리 Minimum Spanning Tree : MST 최소 신장 트리 알고리즘 그래프에서 최소 신장 트리를 찾는 알고리즘 크루스칼 알고리즘, 프림 알고리즘이 존재 크루스칼 알고리즘 모든 정점을 독립적인 집합으로 만든다. 모든 간선을 비용을 기준으로 정렬, 작은 간선 부터 양 끝의 두 정점을 비교 두 정점의 최상위 정점을 확인, 다를 경우 연결 (사이클이 생기지 않도록) Union- find 크..
분석 모형 선정 현상에서 패턴을 발견하는 것 EDA(탐색적 데이터 분석) 현상에서 인과적인 결론을 도출하는 것 (통계적 추론) 현상을 예측하는 것 (머신러닝) 해당 기법들을 고려하여 분석 모델 선정 데이터 마이닝 데이터 내에 존재하는 패턴, 관계를 탐색하고 모델링하여 정보를 추출하는 과정 분류 , 예측, 군집화, 연관규칙이 존재한다. (분예군연) 분류 범주형 또는 이산형 변수 등의 범주를 예측 (사전에 정해진 그룹이나 범주) 통계적 기법, 트리 기반, 최적화, 기계 학습 등 예측 과거 데이터로부터 특성을 분석하여 다른 데이터의 결괏값을 예측 회귀분석, 의사결정나무, 인공신경망, 시계열 분석 등 군집 사전정보가 없는 상태에서 이질적인 집단을 동질적인 소집단으로 세분화 하는 작업 계층적 방법과 비계층적 방법..
기술 통계 확률 / 통계적으로 정리 및 요약하는 기초적인 통계 분석의 초기 단계에서 데이터 분포의 특징을 파악하려는 목적으로 산출 데이터 요약 대푯값 주어진 자료 전체에서 중심 위치를 나타내는 값 평균, 중위수, 최빈수, 사분위수 범위 사분편차 IQR의 절반 값 : (Q3 - Q1 ) / 2 변동 계수 CV 표준편차를 평균으로 나눈 값 σ / μ 서로 다른 자료의 흩어진 정도를 상대적으로 비교할 때 사용 왜도 데이터 분포의 기울어진 정도 비대칭성을 나타내는 통계량 왼쪽으로 긴 꼬리 = 왼쪽 편포 라고도 한다. 공분산 Cov 2개의 변수 사이의 관련성을 나타내는 통계량 (Xi-μx) (Yi - μy) / n Cov > 0 : 양의 관계 , Cov < 0 : 음의 관계 상관 관계 수치적 데이터 : 피어슨 상..
최단 경로 알고리즘 두 노드를 잇는 가장 짧은 경로 가중치 그래프에서 간선의 가중치 합이 최소가 되도록 경로를 찾는다. 최단 경로 문제 종류 단일 출발 및 단일 도착 - 특정노드에서, 또다른 특정노드의 경로 단일 출발 - 특정 노드에서 해당 노드간 경로를 찾는 문제 전체 쌍 최단 경로 - 그래프 내의 모든 노드 쌍(u,v)에 대한 최단 경로 다익스트라 알고리즘 최단 경로 문제 중 2번에 해당 하나의 정점에서 다른 모든 정점 간의 각 짧은 거리를 구하는 알고리즘 BFS와 유사 첫 정점부터 각 노드간의 거리를 저장하는 배열을 만든다. 인접 노드 간의 거리부터 먼저 계산하며, 가장 짧은 거리를 배열에 업데이트 여러 로직이 있지만, 가장 개선된 로직은 우선순위 큐 (heapq 라이브러리 사용) 다익스트라 - 우..
탐욕 알고리즘 매순간 최적의 해를 선택하는 방식 근사치 추정에 활용 (반드시 최적의 해를 구할 수 있는 것은 아니다.) 동전 문제 coin_list = [10, 50, 100, 500] def min_coin_count(money, coin_list): quotient_list = [] coin_list.sort(reverse=True) answer = 0 for coin in coin_list: count = 0 quotient = money // coin money = money % coin count += quotient answer += count quotient_list.append([coin, count]) return answer,quotient_list 몫은 quotient, list 내림..
그래프 실제 세계의 현상이나 사물을 노드(정점)와 간선(링크)로 표현 노드 : 위치, 정점(Vertex)로 부르기도 한다. 간선(Edge) : 노드를 연결한 선 (링크, 브랜치로 부르기도 한다.) 인접 정점(Adjacent Vertex) : 간선으로 직접 연결된 노드 그래프와 트리 차이 BFS & DFS 대표적인 그래프 탐색 알고리즘 BFS(Breadth First Search) : 정점들과 같은 레벨에 있는 노드를 먼저 탐색 DFS(Depth First Search) : 정점의 자식들을 먼저 탐색하는 방식 BFS는 두 개의 큐 , DFS는 스택과 큐 활용 graph = dict() graph['A'] = ['B', 'C'] graph['B'] =..