[1] 정규화(Normalization) : Attribute 간의 종속성으로 인한 이상현상이 발생하는 릴레이션을 분해하여 재디자인함으로써 이상현상을 없애는 과정 : 데이터의 중복 방지, 무결성을 충족하기 위해 데이터베이스를 설계하는 방법 정규화의 원칙 정보의 무손식 : 분해된 릴레이션이 표현하는 정보는 분해되기 전의 정보를 모두 포함해야 함 최소 데이터 중복 : 이상 현상을 제거, 데이터 중복을 최소화 분리의 원칙 : 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리해서 표현 정규화의 장점 각종 이상 현상들의 해결 새로운 속성의 추가로 인해 DB 구조를 확장하는 경우, 구조의 변경을 최소화할 수 있음 정규화된 릴레이션 간의 관계가 현실 세계에서의 개념들 간의 관계를 잘 보여줌 [2] 반정규화(De..
문제링크 : https://www.acmicpc.net/problem/25757 25757번: 임스와 함께하는 미니게임 첫 번째 줄에는 사람들이 임스와 같이 플레이하기를 신청한 횟수 $N$과 같이 플레이할 게임의 종류가 주어진다. $(1 \le N \le 100\,000)$ 두 번째 줄부터 $N$개의 줄에는 같이 플레이하고자 하는 사람들 www.acmicpc.net package boj; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.StringTokenizer; public class MiniGame { pr..
문제 링크 : https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net package boj; import java.io.*; import java.util.*; public class PasswordPronounce { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.i..
프로세스 주소 정의 프로세스가 메모리를 할당 받으면, 자신만의 방법으로 메모리를 관리하기 위해 이 공간들을 어떤 구조로 관리함. → 이를 프로세스 주소 공간이라고 부름 Stack 영역 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역 Stack 영역의 값은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됨 재귀 함수가 너무 깊게 호출되거나 함수가 지역변수를 너무 많이 가지고 있어 stack 영역을 초과하면 stack overflow 에러가 발생 Heap 영역 런타임의 크기가 결정되는 영역 사용자에 의해 공간이 동적으로 할당 및 해제됨 주로 참조형 데이터 (ex. 클래스) 등의 데이터가 할당됨 메모리의 낮은 주소에서 높은 주소의 방향으로..
프로그램(Program) 어떤 작업을 위해 실행할 수 있는 파일 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 (모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해 줘야 실행될 수 있음.) 📌 실행되기 전에는 메모리에 할당이 되지 않은 정적인 코드 및 데이터의 묶음 → 윈도우의 exe 파일 or 맥의 dmg 파일 등 사용자가 눌러서 실행하기 전의 파일들 프로세스(Process) 메모리에 올라와 실행되고 있는 프로그램 동적인 개념으로는 실행된 프로그램을 의미 운영체제로부터 자원을 할당받은 작업의 단위 CPU 시간 (일반적으로 CPU는 한번에 하나의 프로세스만 관리할 수 있음) 멀티태스킹은 한번에 다수의 프로세스를 실행하고 있는 것이 아니고 사용자로 하여금 다수의 프..
Operating System(OS) - 컴퓨터 하드웨어와 소프트웨어 사이의 인터페이스 역할을 하는 핵심 소프트웨어 - 컴퓨터의 자원을 효율적으로 관리하고, 사용자가 컴퓨터를 쉽게 사용할 수 있도록 도와줌 ⇒ 하드웨어와 사용자 간의 중재자 역할을 수행 - OS는 스스로 어떠한 기능을 수행하기 보다 다른 응용프로그램이 작업을 원활히 진행할 수 있도록 작업환경을 마련해 줌. ⇒ 응용프로그램을 운영(Operating)하기 쉽도록 만든 시스템(System) - 종류 : Windows, Linux, UNIX, MS-DOS 역할 - CPU 스케줄링과 프로세스 관리 CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 - 메모리 관리 한정된 메모리를 어떤 프로세스에 얼만큼 할..