제약조건은 컬럼에 대한 속성을 정의하는 것이며, 데이터 무결성을 보장하기 위한 용도로 사용된다. 다시말해, 제약조건을 설정한다는 것은 테이블이나 속성에 부적절한 데이터가 들어오는 것을 사전에 차단하도록 규칙을 정하는 것이라고 생각하면 된다. 제약조건은 컬럼의 속성처럼 사용하지만, 엄연히 데이터베이스의 객체이므로 고유의 이름(제약조건 명)을 지정해주어야 한다. 사용자가 지정하지 않는 경우, ORACLE이 자동으로 부여해준다. 1. NOT NULL 컬럼을 정의할 때(NOT NULL의 경우 오로지 컬럼에만 적용 가능하다. 테이블은 안됨.) NOT NULL 제약조건을 명시하면 해당 컬럼에는 반드시 데이터를 입력해야만 한다. 반드시 데이터가 들어와야만 하는 컬럼에 명시를 해두면 유용할 것이다. 사용 예는 아래와 ..
데이터 타입(DataType)은 컬럼이 저장되는 데이터 유형을 말한다. 오라클의 데이터 타입은 오라클이 기본으로 제공하는 기본 데이터 타입(혹은 원시 데이터 타입)과 사용자 정의 데이터 타입으로 분류할 수 있다. 1. 문자 데이터 타입 문자나 문자열 데이터를 저장할 수 있는 데이터 타입을 의미한다. 종류와 특징은 아래와 같다. 데이터 타입 설명 CHAR(size) 고정길이 문자를 저장. 최대 2000byte. 최소 1byte. VARCHAR(size) 가변길이 문자를 저장. 최대 2000byte. 최소 1byte. NCHAR(size) CHAR와 같으나 유니코드 형태이다. NVARCHAR(size) VARCHAR과 같으나 유니코드 형태이다. LONG 최대 2GB 크기의 가변길이 문자형이다. 잘 사용하지 ..
윈도우 운영체제의 가상 메모리(Virtual Memory)는 RAM을 관리하는 방법 중 하나로, 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 할당하는 방식을 말한다. RAM의 부족한 용량을 보완하는 데 주로 쓰인다. 윈도우 운영체제는 가동되고 있는 프로세스들의 내용(페이지) 중, 덜 중요한 것들을 하드 디스크의 공간에 옮겨 놓는다. (당연히 어디에 저장했는지도 기록해 놓는다.) 그리고 프로세스가 동작하는 도중, 메모리에 필요한 데이터(페이지)가 없으면 하드디스크를 찾아 해당 데이터를 가져온다. (이 과정에서 속도 저하가 발생. ROM이 RAM보다 느리기 때문.) ▶ 가상메모리로 메모리 용량을 확보한 모습. 하지만 가상메모리는 용량이 충분할 때도 쓰인다, 가상메모리의 동작 프로세스를 설명하..
1. 금융시장의 분류 (1) Money market (화폐시장) - 만기가 1년 미만인 금융 상품이 거래되는 시장 - 기업의 운전자금에 충당할 단기자금이 조달되는 시장 (2) Capital market (자본시장) - 만기가 1년 이상인 금융 상품이 거래되는 시장 - 기업의 시설자금에 충당할 장기자금이 조달되는 시장 2. 증권시장의 분류 (1) 발행시장 - 증권을 새로이 발행하여 일반 대중에게 매각하여 자금을 조달하는 시장 (2) 유통시장 - 이미 발행된 증권이 투자수익을 목적으로 하는 투자자들 사이에서 매매되는 시장 3. 금융기관 (1) 특수은행 - 한국산업은행, 한국수출입은행, 중소기업은행, 농협, 수협중앙회 (2) 비은행 금융기관 - 종합금융회사, 저축은행, 신용협동기구, 우체국예금 (3) 증권관련..
해싱(Hashing)은 하나의 문자열을 원래의 것을 상징하는 더 짧은 길이의 값이나 키로 변환하는 것이다. (출처: http://www.terms.co.kr/hashing.htm) 그리고 해싱은 해시 테이블(Hash Table)과 해시 함수(Hash Function)로 구성된다. 그림1. 해시테이블과 해시함수의 역할을 나타내는 개념도 해시테이블(Hash Table, Hash Map이라고도 불림.)은 Key와 Value를 갖는 자료구조이다. 주로 효율적인 검색에 활용되는데, 위 그림을 보자. John Smith라는 사람의 전화번호를 찾는 과정을 가정했을 때, 해시함수(Hash Function)의 입력값은 "John Smith"이고 출력값은 "01"이다. 그리고 색인이 "01"인 bucket에서 "521-8..
직원들을 착취하거나, 소비자들을 기만하여 부를 축적해온 악덕기업들이 사회적으로 꾸준히 이슈가 되고있다. 국민들은 이러한 기업들에 분노하고, 그들이 할 수 있는(가장 효과적인?) 저항방식인 '불매운동'을 한다. 이 불매운동에 대해, 짧은 생각을 써보려고 한다. 나는 2013년 남X유업 사태 이후, 남X유업의 제품을 절대 구매하지 않는다. 이유는 다들 잘 알 것이다. 하지만 나의 불매는 "국민의 피를 빨아먹는 남X유업은 절대 안사먹는다!"라는 거창한 시민의식에서 나온다기 보다는, "그냥 매X유업꺼 사먹으면 되지."라는 생각에서 기인한다. 물론 남X제품이 조금 더 저렴하지만, 그정도는 감수할 수 있으니까... (그림1. 불매운동 관련 이미지) 한편, 불매운동은 항상 끝이 좋지 못한 것 같다. 적어도 우리나라에..
Process와 Thread의 비교는 전산학의 '꽃' (아니면 말고..)인 '운영체제'에서 중요하게 다루는 내용이므로 취준생이라면 꼭 짚고 넘어가야할 내용이다. 먼저, Process와 Thread에 대해 정의를 내리자면, Process: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. Thread: 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.(출처: 위키피디아 해당 항목.) 프로그램(Program)에 대해 다들 알 것이다. 프로그램은 명령어들과 데이터의 묶음이라고 할 수 있다. 운영체제가 프로그램에 메모리를 할당하여 실행하면 이를 프로세스라고 한다. CPU의 프로세서는 하나..
부제: 경쟁전 승리하는 법, 경쟁전 점수 올리는 법, 경쟁전 심해 탈출법, 경쟁전 연패 끊는 법. 최근에 오버워치를 재밌게 즐기고 있는데 강좌를 이것저것 찾아보다가 유투브에 좋은 동영상이 있어, 포스팅해보려고 합니다. (출처: https://www.youtube.com/watch?v=MJv-HECO_Ek) 영상에서는 남탓과 신세한탄을 줄이라는 조언을 핵심으로, 경쟁전에서 '틸트'에 걸리지 않는 법에 대해 설명하고 있네요. 저는 이러한 주장이 상당히 일리있다고 생각했는데, 얼추 생각해봐도 팀원이 못해서 내가 연패를 한다는 것은 조금 설득력이 떨어지는 주장이에요. (저도 이 영상을 보고 400점을 올렸습니다. 그런데 아직도 심해에요) 경쟁전 상대 및 아군 매칭은 '비슷한 점수대'를 가진 사람이 '무작위'로 ..
JAVA의 Wrapper Class에 대한 개념은 그냥 지나가기 쉬운 부분이라 꼭 정리를 해둘 필요가 있다. 특히, JDK 1.5 이후 버전부터 AutoBoxing기능이 지원되면서, 더욱 그냥 지나가기 쉬워졌다. 그리 어려운 내용이 아니니 쭉 훑어보면 될 것이다. JAVA는 객체로 이루어져있고, 모든 데이터가 객체로 표현된다. Object를 상속하는 모든 클래스를 참조형(Reference Type)이라고 한다. 하지만 이처럼 객체로 표현하지 않고 원시적인 형태로 표현하는 예외를 두고 있는데, 그것이 바로 기본형(Primitive Type)이다. JAVA의 기본형과 이에 대응하는 Wrapper Class. (출처: 자체제작) 표의 좌측에 나열된 기본형의 예를 보면 기본형의 정의에 대해 더 명확해졌을 것이다..
오버워치를 플레이 함에 있어 중요하다고 느낀 것이, 바로 아군과 적군의 궁극기를 소리만으로 구분하는 것입니다. 소리를 구분할 줄 알면 난전 상황에서도 침착한 대응이 가능하고, 리스폰 이후 전장으로 달려가는 중에도 전황을 파악하기 쉽습니다. 어쨋든 구분할 줄 알면 좋으니까, 바로 정리 들어가겠습니다. 1. 공격 영웅 1-1. 겐지 나: "竜(りゅう)神(じん)の剣(けん)を喰(く)らえ!" (류승룡 기모찌) 적군: (내가 시전하는 소리와 같습니다) 아군: "용이 내가 된다!" 1-2. 리퍼나: "죽어, 죽어, 죽어!" 적군: (내가 시전하는 소리와 같습니다) 아군: "여길, 죽음으로 쓸어주마..." 1-3. 맥크리나: "석양이 진다..." 적군: (내가 시전하는 소리와 같습니다)아군: "앞으로 나오시지." 1-..