컴포넌트(Component)

: 컴포넌트는 각각 독립된 모듈을 뜻하며, 이는 흔히 JAVA와 같은 OOP언어 등의 Class 등의 개념과 다르다. 하나의 컴포넌트는 하나의 클래스로만 작성될 수 도, 여러 개의 클래스로도 작성될 수 있다. 컴포넌트 개념을 잘 적용한 소프트웨어란 부품(인터페이스를 구현받은 클래스)만 바꾸어 주었을 시, 오류 없이 잘 작동되는 것을 의미한다.

 

: 컴포넌트는 독립적인 단위모듈이다. 소프트웨어의 재사용을 쉽게하며, 유지보수 비용을 줄인다. 따라서 소프트웨어의 재사용의 중요성과 필용성에 필수적인 기술이다. (모듈, 라이브러리의 역할)

 

: 인터페이스는 사용자에게 해당 소프트웨어를 쓰기 위한 메서드(=장치)를 공개하고, 규격화된 메서드 환경에서 소프트웨어를 개발할 수 있는 환경을 제공해준다. 소프트웨어의 세부 내용은 인터페이스를 구현받은 클래스가 작성한다. 이렇게 함으로써 객체지향 개님은 정보은닉개념을 수행할 수 있을 뿐더러, 각각 독립된 모듈로 소프트웨어를 만들 수 있도록 크게 이바지 한다.

 

 

프로시저(Procedure)

: 프로시져는 프로그램에서 특정 동작을 수행하는 이름이 주어진 일정 부분이다. (함수의 역할)

 

: 프로시져는 특정 동작이나 연산을 위한 명령들을 별도로 마련하여 필요할 때마다 사용하는 것으로 프로그램에서 이름을 부를 때마다 실행이 된다. 이 때 프로시져에서 사용한 값을 매개변수를 통하여 전달하기도 한다.

 

: 프로시져는 컴퓨팅 사고의 요소 중의 하나의 추상화를 프로그램으로 만들 수 있는 방법을 제시하고 있으므로 컴퓨팅 사고에 의한 문제 해결 방법을 프로그래밍하는데 중요한 역할을 할 수 있다.

 

저장 프로시저(Stored procedure)

: 저장 프로시저 또는 스토어드 프로시저는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한(지속성) 것으로, 영구저장모듈이라고도 불린다.

 

: 데이터베이스 언어 표준 SQL에서는 SQL / PSM 기준으로 책정되어 있다. 벤터(제조사) 각사 모두 정적, 동적 SQL에 커서 처리 및 제어 구문, 예외 처리 등을 포함한 사양의 확장 언어로 절차를 설명할 수 있는 DBMS를 제공하는 경우가 많다. 또한 C 언어로 작성된 컴파일한 외부 모듈(공유 라이브러리) 및 Java 클래스 라이브러리에서 함수나 클래스 메소드를 호출하는 것으로 실현하는 '외부 프로시저' 기능을 구현하는 것도 있다. 저장프로시저를 사용하여 다음과 같은 장점이 있다.

 

1. 하나의 요청으로 여러 SQL문을 실행할 수 있다. (네트워크에 대한 부하를 줄일 수 있다.)

2. 미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 하므로 처리 시간이 줄어든다.

3. 데이터베이스 트리거와 결합하여 복잡한 규칙에 의한 데이터의 참조무결성 유지가 가능하게 된다. 간단히 말하면 응용 프로그램 측 로직을 가지지 않고도 데이터베이스의 데이터 앞뒤가 맞게 될 수 있다.

4. Java 등의 호스트 언어와 SQL 문장이 확실하게 분리된 소스 코드의 전망이 좋아지는 것, 또한 웹사이트 등 운용 중에도 저장 프로시저의 고체에 의한 수정이 가능하기 때문에 보수성이 뛰어나다

 

저장 프로시저를 많이 사용하면 다음과 같은 단점이 있다.

1. 데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL / PSM 표준과의 호환성이 낮기 때문에 코드 자산으로의 재사용성이 나쁘다.

2. 비즈니스 로직의 일부로 사용하는 경우 업무의 사양 변경 시 외부 응용 프로그램과 함께 저장프로시저의 정의를 변경할 필요가 있다. 이때 불필요한 수고와 변경 실수에 의한 장애를 발생시킬 가능성이 있다.

명령어(Commend)

 

: 전산학에서 명령어(Commend)는 셀 환경 등에서 프로그램 실행을 위해 일반 사용자가 입력하는 언어를 뜻함.

 

: 전산학에서 명령어(Instruction)은 컴퓨터 아키텍처 내부에서 중앙처리장치의 단일 동작(연산)을 뜻함.

 

: 프로그래밍에서 명령어는 명령문(Statement) 또는 함수를 뜻함.

프로세스(Process)

 

: 컴퓨터 내에서 실행중인 프로그램을 일컫는 용어

 

: 여러 분야에서 과정 또는 처리라는 뜻으로 사용되는 용어로, 컴퓨터 분야에서는 '실행 중인 프로그램'이라는 뜻으로 쓰인다. 1960년대 중반 멀틱스(Multics: multiplexed information and computing service) 시스템을 설계한 벨전화연구소의 연구원들이 처음 사용했다고 알려져 있다. 프로그램 또는 그 일부를 뜻하기도 하고, 데이터의 입력이나 출력 등을 조작하거나 처리하는 것을 말하기도 한다.

 

: 부모프로세스(parent process)라는 상위계층과 자식프로세스(child process)라는 하위계층이 존재한다. 부모프로세스는 프로그램이나 명령어에 의해 시작되며, 자식프로세스는 부모프로세스에 의해 만들어지는 것을 말한다. 하나의 부모프로세스는 여러 개의 자식프로세스를 관리하는데, 여러 개의 자식프로세스가 하나의 CPU에서 동시에 처리되는 것처럼 보이는 것을 멀티태스킹(multitasking)이라고 한다.

 

: 리엔지니어링에서는 과업이 아닌 연속적 업무의 묶음을 말한다. 예를 들어, 주문프로세스는 소비자의 주문이 접수되는 단계에서 주문 품목이 소비자에게 전달되기까지의 모든 과정을 의미한다. ISO9000시리즈 개정 2000판에서는 '입력을 출력으로 변환시키는, 상호관련되거나 상호작용하는 활동의 집합'이라고 정의하였다.

 

 

 

 

 

쓰레드(Thread) -- 프로그램을 실행할 때, 프로그램 안에 존재하는 실행 코드들

 

: 컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 즉 일련의 실행 코드. 프로세스는 단순한 껍데기일 뿐, 실제 작업은 쓰레드가 담당한다. 프로세스 생성 시 하나의 주 쓰레드가 생성되어 대부분의 작업을 처리하고 주 쓰레드가 종료되면 프로세스도 종료된다. 하나의 운영 체계에서 여러 개의 프로세스가 동시에 실행되는 환경이 멀티태스킹이고, 하나의 프로세스 내에서 다수의 쓰레드가 동시에 수행되는 것이 멀티쓰레딩이다.

 

 

 

 

 

 

셸(Shell : 지령 해석 프로그램)

 

: 운영체제상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램

 

: 셸은 일반적으로 명령줄과 그래픽 형의 두 종류로 분류로,

 

: 명령줄 셸은 운영체제 상에서 명령줄 인터페이스(CLI)를 제공하는 반면에,

 

: 그래픽 셸은그래픽 사용자 인터페이스(GUI)를 제공.

 

 

 

 

 

 

범용고유식별자(UUID) - 네트워크 상에서의 고유성이 보장되는 ID를 만들기 위한 규약

 

: 주로 분산 컴퓨팅 환경에서 사용되는 식별자입니다.

 

: 중앙관리시스템이 있는 환경이라면, 각 섹션에 일련번호를 부여해줌으로써 유일성을 보장할 수 있겠지만, 중앙에서 관

 리되지 않는 분산 환경이라면 개별 시스템이 ID를 발급하더라도 유일성이 보장되어야만 합니다. (이를 보장하기 위해

 범용고유식별자 UUID가 나왔습니다.)

 

: 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.

 

: 원래 아폴로 네트워크 컴퓨팅 시스템(NCS)에서 사용되었다가 나중에 개방 소프트웨어 재단(OSF)의 분산 컴퓨팅 환경

  (DCE)에서 사용되었다.

 

: DCE UUID의 초기 설계는 NCS UUID에 기반을 두었으며, 여기서 디자인은 아폴러 컴퓨터가 설계한 운영 체제인 도메

  인/OS에 정의되고 사용된 64비트 고유 식별자의 영향을 받았다.

 

: 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해서는 각각의 고유한 이름이 필요하다. 이 이름은 고유성

  (유일성)이 매우 중요하다. 같은 이름을 갖는 개체가 존재한다면 구별이 불가능해 지기 때문이다. 고유성을 완벽하게 보

  장하려면 중앙관리시스템은 불가능하다. 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족할 수 있는 방법이 필요

  하다. 이를 위하여 탄생한 것이 범용고유식별자(UUID)이며 국제기구에서 표준으로 정하고 있다.

 

 

쿠키(Cookie)

 

: 하이퍼 텍스트의 기록서(HTTP)의 일종으로, 인터넷 사용자가 어떠한 웹 사이트 방문할 경우, 그 사이트가 사용하고 있

 는 서버에서 인터넷 사용자의 컴퓨터에 설치하는 작은 로그(기록) 정보 파일입니다.

 

: 서버 접속 시, 접속한 클라이언트 정보를 자신의 하드디스크에 저장했다가 필요할 때 참조나 재사용한다.

 

: 일정 시간동안 데이터를 저장할 수 있으므로, 로그인 상태를 유지할 수 있다.

 

: 4KB 이하 저장 가능하다.

 

: 이름, 값 만료 날짜(쿠키 저장 기간), 경로 정보가 들어있다.

 

<쿠키의 동작 순서>

1. 클라이언트가 페이지를 요청한다.

2. 웹 서버는 쿠키를 생성한다.

3. 생성한 쿠키에 정보를 담아 HTTP 화면에 돌려줄 때 같이 클라이언트에게 돌려준다.

4. 넘겨 받은 쿠키는 클라이언트가 가지고 있다가 다시 서버에 요청할 때 함께 전송한다.

5. 웹서버는 정보를 변경할 필요가 있으면, 쿠키를 업데이터하여 응답과 함께 변경된 쿠키를 클라이언트에게 돌려준다.

6. 재방문 시 클라이언트의 메모리에 저장되어 있다면 요청 페이지와 함께 쿠키를 전송한다.

 

<쿠키의 사용 예>

1. 로그인 페이지에서 아이디나 비밀번호를 저장하는 것

2. 팝업이 나타났을 경우, '하루동안 이 창을 열지 않음'을 누르면 하룻동안은 팝업이 뜨지 않는 현상

3. 쇼핑몰에서 사용하는 장바구니

 

 

세션(Session)

 

: 주로 분산 컴퓨팅 환경에서 사용되는 식별자입니다.

 

: 중앙관리시스템이 있는 환경이라면, 각 섹션에 일련번호를 부여해줌으로써 유일성을 보장할 수 있겠지만, 중앙에서 관

 리되지 않는 분산 환경이라면 개별 시스템이 ID를 발급하더라도 유일성이 보장되어야만 합니다. (이를 보장하기 위해

 범용고유식별자 UUID가 나왔습니다.)

 

: 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.

 

: 원래 아폴로 네트워크 컴퓨팅 시스템(NCS)에서 사용되었다가 나중에 개방 소프트웨어 재단(OSF)의 분산 컴퓨팅 환경

  (DCE)에서 사용되었다.

 

: DCE UUID의 초기 설계는 NCS UUID에 기반을 두었으며, 여기서 디자인은 아폴러 컴퓨터가 설계한 운영 체제인 도메

  인/OS에 정의되고 사용된 64비트 고유 식별자의 영향을 받았다.

 

: 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해서는 각각의 고유한 이름이 필요하다. 이 이름은 고유성

  (유일성)이 매우 중요하다. 같은 이름을 갖는 개체가 존재한다면 구별이 불가능해 지기 때문이다. 고유성을 완벽하게 보

  장하려면 중앙관리시스템은 불가능하다. 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족할 수 있는 방법이 필요

  하다. 이를 위하여 탄생한 것이 범용고유식별자(UUID)이며 국제기구에서 표준으로 정하고 있다.

 

 

 

 

 

 

1. 변수를 특징 짓는 주요 속성

 

A. 변수 고유 속성들

  : 이름(식별자), 주소(기억공간 위치), 타입(타입에 따라 연산도 달라짐), 값(value)

 

B. 변수가 수행되는 위치/시간에 의존적인 속성들

  : 유효 범위(스코프, Scopre), 유효 시간(수명, Lifetime), 프로그램 환경(Program Environment)

 

 

2. 유효 범위 : 스코프/영역/범위 (Scope)

 A. 변수 스코프(가시성, Visibility)

  : 프로그램 내 변수에 접근할 수 있는 유효 범위/ 영역

   - 정의된 변수가 보이는 유효 범위

   - 통상, 변수 선언 이후부터 선언문이 속한 블록이 끝나는 부분까지

 

 B. 위치에 따른 변수 스코프 구분

  : 전역 변수(Global Variable) 또는 전역 스코프(Global Scope)

   - 프로그램 전체 어느 곳에서도 사용 가능

   - 통상, 블록(함수 등) 안과 밖 모두에서 사용가능한 변수

   - 즉, 블록(함수 등) 밖 전역 스코프에서 선언/정의/사용되는 변수

 

  : 지역 변수(Local Variable) 또는 지역 스코프(Local Scope)

   - 통상, 블록(함수 등) 내에서만 선언되고 사용되는 변수

   - 즉, 블록(함수 등) 안 지역 스코프에서 선언/정의/사용되는 변수

   - 한편, 과거 C언어에서, 지역 변수의 선언 위치를, 블록 맨 처음에 위치해야만 했으나, 최근 컴파일러에서는 자동으로       알아서 처리하여, 그런 제한이 없어짐

   - 만일, 전역 및 지역 변수의 명칭이 충돌하면, 지역 변수가 우선이 됨

 

C. 시간에 따른 변수 스코프 구분

  : 정적 스코프 (정적 메모리 할당)

   - 컴파일러 번역 시에 변수 영역이 결정됨 (어휘적 범위, Lexical Scope)

   - 함수를 정의할 때, 구문 해석 만으로도, 어떤 변수가 그 함수 스코프에 있는지를 알 수 있음

 

  : 동적 스코프 (동적 메모리 할당)

   - 실행시에만 비로소 변수 영역이 결정점

   - 함수를 실행할 때만, 비로소 어떤 변수가 그 함수 스코프에 있는지 알 수 있게 됨.

 

 

3. 유효 기간 : 수명(Lifetime)

 A. 변수 수명

  : 변수가 기억장소에 할당된 시점부터 반환되는 시점까지의 시간

 

 B. 변수 수명 구분

  : 자동 변수(Automatic Variable)

   - 프로그램 제어가 블록(함수 등) 내에 진입할 때 기억장소 할당이 되고, 빠져나갈 때 기억장소 해체가 일어남

  : 정적 변수(Static Variable)

   - 한 번 할당되면 프로그램 종료시까지 회수되지 않고 기억장소에서 살아있는 변수

 

+ Recent posts