논리적 데이터 모델링 개념적 데이터 모델링에서 뽑아낸 개념을 관계형데이터베이스 패러다임에 어울리게 데이터 형식을 정리하는 것 특성이나 성능을 신경 쓰지 않는다. Mapping Rule ER 다이어그램에서 받은 데이터 형식을 관계형데이터베이스 형식으로 전환할 때 사용하는 방법 ER 다이어그램 → 관계형 데이터베이스 Entity → Table Attribute → Column Relation → PK,FK
ER 다이어그램에서의 표현을 설명했다.(영상 참고) 글 - 댓글의 개념 글은 댓글이 여러개 존재할 수 있다. 글은 댓글이 없을 수도 있다. 댓글은 글이 꼭 있어야 한다. 저자 - 의 개념 저자는 글이 여러개일 수 있다. 저자는 글을 쓰지 않을 수 있다. 글은 저자가 꼭 있어야 한다.
Optionality Option : 있을 수도 있고 없을 수도 있다. 저자 - 댓글 의 개념 저자가 댓글을 꼭 써야하는 것은 아니다. 저자가 여러 댓글을 쓸 수 있다. 댓글은 저자가 필수요소다. 저자 : Mandatory 댓글 : Optional 1 : N의 형식이다.
테이블 2개를 연관지을 때 1 : 1 1개의 튜플이 1개의 튜플가 매칭되는 경우를 의미 1 : N / 1 : 다 1개의 튜플이 여러개의 튜플과 매칭되는 경우를 의미 N : M / 다 : 다 여러개의 튜플이 각각 여러개의 튜플과 매칭되는 경우를 의미 이 경우에는 중간에 특정 테이블을 삽입하여 1 : N 형식으로 바꿔준다.
Relationship이란? 표들이 특정 데이터를 통해 연결되어 있는 것 Primary Key 를 다른 테이블의 특정 데이터가 가리키고 있는 경우 특정 데이터 : Foreign Key, 외래키 라고 한다. → Relationship은 Primary Key와 Foreign Key 가 연결되면서 생성된다. ER 다이어그램에서의 표현방법 관계 : 마름모 형태 관계와 테이블을 이어준다.
암호화 알고리즘 암호를 만드는 알고리즘이다. 용어 평문(Plaintext) : 해독 가능한 형태의 메시지(암호화 전 메시지) 암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지) 암호화(Encryption) : 평문을 암호문으로 변환하는 과정 복호화(Decryption) : 암호문을 평문으로 변환하는 과정 전자서명 송신자의 Private Key로 메시지를 서명하여 전달 수신자측에서는 송신자의 Public Key를 이용하여 서명값을 검증 양방향 암호화 암호화와 복호화과정을 통해 송,수신간 주고받는 메시지를 안전하게 암,복호화하는 과정 단방향 암호화 해싱(Hashing)을 이용한 암호화 방식으로 양방향과는 다른 개념이다. 평문을 암호문으로 암호화는 가능하지만 암호문을 평문으로 복호화 ..
Thread Safe Multi-Thread 상황에서 함수, 변수, 객체에 동시 접근이 발생해도 프로그램 실행에 문제가 되지 않는것을 의미한다. Java에서 Thread Safe를 유지하는 방법을 알아보았다. 1. Confinement(제한) 지역 변수는 각 스레드의 자체 스택에 저장되고, 스택은 고유한 영역으로 동시 접근이 발생하지 않는다. 사용 예시 public class Factorial { private static void computeFact(final int n) { BigInteger result = new BigInteger("1"); for (int i = 1; i
MST(Minimum Spanning Tree 최소 신장 트리) 신장 트리 : 모든 정점이 연결된 그래프, 사이클이 존재하지 않아야 한다. n개의 점을 (n-1) 개의 간선으로 연결한다. 최소 신장 트리 : 신장 트리 중 간선 가중치의 합이 가장 작은 신장 트리를 의미한다. Prim(프림) 알고리즘 시작 정점에서 출발하여 신장트리 집합을 단계적으로 확장해 나가는 방법이다. 수행 과정 임의의 정점을 시작 지점으로 선택 연결된 모든 간선의 가중치를 비교 가장 작은 무게의 간선 선택(사이클이 만들어지지 않도록) 모든 정점이 연결될 때까지 2~3번 과정 반복 시간복잡도 V : 정점의 개수 E : 간선의 개수 우선순위 큐로 구현 우선순위 큐 생성 작업 : O(logV) * O(E) = O(ElogV) 각 노드에서..
재귀함수(Recursion) Stack 개념을 이용해 자기 자신을 다시 호출하며 반복하는 함수이다. 구성 탈출 조건, 연산, 재귀 호출로 이루어진다. 탈출 조건을 잘못 설정하면 Stack Overflow가 발생한다. public static int rSum(int n){ // 탈출 조건 if(n == 0) return 0; // 재귀 호출 return n += rSum(n-1); } 장점 가독성을 높일 수 있다.(재귀적인 표현이 자연스러운 경우) 단점 호출이 많아질수록 Stack에 쌓여 메모리 사용량이 계속 증가한다. Stack Overflow가 발생할 수 있다. 재귀함수 사용 예시 피보나치 수열, 팩토리얼 구하기 분할 정복 알고리즘 이진 탐색 하노이의 탑 백트래킹 알고리즘 Tail Recursion(꼬..