Inventory
-
스레드 동기화란?@ 17. 1 ~ 18/C# 멀티스레드 2018. 3. 5. 00:36
윈도우는 스레드가 스케줄링의 단위가 되는 선점형 멀티스레딩 시스템이다.그러므로 여러 개의 스레드가 동시에 돌아가는 솔루션에서 아무런 대책없이 스레드 사이에서 데이터를 공유할 경우 문제가 발생한다. 두개의 스레드가 있다면 하나의 스레드 작업이 끝날때까지 다른 스레드는 기다리게 해줘야한다.기다리게 한다는 것은 2가지의 의미1. 상호배제, 즉 작원에 대한 독점적 점유를 목적으로 하나의 스레드가 해당자원을 사용하는 동안 다른 스레드들이 접근하지 못하도록 막는다는 측면2. 일반적 의미로는 작업의 성격상 각 스레드들의 순차적 실행을 보장해주는 측면결국은 막는다는 의미로 통일된다. 동기화의 필요성다중 cpu가 되면서 더 중요해짐. 사실 단일 cpu일때도 엄청 중요했던건 사실임. 왜냐면 스레드 스케줄링에 의거해 스레드..
-
인덱스 관련@ 17. 1 ~ 18/DB 2018. 2. 27. 00:58
인덱스 장점검색 속도가 빨라질 수 있다.그결과 쿼리의 부하가 줄어들어서 시스템 전체의 성능이 향상된다. 인덱스 단점인덱스가 데이터베이스 공간을 차지해서 데이터베이스 크기의 10% 정도의 추가 공간이 필요하다.데이터의 변경작업(INSERT Update Delete)이 자주 발생되면 오히려 성능이 나빠진다. 클러스터형 인덱스 : 영어사전처럼 처음부터 순서가 정렬되어있다.테이블당 한개만 생성할 수 있다.행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬한다.PK를 지정하면 자동으로 해당열에 생성된다. 또한 중복되지 않는 UNIQUE도 가능하다.(왜냐면 테이블당 한개만 생성할 수 있으니까..그렇다고PK나 UNIQUE가 반드시 클러스터형 인덱스만 아니다 비클러스터형으로 설정도 가능)(비클러스터형으로 하면 클러스터..
-
각 키 설명@ 17. 1 ~ 18/DB 2018. 2. 27. 00:21
기본 키 제약PK라고도 부르는 것. 중복이 안되며, NULL값이 안된다. 인터넷 쇼핑몰 회원가입을 보면 대부분 회원아이디로 설정한다.자동으로 인덱스가 생성된다. 테이블에선 기본키를 하나 이상의 열에 설정할 수 있다.(두개의 열을 합쳐서 기본키로 설정할수 있다.)기본키가 없어도 ㅇ테이블은 구성가능하지만 대부분 해줘야한다고 생각해야한다. 외래 키 제약FK라고도 부르는 것. 두 테이블 사이의 관계를 선언함으로써 데이터의 무결성을 보장해주는 역활을 한다.즉 외래키를 설정하면 하나의 테이블이 다른 테이블에 의존하게 된다.외래키를 정의하는 테이블을 외래키 테이블이라 하고외래키에 의해서 참고가 되는 테이블을 기준 테이블이라고 한다.반드시 기준 테이블에 데이터가 있어야 한다. 기준 테이블은 PK나 Unique 조건이 ..
-
JOIN 관련@ 17. 1 ~ 18/DB 2018. 2. 26. 23:44
일대다 관계를 해결하기 위해 사용.일대다 관계는 보통 일(기본키 pk)와 다(외래키)를 활용한다. INNER JOIN가장 많이 사용되는 조인으로 대개의 업무에서 사용된다. 일반적인 조인이라고 보면된다.사용되는 예구매 테이블이 있고 여기에는 물건을 구매한 사용자의 아이디와 물건 등의 정보만 있다.그런데 물건을 배송하기 위해 회원의 주소를 알아야하는데 회원의 주소정보는 회원 테이블에 있다.이때 결합하는것이 INNER JOIN이다SELECT FROM INNER JOIN ON [WHERE 검색조건] SELECT * FROM buyTbl AINNER JOIN userTbl BON buyTbl.userId = userTbl.userIdWHERE buyTbl.userId = 'BBB' 위에 A, B는 ..
-
리눅스 기초(명령어 위주)@ 17. 1 ~ 18/리눅스 2018. 2. 5. 01:49
리눅스 폴더구조(권장크기는 다른내용임. 비고만 볼것) 리눅스 명령어명령어 사이를 세미콜론으로 구분하면 연속으로 실행할때 사용한다는 의미이다.fdisk -l /dev/sdb; fdisk -l /dev/sdc(연속두번의 fdisk가 실행된다)pwd : 현재 디렉터리 보여준다ls -l : 현재 디렉터리의 파일리스트ls -a : 현재 디렉터리의 목록(숨김파일 포함)ls *.확장자ls -l /etc/sysconfig/a* : 해당 디렉터리에 있는 목록 중에서 앞글자가 a인것들 목록cd /etc : etc폴더로 이동halt -p : 종료한다df : 시스템에 마운트된 하드디스크를 확인할때 사용한다. cd 명령어 관련. 현재 디렉터리 .. 현재 디렉터의 상위 디렉터리cp ../lib/abc . : 현재 디렉터리의 상위..
-
Effective c# 간단 정리Read @ Book & E-Book 2017. 11. 12. 15:31
목차별 내용요약. C# 언어요소1. 지역변수를 선언할 떄는 var를 사용하는 것이 낫다.var를 사용해서 타입 추론을 위임한 경우 할당문 오른쪽의 내용을 기반으로 타입을 결정한다.개발자를 대신하여 올바른 타입을 추론해준다. 반환값에 대해 잘못사용될 일이 없다.단, 내장된 숫자 타입과 var를 함께 사용할때는 주의하도록한다. 쉽게 넘어가기엔 정밀도에 문제가 발생할 수도 있다.그리고 대부분 변수의 이름을 통해서 그 역할이 명확하게 드러내도록 코드를 작성하는 것이 낫다. 2. const보다는 readonly가 좋다const : 컴파일타임 상수성능이 매우 중요하고 상수의 값이 절대로 바뀌지 않는 경우에만 제한적으로 사용한다. (런타임 상수보단 빠르다)내장된 숫자형, enum, 문자열, null에 대해서만 가능하..
-
비주얼 스튜디오의 텍스트 템플릿 사용해보기@ 17. 1 ~ 18/용어정리 2017. 9. 21. 23:41
자세한 문법사용 내용은https://msdn.microsoft.com/ko-kr/library/bb126545.aspxtest.cs 파일1234567891011121314151617181920using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApp2 { /// /// 여기에 test는 tt파일과 같은 이름의 클래스를 partial로 구분해서 정의하고 있는것 /// string name은 실제 tt파일내부에서 으로 사용하기 위해서이다. /// partial class test { pri..
-
ACID 그리고 CAP개념@ 17. 1 ~ 18/DB 2017. 9. 7. 00:38
Atomicity : 분해할 수 없이 원자적이고Consistency : 일관된 데이터를 유지하고Isolation : 고립되어 다른 연산이 끼어들 수 없고Durability : 데이터가 영원히 반영된 상태로 있는 ACID 트랜잭션은 관계형 데이터베이스에서 여러 개의 SQL연산을 하나의 단일 트랜잭션으로 처리하는 것을 의미한다.여러개의 테이블에 대해서 읽고 쓰고 하는 행동을 하나의 연산처럼 사용하는 것이다. 트랜잭션에서 가장 중요한 개념은 원자성이다.여러개의 SQL 연산이 하나의 연산처럼 동작해야 한다. 어느것 하나라도 실패했다면 모든 연산이 실행되지 않아야 한다. 일관성은 같은 시점에 접속하는 클라이언트들은 항상 같은 데이터를 보고 있어야 한다는 것고립성은 트랜잭션이 수행되는 동안에 다른 연산이 끼어들지 ..