본문 바로가기

전체 글

(26)
[Effective Java] Day3 보호되어 있는 글입니다.
[Effective Java] Day2 보호되어 있는 글입니다.
[Effective Java] Day1 보호되어 있는 글입니다.
[데이터베이스] 스키마의 개념 & 특징 0. 개요 스키마란 어떻게보면 굉장히 기본적인 개념으로 많이 사용되었음에도 불구하고 스키마가 뭐냐고 하는 질문에 그동안 제대로 질문을 하지 못했다. 그래서 이번 기회에 스키마가 무엇인가에 대해 정리하면 좋을 것이라 생각해서 이렇게 정리하게 되었다. 1. 스키마란? 컴퓨터 과학에서 데이터베이스 스키마(database schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.스키마는 3층 구조로 되어있다.외부 스키마(External ..
[알고리즘][그래프][9466] 팀프로젝트 - URL : https://www.acmicpc.net/problem/9466 - 소스코드 import java.util.Scanner; class Main { static int[] graph; static int[] check; static int[] startVertex; static int dfs(int start, int cnt, int step) { if (check[start] != 0) { if (step != startVertex[start]) { // 이미 방문했고, 정점 시작점이 다를 경우 사이클 x return 0; } return cnt - check[start]; } check[start] = cnt; startVertex[start] = step; return dfs(grap..
[운영체제] 교착상태 1. 교착상태1.1 교착상태- 한 프로세스가 자원을 요청했을 때, 자원을 사용할 수 없는 경우가 발생할 수 있고, 그 경우에는 프로세스는 대기상태로 들어간다. 이처럼 대기 중인 프로세스들이 그들이 요청한 자원들이 다른 프로세스에 의해서 점유되고 있고, 그들도 다 대기상태에 있으면, 결코 다시는 그 상태를 변경시킬수 없는 상황.[그림1 교착 상태]그림1에서 P1프로세스는 P2 프로세스가 사용중인 자원 R1을 할당받기 위해서 기다리고 있고 P2 프로세스는 P1 프로세스가 사용중인 자원 R2를 할당받기 위해서 기다리고 있는데, 이와 같이 교착상태(DeadLock)이 발생하면 작업이 중지되고 프로세스들이 사용할 자원을 기다리게 된다. 1.2 교착상태 처리방법1.2.1 예방 or 회피시스템이 결코 교착상태가 되지..
[운영체제] 프로세스 동기화 1. 프로세스 동기화 기법1.1 뮤텍스1)뮤텍스일종의 Locking 매커니즘이다. lock을 가지고 있을 경우에만 공유 데이터에 접근 가능하다. 일부 음식점들은 공용 화장실 관리 차원에서 화장실을 잠궈두고(Locking) 다닌다. 손님들이 화장실에 가려면 주인에게 열쇠를 받은 후 가야한다. 물론 다음 손님이 화장실에 가려면 앞 손님이 열쇠를 반납해야 갈 수 있다. 이렇게 열쇠가 있는 lock을 가지고 있는 경우에만 공유자원(화장실)에 접근할 수 있다. 이게 바로 Mutex라고 보면 된다. 유의할 점은 Lock에 대한 소유권이 있다는 점이다. 열쇠를 획득한 사람만 반납할 수 있다.2) 세마포어세마포어는 동시에 리소스에 접근할 수 있는 '허용 가능한 Counter의 갯수'를 가지고 있는 Counter로 보면..
[운영체제] 프로세스와 쓰레드 1. 프로세스와 쓰레드 1.1 프로세스와 쓰레드의 정의- 프로세스 : 현재 실행 중이거나 곧 실행이 가능한 프로세스 디스크립터(PCB)를 가진 프로그램. - 쓰레드 : 프로세스 내에서 분리된 실행 흐름. 1.2 프로세스와 프로그램의 정의- 프로세스 : 다음 명령어를 수행하게 지정하는 프로그램 카운터를 가진 능동적(Active)인 단위를 의미.- 프로그램 : 단순히 디스크 상에 저장된 파일의 내용으로서 수동적(Passive)인 단위를 의미. 1.3 프로세스와 쓰레드의 차이 프로세스와 쓰레드는 메모리 관리에서 차이점을 가지고 있다. - 프로세스는 자신만의 고유 메모리 공간을 할당받아 사용.- 쓰레드는 메모리 공간에서 Register, Stack을 독립적으로 가지고, 나머지 메모리 공간 Code, Heap, ..