본문 바로가기

반응형

개발(합니다)/컴퓨터 일반&CS

(25)
[티스토리] 티스토리 오픈 API 사용 방법 티스토리를 이용하다보면 웹 사이트에 들어가서 작업하기 보다 편하게 글을 올리고 확인하고 싶은 경우가 있습니다. 오픈 API를 제공하는 기능을 활용해 토큰을 발행하는 방법을 포스팅합니다. 1. API 승인(코드 발급) 관리자 페이지에서 아래쪽을 보면 "오픈 API"를 선택합니다. 앱 등록을 위한 정보를 입력합니다. 서비스 URL, CallBack을 본인이 사용하고자 하는 블로그 주소를 입력합니다. 앱키와 시크릿 키를 발급받을 수 있습니다. 앱키 = 클라이언트키 라고 보면 됩니다. 아래 사이트에 open API 토큰 발행 방법이 설명되어 있으니 참고해주세요. https://tistory.github.io/document-tistory-apis/auth/authorization_code.html Authori..
[CS] OOP-객체지향 생활 체조 9가지 객체지향 생활체조란 Object Calishenics(객체지향 생활체조)는 Jeff Bay가 발명한 9가지 규칙의 집합으로 공식화 된 프로그래밍 훈련입니다. Object는 객체지향 프로그래밍을 의미하고 Calisthenics는 체조의 운동을 의미합니다. 객체지향 생활 체조는 규칙을 지키면 자연스럽게 코드 작성 방식이 변경되고 항상 모든 규칙을 지켜야 한다는 의미는 아니며, 규칙들과 균형을 맞추어 규칙과 유사하다고 느껴지는 경우에 일부를 적용합니다. 규칙들은 가독성 좋고, 테스트 가능하며, 이해하기 쉬운 코드를 만드는데 초점을 맞추고 있습니다. 아래 사이트에서 관련 내용을 확인할 수 있습니다. https://williamdurand.fr/2013/06/03/object-calisthenics/ 규칙 한 메..
[CS] 동기와 비동기 그리고 블럭킹과 넌블럭킹 개요 크게 시스템을 나누면 요청자와 제공자로 나눌 수 있습니다. 요청을 할 때와 제공을 할 때 어떤 방식으로 되어 있는지에 대해서 논의해야 하는 경우에 동기와 비동기, 블럭킹과 넌블럭킹을 다루어야 합니다. 아래 네 가지 형태로 구성될 수 있습니다. 동기 + 블럭킹 동기 + 넌블럭킹 비동기 + 블럭킹 비동기 + 넌블럭킹 위에 내용처럼 동기 != 블럭킹, 비동기 != 넌블럭킹이 아니라는걸 알 수 있습니다. REST API는 동기 방식이고 넌블럭킹방식으로 통신으로 하며, frontend와 backend는 대부분 동기 + 넌블럭킹 방식으로 구현합니다. 동기 : Synchronous 그럼처럼 두명이 손을 잡고 있는것처럼 동시에 어떤 일을 하는걸 의미 요청자와 제공자 사이에 지속적으로 Connection을 가지고 ..
[알고리즘]백트레킹 백트레킹이란갈림길에서 길을 선택하고 길을 따라 출구를 찾지 못하면 지나온 길을 되돌아가서 다시 길을 찾는 기법미로를 탈출 하는 방법 중에 하나갈림길 중 한 길로 갔다가 출구를 찾지 못하면 아까 지나왔던 갈림길로 되돌아가서 '출구 아님'을 표시깊이 우선 탐색을 하면서 가지 않아도 되는 길에 대해서는 가지치기를 통해 탐색의 효율을 올림 오름 차순으로 정렬 된 데이터를 이진트리입니다. 합이 가장 큰 값들을 찾는다면 루트 노드와 자식 노드를 각각 더해보고 작은 쪽은 가지 않아도 됩니다. 길을 찾기 위해 갈림길에서 표시를 합니다.
[알고리즘]동적 계획법, 탐욕(그리디) 알고리즘 동적 계획법다이나믹 프로그래밍이라고 칭함큰 문제를 작은 문제로 나누어 해결 하는 알고리즘메모제이션을 활용하여 이전에 찾은 해결 법을 이용하여 중복 계산 방지분할 정복과 다른 점은 중복되는 결과를 다시 계산 하지 않도록 한다는 점 대표적으로 최장 공통 부분 순서 - Top-Down : 재귀 호출을 통해 큰 문제를 작은 문제로 나누어 푸는 방식- Bottom-Up : 작은 문제에서부터 풀어 큰 문제를 푸는 방식 탐욕(그리디) 알고리즘근시안적인 답을 찾는 알고리즘미래를 고려하지 않고 현재 상태에서 가장 좋은 해를 찾는 방식 대표적으로 거스름돈 계산, 허프만 코딩, 크루스칼, 프림, 다익스트라 위 문제는 가장 큰수를 구하는 문제 일반적으로 구하는 가장 큰값 구했을 시 / 탐욕 알고리즘으로 큰 값을 구했을 시
[알고리즘]분할 정복 분할 정복이란문제를 더 이상 나눌 수 없을 때까지 나누고, 각각 문제를 풀어 다시 합치는 알고리즘 1. 분할 : 문제가 분할이 가능하다면 2개 이상의 하위 문제로 나눔2. 정복 : 하위 문제가 분할이 가능하다면 다시 분할 가능하지 않다면 문제 풀이3. 결합 : 정복에서 풀이 한 답을 정리 병합 정렬나누고 합치는 정렬, 퀵 정렬을 기반이 되는 알고리즘 데이터의 집합이 2개 이상일 때까지 반으로 계속 나누고 각 크기를 비교하고 정렬 후 다시 결합하는 방식 C 소스 /* * MergeSort.c * * Created on: 2019. 1. 12. * Author: otrodevym */ #include #include void MergeSort(int DataSet[], int StartIndex, int E..
[알고리즘]알고리즘 성능에 대하여 알고리즘의 성능성능을 측정 할 수 있는 기준 5가지 1. 정확성 : 정확하게 동작하는가입력에 대해서 몇 번을 수행해도 동일한 결과를 정확하게 출력하는가 2. 작업량 : 얼마나 적은 연산을 수행하는가수행해야 하는 작업의 양이 얼마나 되는가버블 정렬은 정렬을 수행하기 위해 얼마나 작업이 필요한가 3. 메모리 사용량 : 얼마나 적은 메모리를 사용하는가작업을 수행하는데 얼마의 메모리가 필요하는가 4. 단순성 : 얼마나 단순한가컴퓨터가 이해하기에 복잡하지 않고 단순한가 5. 최적성 : 더 이상 개선 할 여지가 없을만큼 최적화 되어 있는가컴퓨터가 이해하는데 최적화 되어 있는가 알고리즘 수행 시간 분석알고리즘의 시작 시간부터 종료 시간까지의 시간 분석은 수행 시간을 측정 할 수 없습니다.1. CPU의 성능에 따라 시..
[알고리즘]문자열 검색(고지식한 검색, 라빈-카프, KMP, 보이어-무어) 문자열 검색이란찾고자 하는 패턴의 문자를 본문 내용에서 어디에 있는지 확인 하는 검색패턴과 일치하는 방식으로 찾는 방법은 같으나 효율적으로 찾는 알고리즘들을 학습 고지식한 검색 알고리즘패턴과 본문의 내용을 하나씩 하나씩 맞는지를 처음부터 끝까지 확인하는 방식패턴의 첫번째는 맞지만 두번째가 맞지 않으면 세번째 패턴은 비교하지 않고 본문 다음 글자로 이동 패턴이 일치 하지 않는 경우/ 패턴 중 하나는 일치하지만 다른 하나가 일치 하지 않는 경우 다음으로 이동 패턴이 일치하지 않는 경우 / 패턴이 일치 하는 경우 라빈-카프 알고리즘해시를 활용한 문자열 검색 수식에 의한 해시 값을 한칸씩 이동하면서 구하고 본문 해시 값과 패턴 해시 값이 같은지 여부를 확인해시 충돌 시 이는 무시해도 되며 본문 해시와 패턴 해시..

반응형