블로그 이미지

[Linux] 프로세스 관련 명령어

2014. 5. 18. 16:15

ps  지금 Running 중인 프로세스 정보들을 확인할 수 있다.

kill <pid> 입력한 pid번호의 프로세스를 종료한다.

pid of <CMD> 입력한 CMD의 pid번호를 알려준다.


이 세가지를 응용하면 

kill -q pidof <CMD> 

를 입력한 해당 CMD 를 강제 종료 시킨다. (-q 는 강제 종료 명령어이다.)

'컴퓨터 > 이론' 카테고리의 다른 글

[Linux] 프로세스 관련 명령어  (0) 2014.05.18
데이터베이스(Database) 인덱스(Index) 개념  (0) 2013.08.05
소프트웨어 버전 규칙  (0) 2013.05.31
CPU와 MCU의 차이점 (간단히)  (0) 2013.02.13


블로그 이미지

데이터베이스(Database) 인덱스(Index) 개념

2013. 8. 5. 21:17

DBMS의 Index

: 데이터베이스에서 테이블과 클러스터에 연관되어 독립적인 저장 공간을 보유하고 있는 객체(object)이다. 

사용자는 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 인덱스를 생성하고 사용한다. 


DB에서 자료를 검색하는 두 가지 방법

FTS(Full Table Scan) : 테이블을 처음 부터 끝까지 검색하는 방법

Index Scan : 인덱스를 검색하여 해당 자료의 테이블을 액세스 하는 방법.


인덱스의 종류

가. 논리적 구분에 따른 인덱스 

: 칼럼의 수와 칼럼의 종류에 의한 인덱스의 구성

    a. Single Column Index 

        한 개의 컬럼으로 생성된 인덱스

    b. Composite Index

  두 개 이상의 컬럼으로 생성된 인덱스

  최대 32개까지 컬럼을 조합가능하나 일반적으로 10개 이하의 컬럼 조합으로 생성

    c. Unique Index

        모든 Unique 및 기본 키 제약조건 생성시 자동으로 생성

    d. Non-Unique Index

        중복된 컬럼을 가질 수 있는 Index

    e. Function-based Index

        인덱스에 포함된 1개 이상의 컬럼이 함수 또는 수식을 사용하여 생성된 경우를 말하며 인덱스로 저장되기         전에 값이 계산된다.

        Function-Based 인덱스는 B-tree 또는 Bitmap Index로 생성된다.

  Function-Based 인덱스를 액세스할 경우 오라클 서버는 SELECT 문이나 DELETE 문을 수행할 때 수식을 계산할 필요가 없다. 

 INSERT 문이나 UPDATE 문을 수행할 때 수식을 계산하여 인덱스에 저장한다.

 오라클의 경우 버전 8.1.X부터 사용할 수 있다.



나. 물리적 구분에 따른 인덱스

:

    a. B-tree 구조 인덱스

        일반적으로 생성되는 인덱스는 거의 대부분이 B-tree 구조의 인덱스로 생성된다.

        하나의 테이블에 인덱스를 많이 만들면 UPDATE, DELETE 작업의 실행 속도가 늦어진다.

        1개의 테이블에는 3~4개의 인덱스가 적당하다.

    b. Bitmap 인덱스

  인덱스된 컬럼의 정보를 0과 1의 값으로 표현하여 데이터를 검색할 때 사용되는 SQL 문의 WHERE 절에 정의된 AND, OR 연산자에 의해 AND 연산, OR 연산을 실행하여 데이터를 검색하는 방법이다.

  인덱스한 컬럼값의 변화가 거의 없어야 한다. 인덱스 컬럼값의 변화가 발생하면 테이블 전체 인덱스 데이터에 대해 인덱스를 다시 생성해야 하는 비용이 추가 된다.

    c. Cluster 인덱스

       인덱스로 작성된 컬럼의 컬럼값이 테이블에 순서대로 저장되는 방법으로, 일반적으로 인덱스가 생성되더라도         테이블에 영향을 끼치지 않고 생성되는 데 비하여, 클러스터 에비르은 클러스터 인덱스가 없이는 테이블에         데이터가 입력, 조회, 수정, 삭제 등 어떠한 작업도 할 수 없다.

       컬럼값이 다량 범위의 데이터일 경우 해당 컬럼의 다량 데이터에 대한 검색(LIKE, BETWEEN)을 자주하는         경우에 생성한다.

ORDER BY, GROUP BY, UNION, DISTINCT가 자주 발생하는 컬럼의 경우 생성한다.

'컴퓨터 > 이론' 카테고리의 다른 글

[Linux] 프로세스 관련 명령어  (0) 2014.05.18
데이터베이스(Database) 인덱스(Index) 개념  (0) 2013.08.05
소프트웨어 버전 규칙  (0) 2013.05.31
CPU와 MCU의 차이점 (간단히)  (0) 2013.02.13


블로그 이미지

소프트웨어 버전 규칙

2013. 5. 31. 09:29

1. Software Version

소프트웨어는 사람이 만들다 보니 완벽을 추구하기 힘들다. 때문에 같은 기능을 가진 소프트웨어라도 계속해서 좀더 나은 기능을 가진 소프트웨어가 만들어지게 되는데, 이를 전에 있는 소프트웨어와 구별하기 위해 버전을 표시한다.

일반적으로 버전은 다음과 같이 정의된다.


Version.

일반적으로 이전 버전의 산출물을 확장하여 이후 버전의 산출물을 만든다.


1.1 S/w 버전이 결정되기 까지

버전을 붙이는 방법이 따로 있을까? 답은 없다. 실망스러울지 모르겠지만, 버전은 개발 조직이 임의로 붙인다. 하지만 누구라도 쉽게 이해 하기 위해서 일반적으로 지켜지는 규칙은 있다. 일반적으로 새 버전에 큰 변화를 주었다면 소수점 윗자리를 올리고, 작은 변화는 소수점 아랫자리 번호를 올리는 방식이 많이 쓰이는데, 예를 들자면 1.0에서 1.5로 바뀌었다면 1.0에서 1.1로 바뀐 것보다는 많은 것이 바뀌었다는 의미이다.

그 외에, build, stable, beta, alpha 등의 버전이 있다. 이는 개발 단계를 나타내는 것이다.


2. Variable Versioning

2.1 Linux Kernel

2.1.1 커널 버전의 규칙

<주 버전 번호><부 버전 번호><패치 레벨 번호>-<컴파일 횟수><추가 정보 문자>

예) Kernel 2.9.19-12

2.1.2 주 버전 번호

소프트웨어에 커다란 변화가 생겼을 때 올라가는 부분이다.

2.1.3 부 버전 번호

부 버전 번호는 짝수일 떄와 홀수일 떄가 있다. 짝수일 경우에는 안정 버전(Stable Version)이라고 하며, 많은 개발 과정을 통해 충분히 안정화 되어 있다고 판단하는 기능으로 이루어져 있는 소프트웨어를 나타낸다. 홀수일 경우에는 개발 버전(Development Version)이라고 하며, 현재 개발되고 있는 소프트웨어를 중심으로 베타 테스터 혹은 최신 중독자를 위한 버전이다.

2.1.4 패치 레벨 번호

패치 레벨은 같은 버전 안에서 일어난 소규모의 개정 작업의 횟수를 나타낸다. 예를 들어 2.9.19은 2.9.0 이후 19번의 개정 작업이 이루어졌다는 뜻이다.

2.1.5 컴파일 횟수

몇 번의 컴파일을 했는지를 나타낸다.

2.1.6 추가 정보

필요한 정보를 지정하여 사용한다.

2.2 Microsoft

마이크로소프트는 전통적인 프로그램의 버전 업 네임 방식인 Windows V4.0으로 하지 않고 발표 연도를 기준으로 Windows 95라 명명하기로 했다. 마이크로소프트사가 흔히 프로그램 이름에 버전 번호를 붙이는 방식을 택하지 않고 새로운 방식을 택한 이유는 지금까지의 소프트웨어 업그레이드 시에 버전 네임 지정 방식인 큰 기능 향상 또는 추가(Major or Upgrade)시는 앞자리 수 판 높임. 작은 기능의 추가 또는 버그 수정판(Minor Upgrade)은 소수점 아래 판 높임 방식이 오히려 소비자들에게 더욱 혼란을 가중시킨다는 판단에서이다.

2.2.1 Microsoft 버전의 규칙

<Major Version>.<Minor Version>.<Build Number><Additional Marks>

4.00.950(윈도우 95)

4.00.950B(윈도우 95 OSR2)

4.10.1998(윈도우 98)

4.10.2222A(윈도우 98 Second Edition)

2.2.2 Major Version

프로그램의 대폭적인 변경이 있을 경우에 이 숫자가 하나 올라갑니다. 실제로 윈도우 3.1에서 윈도우 95로 넘어갈 때 그 모양과 기능은 가히 형명적으로 변화하였습니다. 이렇게 상당한 변화가 있을 경우에 메이저 버전을 하나 올립니다.

2.2.3 Minor Version

마이너라는 단어는 메이저라는 단어보다 작다는 느낌이 확실히 드실것으로 생각되는데 프로그램에 작은 기능 개선이 있을 경우에 이 숫자를 바뀐 정도에 따라 적절히 변화 시킵니다. 윈도우 95의 버전은 4.00이지만 윈도우 98은 4.10인데 이 말은 위도우 95에서 윈도우 98로 의 변화는 그리 크지 않다는 것을 가리킵니다.

2.2.4 Build Number

빌드의 뜻은 프로그래밍중인 프로그램을 실제로 프로그램화 시키는 것을 말합니다. 여러명이 작업하는 경우에는 모든 프로그래머가 작업한 프로그램 코드를 하나로 합쳐 프로그램화 시키는 것을 말합니다. 윈도우 98과 윈도우 98 SE는 버전은 동일하지만 빌드 넘버가 윈도우 98 SE가 더 큰데 이것은 윈도우 98에 비해 좀 더 버그를 잡고 자잘한 기능을 추가했음을 의미합니다.

2.2.5 Additional Marks

빌드 넘버가 동일하다 하더라도 프로그램의 코드가 다른 경우가 있는데 예를 들어 빌드 10인 프로그램 코드에 A라는 내용을 추가한 경우와 같은 코드에 B라는 내용을 추가하여 Build한 경우 같은 빌드넘거 11이 되지만 내용은 다르게 됩니다. 이러한 미세한 차이가 있을 경우에 알파벳이나 기타 기호로 표시를 해둡니다.

2.3 Apple (Mac)

MacOS X 버전에는 메이저(또는 비호환) 버전 및 마이너(또는 호환) 버전 등 2개의 버전이 있습니다.

2.3.1. MacOS X 버전의 규칙

2.3.1.1 메이저 비호환 버전

이전 버전 프레임워크의 동적 공유 라이브러리와 연결된 프로그램과 비호환되는 프레임워크를 의미한다.(백워드 호환)

2.3.1.2 마이너 호환 버전

동일한 메이저 버전 내에 나중에 구축된 프레임워크와 연결된 프레임워크과 호환되는 프레임워크를 의미한다.(포워드 호환)

2.3.1.3 특징 및 요약

버전 유형 

요청 시점 

결과 

메이저/비호환

(백워드 호환)

API 변경(함수이름 변경) 

API삭제하기

인스턴스 변수 추가히기 또는 재정리

C++  메소드 추가 

메이저 버전 지정자 변경되고 프레임워크 경로에 새로운 지정자가 반영된다.

프로그램에 기록된 동적 공유 라이브러리의 경로는 프레임워크를 통해 작성 된다.

마이너/호환

(포워드 호환)

새로운 함수, 메소드, 클래스, 구조 등 추가 

현재(마이너) 버전 번호가 증가되며, 호환 버전은 현재(마이너) 버전과 동일한 값으로 설정된다. 프로그램에 기록된 값은 이 프레임 워크를 통해 작성된다.

없음

버그 수정, 성능 향상은 프로그램 인터페이스에 영향을 미치지 않는다. 

 현재(마이너) 버전이 증가된다. 호환 가능한 버전이 동일하게 유지된다. 프로그램에 기록된 값은 이 프레임을 통해 작성 된다.



3. Samsung Tecwin Membership 창의 과제 수행 시 버전 규칙 명명 법

<주 버전 번호>.<부 버전 번호>.<패치 번호>.<(옵션)문자 리팩토링 후>-<날짜>

ex) 1.2.1-130531

ex) 1.2.1.C-130531

3.1 주 버전 번호

새로운 모듈이 구현되어 통합 되었을 때를 말한다. 게임 메뉴 기능, 미니게임1, 미니게임2 등 큼지막한 독립적인 덩어리를 하나의 모듈로 보고 메인 프로그램에 통합되었을 때를 주 버전 번호를 올린다.

3.2 부 버전 번호

하나의 모듈에서 기능들이 구현되어 통합 되었을 때를 말한다. 미니게임1에서 캐릭터가 점프하는 기능이 구현되었을 때, 기능 하다가 구현되었다고 보고 부 버전 번호를 올린다.

3.3 패치 번호

기능 안에서 잔 버그들을 잡거나 기능의 내부 구조를 수정하였을때 패치 번호를 올린다.

3.4 리팩토링 후

이쪽 번호는 필요시 부여하는 옵션 문자로 리팩토링에 의해 기능은 동일하되 내부 구조등이 변경 되었을 때 부여하는 번호이다. 

3.5 날짜

버전업을 공식화한 날짜를 기록하며 YYMMDD 년도,월,일을 두 자리씩 표시한다.






'컴퓨터 > 이론' 카테고리의 다른 글

[Linux] 프로세스 관련 명령어  (0) 2014.05.18
데이터베이스(Database) 인덱스(Index) 개념  (0) 2013.08.05
소프트웨어 버전 규칙  (0) 2013.05.31
CPU와 MCU의 차이점 (간단히)  (0) 2013.02.13


블로그 이미지

CPU와 MCU의 차이점 (간단히)

2013. 2. 13. 11:25

CPU와 MCU의 차이점 (간단히)


  1. CPU[Central Processing Unit](중앙연산처리장치)
  2. ALUC(산술논리연산부), 명령해독부, 제어부 등으로 구성된 연산처리용 장치이다.

  3. MCU[Micro Controller Unit]('마이콤' 이라고 불리기도 함)
  4. 특정 시스템을 제어하기 위한 전용 프로세서
    MCU는 롬(ROM)과 램(RAM) 회로까지 내장, 사실상 초소형 컴퓨터의 역할을 하고 있다.
    CPU를 포괄한 넓은 개념이다.




'컴퓨터 > 이론' 카테고리의 다른 글

[Linux] 프로세스 관련 명령어  (0) 2014.05.18
데이터베이스(Database) 인덱스(Index) 개념  (0) 2013.08.05
소프트웨어 버전 규칙  (0) 2013.05.31
CPU와 MCU의 차이점 (간단히)  (0) 2013.02.13