본문 바로가기

ComputerScience

(25)
[Database] 4. Data modeling 개념 정리 안녕하세요. CS지식 정리도 할 겸, 학교에서 배운 데이터베이스 개념 + "데이터베이스 개론-IT COOKBOOK" 의 책을 공부하며 알게 된 내용을 정리하려고 합니다. 지난 포스트 "데이터베이스 시스템(DBS) 구성요소 개념 정리"에 이어 이번에는 Data modeling에 관련된 개념을 정리해보려고 합니다. 주관적으로 작성된 글이기에 틀린 내용이 있을 수 있습니다.(댓글로 알려주시면 감사합니다:) 1. 데이터 모델링(Data modeling) 현실 세계에 있는 여러 현상, 데이터 중에서 조직에 필요한 데이터만 컴퓨터 속 데이터 베이스로 옮기는 변환 과정 데이터 모델링은 크게 3단계가 있습니다. (개념적, 논리적, 물리적) 일반적으로 이 모두를 합쳐서 데이터 모델링이라고 부릅니다. 데이터 모델링의 결과..
[Database] 3. 데이터베이스 시스템 구성 요소 개념 정리 안녕하세요. CS지식 정리도 할 겸, 학교에서 배운 데이터베이스 개념 + "데이터베이스 개론-IT COOKBOOK" 의 책을 공부하며 알게 된 내용을 정리하려고 합니다. 지난 포스트 "데이터베이스 관리 시스템(DBMS)"에 이어 이번에는 DBS(데이터베이스 시스템) 구성 요소 개념을 정리해보려고 합니다. 주관적으로 작성된 글이기에 틀린 내용이 있을 수 있습니다.(댓글로 알려주시면 감사합니다:) 1. 데이터베이스 시스템 Database System 데이터를 사용하는 모든 체계를 통틀어 Database system이라고 부릅니다. 사용자는 DBMS를 그냥 이용할 수 있는 것은 아니고 데이터 언어(ex: SQL)를 통해서 접근해야 합니다. 데이터 언어는 DBMS의 주요 기능인 DDL, DML, DCL 등의 기..
[Database] 2. 데이터베이스 관리 시스템(DBMS) 개념 정리 안녕하세요. CS지식 정리도 할 겸, 학교에서 배운 데이터베이스 개념 + "데이터베이스 개론-IT COOKBOOK" 의 책을 공부하며 알게 된 내용을 정리하려고 합니다. 지난 포스트 "데이터베이스 정의"에 이어 이번에는 DBMS 개념을 정리해보려고 합니다. 주관적으로 작성된 글이기에 틀린 내용이 있을 수 있습니다.(댓글로 알려주시면 감사합니다.) 1. 왜 DBMS를 사용하는가? DBMS를 사용하기 이전에는 file system을 통해 데이터를 관리했습니다. (TMI: 아!! 저는지금 iOS앱 개발을 하고 있는데 휴대폰 내 로컬 file system도 자주 이용합니다: ) 파일 시스템을 사용해서 데이터를 관리한다는 뜻은 데이터의 생성, 삽입, 수정 등을 파일 안에서 하는 것을 의미합니다. 데이터를 관리할 ..
[Database] 1. 데이터베이스를 시작하기에 앞서 | 데이터베이스 정의 안녕하세요. CS지식 정리도 할 겸, 학교에서 배운 데이터베이스 개념 + "데이터베이스 개론-IT COOKBOOK" 의 책을 공부하며 알게 된 내용을 정리할 것입니다. 이번 포스트는 데이터와 정보의 차이, 데이터 type, 데이터베이스 개념을 간단하게 정리 할 것입니다. 주관적으로 작성된 글이기에 틀린 내용이 있을 수 있습니다.(댓글로 알려주시면 감사합니다.) "데이터 베이스가 왜 필요한가?..." 요즘 iOS앱으로 개발을 즐겨하는데 가장 중요한게 데이터라고 생각합니다... (여행 앱을 만드는데 여행지에 필요한 가공된 데이터는 비싼 가격을 지불해야만 이용할 수 있는 api들이 많더라구요 ㅠㅠ) 1. 데이터와 정보 데이터(data)는 현실 세계에서 단순 관찰, 측정을 통해 수집한 것을 의미합니다. 정보(i..
[Algorithm/Swift] 문자열 탐색. KMP 알고리즘 파해치기!! 부분 일치 테이블 pi 채우는 방법 요즘 문자열 알고리즘을 공부하고 있습니다. 문자열 탐색에 많이 사용되는 kmp 알고리즘에 대해서 공부한 개념을 정리하려고 합니다.ctrl + f를 통해 trans라는 단어를 찾아봤습니다. 주어진 text에서 "trans"라는 pattern을 찾았습니다. 문자열 탐색이란 주어진 text에서 특정한 단어 pattern을 찾는 것을 의미합니다. Knuth, Morris, Pratt 세 사람이 만든 KMP 알고리즘이 문자열 탐색에 유명합니다. 그 전에 먼저 문자열 탐색의 가창 기초적인 방법을 설명한 후에 kmp 알고리즘을 통한 문자열 탐색 알고리즘을 소개하려고 합니다. 1. 기본적인 문자열 탐색 방법 Naive string search주어진 문장에서 특정한 문자열을 찾을 수 있는 방법이 뭐가 있을까요? 주어진 ..
[Algorithm] 플로이드 와셜(Floyd-Warshall) 개념 뿌수기!! 1. What is Floyd Warshall? 플로이드 와샬 알고리즘은 '모든' 정점 사이의 최단 경로를 구할 때 사용하는 알고리즘 입니다. 한 정점->인접한 다른 정점으로 갈 때 비용을 전부 2차원 배열에 저장합니다. 모든 정점을 포문으로 탐색하게 되는데 이때 특정 한 정점일 때 해당 정점을 거쳐서 갈 수 있는 경로가 원래 2차원 배열에 저장된 경로의 비용보다 낮다면 2차원 배열의 cost를 갱신합니다. 2. Floyd Warshall's algorithm 인접 정점 간 갈 수 있는 비용을 2차원 배열 visited에 저장했다고 가정한다면 점화식은 visited[v][w] = min(visited[v][w], visited[v][k] + visited[k][w])입니다. v : 시작 정점 w : 도착..
[Swift/Algorithm] 우선순위 큐 개념 정리, 최소 힙 개념 with 라이노님 Heap 코드 리뷰 라이노님 힙 상세 리뷰(안 까먹기 위해..) + 최소 힙 개념 정리 라이노님 힙 구조 struct Heap where T: Comparable { private var heap = [T]() let compare: (T,T) -> Bool var isEmpty: Bool { return heap.isEmpty } init(compare: @escaping (T,T) -> Bool) { self.compare = compare } init() { self.init(compare: T? { guard !heap.isEmpty else { return nil } guard heap.count != 1 else { return heap.removeFirst() } let res = heap.first! heap..
[Algorithm] 그래프의 의미 및 DFS, BFS 탐색 방법 기본 개념 완전 뿌수기!!!! [Algorithm] 그래프의 탐색 DFS, BFS 탐색 그래프란 무엇인가? 그래프의 개념 그래프 표현 방법 DFS란? BFS란? DFS와 BFS 차이 그래프란 무엇인가? 일반적으로 그래프 하면 떠오르는 개념은 통계 수치를 비교할 때 사용되는 히스토그램(histogram), 방정식 같은 이미지를 떠올린다. 알고리즘에서 그래프는 어떤 현상, 사물을 정점으로 표현하고 연관된 정보를 간선을 통해 표현한다. 이 또한 그래프의 개념에 속한다. 다시 말해 정점은 주요한 대상 정보를 나타내고 간선은 정점과 정점(정보와 정보)을(를) 이어주는 관계가 된다. 즉, 데이터가 존재할 때 각 데이터를 연관 지어 시각적으로 표현한 것을 그래프라고 한다. 위 그림은 네트워크와 연관된 이미지이다. 위에서 흰색 점들은 선으로 연결되..