전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻‍❄️☁️
import heapq INF = int(1e9) n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] for i in range(m): a, b = map(int, input().split()) graph[a].append((b, 1)) graph[b].append((a, 1)) distance = [INF]*(n+1) start = 1 def dijkstra(start): # 다익스트라 q = [] heapq.heappush(q, (0, start)) distance[start] = 0 while q: dist, now = heapq.heappop(q) if dist > distance[now]: continue for i in grap..
1. 인공지능 : Artificial Intelligence 인간의 지적 능력을 인공적으로 구현하여 컴퓨터가 인간의 지능적인 행동과 사고를 모방할 수 있도록 하는 소프트웨어이다. 인공지능 수준에 따른 분류 수준 1 : 단순 제어 프로그램 수준 2: 고전적인 인공지능 (적절한 판단을 내리기 위해 추론/탐색을 하거나 기존에 보유한 지식 베이스를 기반으로 판단하는 시스템) 수준 3 : 기계학습 인공지능 (정제되어진 데이터를 바탕으로 학습하고 문제 해결을 위한 해결책을 판단하는 인공지능 시스템) 수준 4: 딥러닝 인공지능 (대규모의 데이터를 기반으로 자동적으로 학습하고 복잡한 문제 해결을 위해 사용되는 인공지능 시스템) 2. 머신러닝 (기계 학습) 인공지능의 분야 중 하나로 인간의 학습 능력과 같은 기능을 컴퓨..
1️⃣ IT 신기술 및 네트워크 장비 트렌드 정보 1. SDN 소프트웨어 정의 네트워크 (Software Defined Network) 개방형 API(오픈 플로우) 기반으로 네트워크 장비의 트래픽을 지정하는 컨트롤 플래인(Control Plane)과 트레픽 전송을 수행하는 데이터 플래인(Data Plane)을 분리하여 네트워크 트래픽을 중앙 집중적으로 관리하는 기술이다. 2. 오픈플로우 오픈플로우 : 네트워크 장치의 컨트롤 플레인과 데이터플레인 간의 연계 및 제어를 담당하는 개방형 표준 인터페이스이다. 구성 요소 : 오픈플로우 컨트롤러, 프로토콜, 스위치, 흐름 테이블 (Flow Table) , 파이프라이닝 (Pipelining), 그룹 테이블, 보안 채널 3. 네트워크 기능 가상화 (NFV) NFV (..
소프트웨어 개발 표준 소프트웨어 개발 단계에서 품질 관리와 개발 표준을 위하여 국제적으로 정하는 표준이다. 1. ISO/IEC 12207 표준 소프트웨어 생명주기 프로세스이다. 소프트웨어와 관련된 조직과 사람, 소프트웨어 획득자, 공급자, 개발자 등의 이해관계자들이 각자의 입장에서 수행해야 할 일을 정의하고 지속적으로 개선시키기 위한 활동이다. 기본공정 프로세스, 조직 공정 프로세스, 지원 공정 프로세스 로 구성되어 있다. 2. CMMI 기존 능력 성숙도 모델을 발전시킨 것 -> 조직의 성숙도를 평가하기 위한 모델이다. 단계적 모델 & 연속적 모델이 있다. CMMI 단계적 표현 모델의 성숙도 레벨 : 초기화 단계 -> 관리 단계 -> 정의 단계 -> 정량적 관리 단계 -> 최적화 단계 초기화 단계 : 정..
1. 비용 산정 모델 개념 : 소프트웨어 규모 파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 기법이다. 2. 분류 하향식 산정 방법 : 경험이 많은 전문가에게 비용 산정을 의뢰 ex) 전문가 판단, 델파이 기법 상향식 산정 방법 : 세부적인 요구 사항과 기능에 따라 필요한 비용을 계산하는 방식 ex ) LOC(Lines of Codes). Man Month, COCOMO, Putnam, FP(Function Point) 상향식 산정 방법의 종류 LOC(Lines of Codes) 소프트웨어 각 기능의 원시 코드 라인수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 선정 Man Month 한 사람이 1개월동안 할 수 있는 일의 양을..
·iOS
Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates. 에러가 났다. 앱이 종료되지는 않았지만 Xcode에서 확실하게 경고를 주고 있다. 의미는 내가 지금 DispatchQueue를 사용해서 비동기 처리를 하려고 하는데, 코드의 위치가 main thread가 아니라 background thread이라는 것 같다. 난 저 이미지들을 IDLE 상태로 모두 바꿔주는 처리를 한큐에 해버리고 싶은데, 왜 이게 위험하다는걸까 ? 1. Main thread Main thread 는 오직 하..
·iOS
레이블러리 앱을 개발하면서 MVVM 패턴을 적용시켜보았는데, 기존에 애플이 지원했던 MVC 패턴을 떠올리며 차이점이 무엇인지 정리해보고 싶어서 글을 쓰게 되었다. MVC 패턴이란 ? Model + View + Controller 구조의 디자인 패턴이다. 그렇다면 각각의 요소에 대해 알아보도록 하자 ~! 1. Model : 앱의 데이터와 관련된 내용을 담고 있다. 그리고 데이터를 관리하는 로직도 Model에 담기게 된다. 네트워크를 통해 받아오는 데이터나 영구적인 데이터를 다루거나 필요한 구조체를 만드는 경우 관련된 코드들은 Model에 담기게 된다. 대체로 Model은 UI와 직접적으로 연결되어 있지는 않다. 데이터 그 자체의 구조를 나타내는게 MVC 패턴에서 일반적이다. - 데이터로 사용하는 구조체 e..
·Algorithm (PS)
자료구조 시간에 트리 구조 배웠을 때 처럼 !! 재귀 함수를 이용하여 트리를 순회할 수 있다. + 트리 자료구조를 다시 정리하자 ! # 1991 트리 순회 n = int(input()) tree = {} # dictionary type for i in range(n): root, left, right = input().split() tree[root] = [left, right] # key, value #preorder root - left - right def preorder(root): if root != '.': print(root, end='') # root preorder(tree[root][0]) # left preorder(tree[root][1]) # right # inorder left ..
minjiwoo
MJ workspace