데이터 모델링
·
Database
프젝을 하려고 디비 설계를 하려는데.. 디비 수업을 들은지 너무 오래되어서 어떻게 해야할지 생각이 1도 나지 않는다 😅대충 밍맹숭생 테이블을 짜겠는데 그래도 하는김에 제대로 해보자 싶어서 다시 정리해보자아아아 -.-~~기본적 순서업무 파악 (당연)개념적 데이터 모델링 (Conceptual design)데이터에 대한 개념적인 모델링을 의미한다. Entity Relation Diagram (ERD)를 그리는 과정논리적 데이터 모델링 (logical design) -> 표로 전환한다물리적 데이터 모델링 -> 실제 구현 (sql 코드)Conceptual data modelingentity= 명사. 실제 세상에 독립적으로 존재하는 어떤 것. ex 사람, 차 ,집, 학생 ..weak entity : 직원의 부양가..
블로그 시작 🤖
·
life
나는 원래 항상 정리하면서 공부해야하는 습관(?) 이 있어서 .. 학교 다니면서 진행한 거의 모든 것들을 노션에 끄적끄적 적어왔다.노션을 쓰기 전엔 잠시 이 티스토리를 활용하기도 했는데.. so dirty하게 정리를 해두어 대부분은 비공개글로..^^ 되어있다. 그치만 !나만 보기위해서 정리를 해두면 너무 대충 정리하게 되고.. 그냥 넘어가게 되는 것들이 많고,내가 나아가는 과정을 다른 사람들이 볼 수 있는 공간에 남기고자 다시 블로그를 시작한당.히히 홧팅~.~
14. Collections, Maps, Iterators
·
2-1/객체지향 - java
Collection : 여러 원소들을 담을 수 있는 자료구조 ( = 인터페이스 . 각 자료구조들은 Collection인터페이스를 구현한 것이고, 이때 iterator가 사용된다 ) 세 가지 큰 분류 인터페이스 = List / Set / Map 1. List 인터페이스 : 순서가 있는 데이터 집합, 중복허용 o ->구현 클래스 : Linked List, Stack, Queue, ArrayList, Vector • LinkedList : 저장할 요소를 노드로 만들어 값과 포인터를 저장함. 삽입, 삭제 빠르나 탐색이 느리다. 단일/이중연결리스트 존재 • Vector : 연결리스트와 같은 동작을 수행, Thread-safe ! 동기화를 지원함. 한번에 한 스레드만 vector호출가능. 그치만 속도는 연결리스트보..
디자인패턴 2 - Observer & Decorator
·
2-1/객체지향 - java
개념 : 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 하는 패턴 - 기본 기능에 추가할 수 잇는 기능의 종류가 많이 존재 (샷추가 같은거) -> 추가 기능을 Decorator 클래스로 정의한 후 -> 필요한 Decorator 객체를 조합하여 추가 기능의 조합을 설계함 ! - 음료수 처럼 기본 abstract 클래스 하나를 만듦 - 각 음료는 그걸 상속 - 첨가 옵션들은 1. Beverage (기본 component 클래스) 를 상속한 기본Decorator(추상)클래스만듦 2. 각 옵션은 1클래스를 상속함 -> 각 옵션 클래스들은 beverage 객체를 각각 가지고 있음 -> 해당 음료에 해당 옵션 추가한걸 리턴하는 함수 구현 Observer Pattern : 한 객체의 상태가 바뀔경우, ..
Design pattern - Singleton
·
2-1/객체지향 - java
Design patter = 소프트웨어 설계할 때 자주 발생하는 문제들에 재사용할 수 있는 훌륭한 해결책 = 가이드로 사용할 수 있는 모델 혹은 설계 => 특정 상황에서 일반적인 문제에 대한 입증된 솔루션 ! - 이미 해결된 문제를 처리하기 위한 툴킷을 제공 - 소프트웨어 문제를 어떻게 해결할지 생각하는데 도움을 줌 - 23개의 디자인 패턴을 정리하고, 다음 3가지로 분류함 1. Creational(생성) : 객체 생성과 관련된 패턴 2. Structural(구조) : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴 3. Behavioral(행위) : 객체나 클래스 사이의 알고리즘이나, 책임 분재에 관련된 패턴 Singleton = 한 클래스에 대해 객체를 하나만 !! 생성할 수 있도록 한 것 -> 어..
14- ArrayList , Generics
·
2-1/객체지향 - java
ArrayList Class - java의 standard library class (java.util.ArrayList 에 있음) (lang이 기본으로 되는거고, 저거는 임포트 해줘야됨 ^^) = 동적 데이터 구조 -> 아이템이 리스트에서 추가되거나 삭제될 수 있고, 이때 배열 길이가 늘어나거나 줄어든다! -> 실행동안 배열의 길이를 변경할 수 있다는 점 을 제외하면 일반 배열과 동일한 용도로 사용됨! ( 일반적인 array : 초기 크기가 고정되어있으므로 정적 데이터 구조) • 구현 ; array를 private 멤버로 만들어 구현. 꽉차면 새로운 배열에 데이터를 옮기는 방식! - base type은 class type! (그래서 기본 자료형(primitive type)으로 배열 만들면 Integer..
Graph 2
·
2-1/자료구조 (c)
Minimum-cost Spanning Tree Spanning tree - connected undirected weighted tree를 말한다 ( 모든 점들이 연결되어 있어야 하며 cycle이 없는 tree) - BFS / DFS 로 찾을 수 있다 - cost : 모든 엣지의 weight의 합 - 점이 n개면 엣지는 n-1개 (당연) -> spanning tree중에서 엣지들의 가중치 합이 최소인 트리를 찾는 알고리즘! 1. Kruskal Algorithm - edge를 이용! - 큭큭. 엣지잇게 엣지중에서 엣지하나선택 ㅋㅋ - 엣지를 오름차순으로 정리 - 젤작은거부터 하나씩 고름 ! 이때 사이클이 발생하지 않을때만 고른다! 모든간선에대해 다하면 끗 or n-1개 고르면 끗 복잡도는 O(eloge)..
Graph 1
·
2-1/자료구조 (c)
* 선형 자료 구조 : array, linked list, stack, queue 비선형 자료구조 : tree, graph, hash ! Concepts • graph 정의 : 하나 이상의 노드들의 집합 V와 두 노드)의 쌍으로 구성된 edhe들의 집합 E로 이루어진 자료구조 ( 노드와 엣지의 집합으로 구성된 자료구조. pair(V, E) ) - tree는 graph의 특수한 경우 ! (Graph가 더 큰 범위) • 종류 Directed graph ( = digraph ) - 화살표 있는거 - self-loop 있음 Undirected graph - 화살표 없는거 - self-loop 없음 Weighed graph - 각 엣지에 가중치가 부여되는 것 (거리를 의미~~ 거리가 서로 다름~~ 노드사이의 거리..
b-tree
·
2-1/자료구조 (c)
Concept 정의 : M-way Search Tree + AVL tree - M-way search tree : 자식 노드가 최대 m개이고 최대 m-1개의 키를 갖는 탐색 트리 - 최소 𝑚/2(위로올림) 개의 자식을 가짐 쓰이는 곳 - database 와 file system에서 쓰임. 복잡도 O(log n)
Red black tree & B-tree
·
2-1/자료구조 (c)
레드블랙트리 개념 - 모든 노드의 컬러가 red / black 인 binary search tree - 모든 빈 노드(null pointer)가 외부 노드로 대체된다 (external node = 맨끝에잇는 리프노드. 네모) (자녀가 없음 -> 자녀를 nill 노드라고 설정함) - 복잡도 O(log n) !!! - rank : 해당 노드에서부터 external node까지 블랙노드 개수 lemma (부명제) - h 부모가 레드면 자식은 무조건 블랙 (삽입시 어기게됨) - 레드규칙 이라고 부름 - 루트에서(임의의 노드에서) 외부까지 모든경로에서 블랙 개수는 같다! (자기 자신은 제외) -> delete연산시 위반가능. 연산 1. insert 굿노트에 정리함~~