본문 바로가기

04번. IT 힌트얻기

자바란 무엇인가 Java는 1990년대 전반에 Sun Microsystems사가 개발한 프로그램 언어의 하나이다. 원래는 디지털 가전 전용으로 개발된 컴팩트한 언어였는데, 인터넷의 보급에 따라 Java도 인터넷과 궁합이 좋은 언어로 발전한 것이 계기가 되어서 급속히 퍼져나갔다. ◆ 자바의 특징 1. 범용 프로그램이다. 2. 간단하다. 3. 객체 지향 언어이다. 4. 프로그램을 안전하게 실행할 수 있다. 5. 플랫폼에 의존하지 않는다. 6. 네트워크 관련 기능이 충실하다. ◆ Write Once, Run Anywhere !! Java 언어로 만들어진 프로그램은 특정의 OS나 CPU에 의존하는 일 없이 어떤 플랫폼에서라도 동작될 수 있도록 설계되었다. 통상 프로그램을 실행할 때에는, 최종적으로 각 플랫폼에 대응한 목적코드(.. 더보기
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조회나 일반적인 비즈니스 로직에 대한 처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨.. 더보기
J2SE, J2EE, J2ME 기본적인 Java의 개발/실행 환경으로 Java언어를 이용하여 어플리케이션(Application), 애플릿(Applet) 그리고 컴포넌트(Component) 등을 개발하고 실행할 수 있는 환경을 제공하는 플랫폼이다. 어떠한 Java 프로그램을 개발하더라도 J2SE 설치는 필수이며 SDK, RE, Plugin 기술등으로 구성된다. - J2SE의 SDK는 기존으 JDK와 동일한 기술로서 Java 프로그래밍의 개발환경이다. SDK에는 RE가 포함되어 있다. - J2SE의 RE는 Java 프로그램의 수행환경이다. - J2SE의 Plugin은 Web 브라우저의 동적 모듈 프로그램으로서 Java Applet 프로그램의 수.. 더보기
JVM 메모리 구조(메서드 영역, 힙, 호출스택) 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그중 3가지 주요영역(메소드 영역, 호출 스택, 힙)에 대해서 알아보자. 1. 메서드 영역 - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 클래스의 클래스 변수도 이 영역에 함께 생성된다. 2. 힙 - 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에서 생성된다. 즉, 인스턴스 변수들이 생성되는 공간이다. 3. 호출 스택 - 호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서.. 더보기
자바를 지배하는 핵심 원리 자바를 지배하는 핵심 원리 1. WAS, WS 동작원리 1) 구분 2) Request, Response Handling 3) WAS 구동 방식 4) Container의 개념과 동작방식 5) Enterprise 환경에서의 Java (1) J2EE 스펙 가. Container a. Servlet b. JSP 나. EJB 다. Service API a. XML b. JavaMail c. JNDI d. JMS e. JDBC f. JTA 2. Framework 동작원리 1) 트렌드 2) Framework 종류와 구분 (1) 기능 Framework (2) 지원 Framework (3) 통합 Framework 3. Garbage Collection 동작원리 1) heap 구조 2) minor, major gc 동작 .. 더보기
[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년대에는 프로그래머들 사이.. 더보기