본문 바로가기
[책] 마이크로 서비스 아키텍처 구축 가이드 장점 시스템 빠른 변경 독립적 배포 업무단위 장애 차단 특징 서비스는 비즈니스 기능 단위로 나누어야 한다 서비스 간 임의적인 접근이 불가능하도록 격리 서비스 독립 실행 및 API 통신 서비스 독립 개발 및 배포 ! 서비스 간 데이터베이스 분리 필요 내용 시스템 레벨 다이어그램 → 기능 레벨 다이어그램 구성 필요 서비스는 지속 전달, 지속 배포 가능한 시스템으로 구성되어야 함. 백엔드는 REST API 형식으로 프론트엔드는 SPA (싱글 패이지 앱)으로 구성 순환 참조를 제거하기 (서비스 장애 간 영향을 받지 않도록) 마이크로서비스 아키텍처 구조 2023. 8. 28.
[온라인 : 기본 알고리즘] 다이나믹 프로그래밍 # 피보나치 수열 def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2) # 피보나치 수열 : 메모리제이션 방식 d = [0] * 100 def fibo_top_down(x): if x == 1 or x == 2: return 1 if d[x] != 0: return d[x] d[x] = fibo(x - 1) + fibo(x - 2) return d[x] # 피보나치 수열 : 바텀업 방식 d = [0] * 100 d[1] = 1 d[2] = 1 n = 99 for i in range(3, n+1): d[i] = d[i - 1] + d[i + 2] print(d[n]) 2022. 4. 15.
[온라인 : 기본 알고리즘] 그래프 탐색 ## DFS def dfs(graph, v, visited): # 현재 노드 방문처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2, 3, 8], #1과 연결된 [1, 7], #2와 연결된 [1, 4, 5], #3과 연결된 [3, 5], #4와 연결된 [3, 4], #5와 연결된 [7], [2, 6, 8], [1, 7] ] # 각 노드의 방문 정보 visited = [False] * 9 dfs(graph, 1, visited) ## BFS from collections import deque def.. 2022. 3. 1.
[온라인 : 기본 알고리즘] 선택정렬, 삽입정렬, 퀵정렬, 계수정렬 # 선택정렬 def choiceFunc(ls) : for i in range(len(ls)): min_index = i for j in range(i+1, len(ls)): if ls[min_index] > ls[j]: min_index = j ls[i], ls[min_index] = ls[min_index], ls[i] return ls # 삽입정렬 def insertionFunc(ls): for i in range(1,len(ls)): for j in range(i, 0, -1): if ls[j] < ls[j-1]: ls[j], ls[j-1] = ls[j-1], ls[j] else : break return ls # 퀵정렬 def quickSort(array, start, end): if start .. 2022. 2. 21.
[온라인 : 기본 알고리즘] 바이너리 인덱스 트리 이진법 인덱스 구조로 구간 합의 문제 빠르게 해결 : O(log N) # 데이터 개수 n, 변경 횟수 m, 구간 합 계산 횟수 k n, m, k = map(int,input().split()) # 1. 빈 배열 만들기 arr = [0] * (n+1) # 0을 포함하는 배열 저장소 tree = [0] * (n+1) # 0을 포함하는 트리 합산 저장소 # 2. 인덱스(i)를 기준으로 i & -i 가 본인이 나오기 전까지 누적합. def prefix_sum(i): # fix 이전의 합산 저장. i가 가장 마지막 값일 때 result = 0 while i > 0 : result += tree[i] i -= (i & -i) # 2의 ?제곱인 수의 경우 i -= (i & -i) 는 0이 됨. return resul.. 2022. 1. 24.
[온라인 : 기본 알고리즘] 스택, 큐, 힙, 이진탐색 더보기 스택, 큐 실습 https://github.com/mungdo/multicam_ds/blob/main/4_algorithem_selfStudy/01_stack_queue.py GitHub - mungdo/multicam_ds: 멀티캠퍼스 국비지원교육 데이터 사이언스 강의 수강 기록 멀티캠퍼스 국비지원교육 데이터 사이언스 강의 수강 기록. Contribute to mungdo/multicam_ds development by creating an account on GitHub. github.com 힙 실습 https://github.com/mungdo/multicam_ds/blob/main/4_algorithem_selfStudy/02_heap.py GitHub - mungdo/multicam_ds.. 2022. 1. 24.
[특강] 자료구조와 알고리즘 1. 자료구조와 알고리즘 자료구조 : 자료를 효율적으로 관리하는 방법 알고리즘 : 목적지까지 최적의 이동 경로를 찾는 방법 2. 자료구조의 종류 1) 선형 자료구조 : 리스트, 스택, 큐 - 데이터를 한 줄로 순차적으로 표현한 형태. 2) 비선형 자료구조 : 트리, 그래프 - 하나의 데이터 뒤에 여러 개가 이어지는 형태. 3. 알고리즘 성능 : 시간 복잡도 - 데이터 양이 많아질수록 시간 복잡도가 크면 성능에 무리가 생김 - 좋은 알고리즘은 시간 복잡도가 작은 알고리즘 - 빅-오 표기법 : O(f(n)) ( O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(2^n) ... ) 1. 선형 리스트 : 데이터를 일정한 순서로 나열. 순차 리스트. - 입력 순서대로 저장하는.. 2022. 1. 12.
[객체지향] 객체와 클래스 객체는 변수와 함수의 묶음이다. 객체를 만들고 이용할 수 있는 기능을 제공하는 프로그래밍 언어를 객체 지향 언어라고 한다. 파이썬은 객체지향 언어이다. 객체를 만드려면 우선 클래스를 선언해야 한다. 클래스가 틀이라면 객체는 클래스에 어떤 변수를 이용하느냐에 따라서 각각 다른 객체가 생성되는 것이다. 객체로 재사용 가능하도록 함 def 함수(인자...) : ..코드내용.. - 함수를 사용해서 계속 불러올 수 있음 - 함수를 여러개 묶어서 하나의 모듈을 만들 수 있음. * if __name__ == '__main__' > __name__은 스페셜 변수로 이미 인터프린터 내에서 생성되어 있음. 해당 파일 내에서 실행하면 __main__이고 다른 파일에서 import 해서 불러와 실행하면 해당 파일이 main이.. 2021. 12. 30.
[python] 재귀 알고리즘 + 하노이의 탑 보호되어 있는 글 입니다. 2021. 11. 6.
728x90