OSI 7계층 네트워크 통신이 일어나는 과정을 7단계로 나눈 것이다. 통신이 일어나는 과정을 단계별로 파악하고, 통신 과정 중에 문제가 생길 경우 해당 단계를 확인하고 해결하기 위함이다. 계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화 할 수 있다는 장점이 있다. 상하구조를 가지기 때문에 상위 계층의 프로토콜이 제대로 작동하기 위해서 하위의 모든 계층에 문제가 없어야 한다. OSI 7계층은 다시 두가지 계층으로 나눌 수 있다, 1~4 계층 : 데이터 플로 계층 (Data Flow Layer) / 하위 계층 (Lower Layer) 5~7 계층 : 애플리케이션 계층(Application Layer) / 상위 계층 (Upper Layer) 데이터 플로 계층의 목표는 데이터 잘 쪼개고 받는 역할을 중..
정규화 (Normalization) - 목표: 테이블 간에 중복된 데이터를 허용하지 않는 것이다. - 중복된 데이터를 허용하지 않음으로 무결성을 유지 - null 값 최소화 -데이터 구조 안정성 최대화 * 무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것 정규화 과정 이 테이블을 보면 학번과 이름이 학생을 식별하는 기본키이지만 이름과 과목에 중복된 정보가 있다. 중복을 최소화 하기 위해 1NF, 2NF, 3NF, BCNF 등이 있다. 이와 같이 진행되며 보통 1NF ~ 3NF 까지 진행하거나 BCNF 단계까지 진행한다고 한다, 함수적 종속: X의 값에 따라 Y값이 결정될 때 X -> Y로 표현하는데, 이를 Y는 X에 대해 함수적 종속 이라고 한다. 예를 들어 학번을 알면 이름을 알 수 있는데, ..
이상현상 데이터 베이스에서 데이터의 일관성, 무결성 또는 정확성과 관련된 문제 또는 오류를 나타내는 용어. 데이터의 무결성을 유지하려다 발생하는 문제로 삽입이상, 갱신이상, 삭제이상 이 있다. 이상현상은 정규화를 통해 방지 할 수 있다. 삽입 이상(Insertion Anomaly) -새 데이터를 삽입할 때 발생하는 문제 -특정 행을 추가하려면 행에 연관된 다른 속성들도 함께 제공 해야 되는데, 이것이 불가능하거나 부정확하면 데이터 베이스에 삽입 할 수 없어서 원하지 않는 필드의 값도 넣어야됨 위와 같이 1,2,3번 필드에 대한 값만 넣고 싶지만, 테이블이 4개의 필드로 구성되어 있기 때문에 4번 필드에 불필요한 값이 필요할 때 갱신 이상(Update Anomaly) -데이터의 갱신 또는 수정 시 발생하는..
리스트에 주어진 정수를 넣은후, 리스트 탐색을 통해 최대합을 구하면 됨. 전체코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n=Integer.parseInt(br.readLine()); int[] arr=new int[n]; int[] dp=new i..
조건 1. 합을 나타낼땐 수를 1개 이상 사용 2. 첫번째 줄에 테스트 케이스의 갯수가 주어지고, 정수 n이 주어짐 3. n은 11미만의 양수 arr[n]이 방법의 수라고 생각하면 arr[1]=1 n=1일 때 (1) arr[2]=2 n=2일 때 (1,1) (2) arr[3]=4 n=3일 때 (1,1,1) (1,2) (2,1) (3) arr[4]=7 n=4일 때 (1,1,1,1) (1,1,2) (1,2,1) (2,1,1) (1,3) (3,1) (2,2) arr[5]=? n=5일 때. 1+4 / 2+3 / 3+2 로 나눠서 생각할 수 있다. = arr[4]+arr[3]+arr[2]=13 이런식으로 arr의 값을 구할 수 있으니 arr[n]=arr[n-1]+arr[n-2]+arr[n-3]이라는 공식을 도출할 ..
조건 1. 1보다 크고 입력받은 값보다 작거나 같은 한수의 개수를 출력 2. 한수는 각 자리 숫자가 등차수열을 이루는 수 문제에서 입력값는 1000까지 넣을 수 있다고 했으니 1~100 의 경우: 모든 수가 한수의 조건을 만족함 100~의 경우: 입력값을 반복하며 세어주면 됨 100~의 경우 입력받은 값을 a라고 할때 각 자리수는 이와 같이 구하면 됨. 백의 자리=a/100 십의 자리=(a/10)%10 일의 자리=a%10 한수라는 조건에도 맞아야 하니 (백의 자리)-(십의 자리)=(십의 자리)-(일의 자리) 를 만족하는 수를 구하면 된다. 전체 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 public..
CPU 스케줄링 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨주어야 할 때, 기다리고 있는 여러 프로세스 중에 어떤 프로세스를 결정하는 것 스케줄링의 세가지 시점 장기 : 어느 작업을 커널에 등록시켜 프로세스로 만들어 줄 것인가를 결정. 중기 : 보류준비 중인 상태의 프로세스들 중에서 어느 프로세스에 메모리를 할당해 줄 것인가를 결정 단기 : 준비 상태의 프로세스들 중에 어느 프로세스들에세 메모리를 할당해줄 것인가를 결정 스케줄링 평가 기준 사용자 관점 응답 시간 : 프로세스의 요청에 대해 시스템이 최초로 출력을 내주기 시작할 때까지 걸리는 시간 ( 프로세스가 들어와서 끝날때까지 걸리는 시간) 반환 시간 : 요청으로 부터 결과를 돌려 받는 데까지 걸린 시간 예측 가능성 : 요청한 일이 얼마..