본문 바로가기

04번. IT 힌트얻기/▶ 이론

레지스터와 메모리의 차이 메모리를 얘기할 때 가장 흔히 접하는 PC용 RAM을 떠올릴 것이다. 이러한 RAM은 일반적으로 컴퓨터의 주기억장치로 사용하며 인스트럭션을 로드하여 저장하는 장치로 주로 사용한다. 도스 시절을 경험해 본 이들은 640킬로바이트의 메모리 제약으로 인해 용량이 큰 프로그램을 실행하기 위해 메모리 상주 프로그램을 최대한 줄이는 등 메모리 튜닝을 했던 기억이 있을 것이다. 우리가 흔히 RAM이라고 하는 이 메모리는 Dynamic RAM이라고 하는 DRAM으로 이루어져 있으며, DRAM과 대조되는 특성을 지니고 있는 소자가 바로 플립플롭으로 구성된 Static RAM, 줄여서 SRAM이다. DRAM은 MOS 트랜지스터 안에 있는 콘덴서에 전하의 형태로 저장이 되며 이 전하는 시간이 흐름에 따라 방전되는 특성이 있.. 더보기
WAS와 WS ▶ WAS(Web Application Server) 1) Web 서버 Web서버란 HTTP 프로코톨을 기반으로 하여, Web 클라이언트(브라우져)로 부터의 요청을 서비스하는 기능을 담당하는 프로그램. (일반적으로 Apache를 많이 사용함) 2) Web Application 서버 여러 Web 클라이언트(브라우져)의 요구를 Web 서버 혼자 감당하기에는 힘들기 때문에, 구조적으로 Web 서버의 기능을 분리하기 위해 만들어진 것이 Web Application Server(WAS)입니다. 일반적으로 Tomcat, Weblogic, WebShpare등을 많이 사용합니다. WAS는 웹이 탄생한 이래, 주로 DB조회나 일반적인 비즈니스 로직에 대한 처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨.. 더보기
[Basic-1] 3. 인터프리터와 컴파일러 ■ 인터프리터 (Interpreter) 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다. 인터프리터는 다음의 과정 가운데 적어도 한 가지 기능을 가진 프로그램이다. 1. 소스 코드를 직접 실행한다. 2. 소스 코드를 효율적인 다른 중간 코드로 변환하고, 변환한 것을 바로 실행한다. 3. 인터프리터 시스템의 일부인 컴파일러가 만든, 미리 컴파일된 저장 코드의 실행을 호출한다. 인터프리터는 고급언어로 작성된 원시코드 명령어들을 한 번에 한 줄씩 읽어들여서 실행하는 프로그램이다. 고급언어로 작성된 프로그램들을 실행하는 데에는 두 가지 방법이 있다. 가장 일반적인 방법은 프로그램을 컴파일하는 것이고, 다른 하나는 프로그램을 인터.. 더보기
[Basic 1] 1. 프로그래밍의 역사 (2) ( 출처 : 이명헌 경영스쿨 http://www.emh.co.kr/xhtml/history_of_programming_languages.html ) 로 레벨 코드(Low Level Code)컴퓨터는 아주 단순한 지시사항(이하,instruction)을 매우 빠르게 수행하는 기계입니다. 인스트럭션은 0과 1로 이루어져 있습니다. 이런 형태의 인스트럭션을 기계어(machine code)라 합니다. 그런 코드는 기계만 이해할 수 있기 때문입니다. 1과 0은 컴퓨터 내부의 전기 신호 중 하나로, 켜지면 1, 꺼지면 0입니다. 이 신호들은 0 또는 1 가운데 하나의 값을 갖는다고 해서 '이진 (binary)'이라 합니다. 그리고 그 값을 '비트(bit)'라 합니다. bit는 'binary digit(이진수)'의 약.. 더보기
[Basic-1] 2. 어셈블리어 ■ 어셈블리어 ( assembly language )의 의미와 유래 초창기의 컴퓨터는 진공관과 전선의 배선을 통해서 만들어진 것이라 프로그램도 배선을 변경시켜야 가능했습니다. 수 천 개의 전선을 바꾸어가면서 프로그램을 하는 일은 사실상 불가능에 가까운 매우 힘들고 지루한 일입니다. 그러나 폰노이만 방식의 컴퓨터 이후 프로그래머는 메모리의 값을 이용한 프로그램이 가능해졌고, 프로그램 속도와 수정 속도가 빨라졌습니다. 그러나 여전히 0과 1의 이진수로 프로그램을 하는 것은 마찬가지였기 때문에 프로그램 작업은 여전히 힘들었습니다. 사람들은 이진수의 패턴을 이용한 프로그램을 좀더 편하게 하기 위하여 새로운 형식의 프로그램 방법을 도입합니다. 그것은 몇 가지 비트 패턴을 하나의 명령어로 대신할 수 있는 비트 패턴.. 더보기
[Basic-1] 1.프로그래밍의 역사 (1) 기계어와 어셈블리 언어 기계어: 1000001111000000000001001 어셈블리어: ADD EAX, 9 위의 두 명령어는 같은 기능을 수행한다. 이것만 보더라도 프로그래머에게 어셈블리어는 획기적인 발명이었을 것이다. 하지만 어셈블리어 역시 쉽지 않은 언어이다. 어셈블리어: mov eax, [a] add eax, [b] mov [c],eax C언어: c = a + b;포 어셈블리어로 작성된 프로그램 소스코드는 수정하기 어렵고 잘못된 곳을 찾아내기도 어렵다. 물론 무엇을 하는 프로그램인지 파악하기도 어렵다. 그리고 결정적으로 어셈블리어 역시 하드웨어에 의해 결정되므로 마이크로 프로세서가 바뀌면 아무짝에도 쓸모 없게 되버린다. 고급 프로그래밍 언어의 등장 1950년대와 1960년대에는 프로그래머들 사이.. 더보기