글 목록 1037

Java - 36.자바I/O개요

자바 I/O란? 자바 I/O는 자바프로그램의 입력과 출력기능을 이르는 말이다. 모든 응용프로그램은 컴퓨터 메인 메모리에 올려져 CPU(Center Processing Unit, 중앙처리장치와)와의 커뮤니케이션을 통해 프로그램의 명령이 실행된다. 이때 응용프로그램이 CPU에 의해 실행되기 위해 필요한 데이터를 입력장치에서 메인 메모리로 가져오는 작업을 입력이라고 하고 반대로 메인 메모리에서 CPU에서 처리한 결과가 출력장치로 나가는 작업을 출력(Output)이라고 한다. 스트림이란? 스트림의 사전적 의미는 '흐르다'인데 컴퓨터 시스템 관점에서는 입,출력 시에 이동하는 데이터의 흐름을 의미한다. 다시말해, 메인 메모리에 적재되어 실행중인 응요프로그램과 입력 또는 출력으로 연결된 장치 사이에 이동하는 데이터의..

Java - 35.예외 처리 개요

자바는 오류를 크게 문법적 오류와 예외로 구분한다. 1.문법적오류 우리가 만드는 자바 프로그램은 자바 문법에 입각해 작성된다. 그러나 의도적이든 실수이든간에 자바 문법을 지키지 않고 코드를 작성한다면 이는 컴파일러에 의해 오류가 체크되어 프로그램의 실행 자체가 되지 않는다. 이러한 오류를 문법적 오류(syntax error)또는 컴파일 오류(compile error)라고 한다. 이렇게 컴파일러에 의해 오류가 체크되면 해당 프로그램은 실행 자체가 되지 않는다. 문법적 오류가 발생하는 경우는 자바의 문법 체계를 위반했을 경우나 선언되지 않은 클래스, 메서드, 변수 또는 필드등을 접근(호출)했을 경우가 있다. 문법적 실행오류 문법적 실행오류가 발생하는 프로그램은 실행조차 되지 않아 답답하지만 컴파일러가 오류 ..

네트워크 - Looping과 그에대한 대처

루핑이란? 프레임이 네트워크 상에서 무한정으로 주고받으며 반복적으로 돌기 때문에 이더넷 특성상 네트워크가 조용해지기를 기다리면서 데이터를 전송하지 못하는 현상입니다. 이와같은 루핑은 네트워크를 치명적인 상태에 빠뜨릴 수 있습니다. 그렇다면 루핑을 막을 방법은 없을가요? 예 있습니다. 바로 스패닝 트리 알고리즘(Spanning Tree Algorithm)이라는 것입니다. 기술적인 내용에 들어가면 굉장히 복잡하고 여러 가지 설명드려야 할 것이 많겠지만 여기선 간단하게 알아보도록 합시다. 스패닝 트리 알고리즘이란? 우선 루핑에 대해서 다시 정리해 보겠습니다. 루핑이 발생하는 원인은 라우터와 스위치에서 배운 Flooding때문에 일어나는 것입니다. 자신의 프레임에 주소가 없는 경우 모든 주소에 데이터를 보내고 ..

네트워크 - 브리지와 스위치의 차이점

브리지와 스위치의 차이점! 바로 이름이 다르다는 것 입니다. 농담 ^^; 1.가격과 인기도! 물론 스위치가 가격이 더 비싸고 인기 있습니다! 2.처리속도! 스위치는 처리하는 방식이 하드웨어로 이루어지기 때문에 소프트웨어적 프레임을 처리하는 브릿지에 비해서 훨씬 빠릅니다. 예를 들어 생각하면 전기가 슈욱 지나가는거랑 하나 둘 따지는거랑 속도차이라고 생각하면 쉽겠죠? 3.속도의 설정! 브리지는 포트들의 같은 속도를 지원하는 한편 스위치는 10메가 포트와 100메가 포트가 한 장비에 같이 있을때도 서로 다른 속도를 연결해 줄 수 있는 기능을 제공합니다. 4.포트의 수! 스위치는 브리지에 비해 제공하는 포트 수가 훨씬 많습니다. 5.처리 방식의 차이! 스위치의 경우는 cut-througn, 또는 store-an..

이론 2011.08.04

java - 34.SWING

AWT? SWING? AWT와 SWING은 무슨차이냐는 궁금점이 생길 것이다. 간단히 말하면 SWING은 AWT의 발전형이다. Java 에서는 GUI를 지원하기위해 AWT 관련 객체(이벤트 소스, 이벤트 리스너 등)은 거의 비슷하다. 하지만 새로 추가된 GUI컴포넌트들과 이벤트와 이벤트 리스너도 추가되었다. 대표적인 예로 폼의 형태이다. 프레임 관점에서 룩앤필을 보여준 것으로 프래임외에 다른 GUI 컴포넌트들로 운영체제별로 다른 모양을 나타낸다. 운영체제별로 컴포넌트들이 바뀌면 사용자 입장에선 분명 당혹스러울 것이다. 이렇듯 개발된 GUI프로그램은 같은 프로그램을 어떤 운영체제에서 실행하느냐에 따라 룩앤필이 달랐다. 이러한 단점을 위해서 SWING이 추가된 것이다. AWT같은 경우는 C언어를 조합하여 구..

Java- 33.더 쉬운 GUI프로그래밍 Visual Editor(부제:플러그인 설치)

*이설치법은 이클립스 버전 3.2 버전임을 알아두자. 각 버전별로 설치법이다르다ㅜㅜ 예제 GridLayoutDemo 프로젝트는 GUI프로그램을 구현하기 위해 각종 GUI컴포넌트를 코드 지향적 프로그램에 배치했다. 그러나 이러한 방법은 초기 개발 시에 디자인 작업에 상당한 시간을 낭비할 뿐만 아니라 요구사항에 즉각적으로 대응하기 어렵다 따라서 우리는 이들 중 Visual Editor 플러그인을 사용하여 드래그앤 드롭으로 컴포넌트를 배치할 수 있다. Visual Editor 플러그인 설치하기 Eclipse 버전 별로 VE를 설치하는 방법이 차이가 있다 ㅡ_ㅡ;; 뭐 그래도 목적은 같으니 아래의 과정을 참조하면서 하면 조금더 수월할 것이라 생각한다. -다운받기 EMF 다운로드 http://www.eclipse..

Java - 32.GridLayout

GridLayout이란? GridLayout은 컨테이너를 행,열로 나누어 세부영역으로 나눌 수 있다. GridLayout의 생성자의 매개인자로 주어진 2개의 정수 중 첫 번째는 행을 두번째는 열을 의미한다. GridLayout의 배치 왼쪽 상단부터 오른쪽 아래까지 순서대로 배치된다. 예제의 그림을 보면 0,0 -> 0,1 -> 1,0 -> 1,1 순서대로 배치된다. 예제) import java.awt.*; import java.awt.event.*; public class Gird extends Frame implements WindowListener{ Button btn1, btn2, btn3, btn4; public Gird(){ this.Frame(); this.Components(); this.E..

Java - 31.BorderLayout

BorderLayout은 컨테이너를 동, 서, 남, 북, 중앙 등의 세부영역으로 구분하여 해당 영역에 컴포넌트를 위치시키는 배치 방법이다. BorderLayout으로 지정된 컴테이너에 GUI 컴포넌트를 배치하고자 할 때 add(Component,String)메서드를 사용하는데 이때 두번째 매개인자는 동, 서, 남, 북, 중앙 등을 위한 상수값을 사용해야 한다. BorderLayout의 위치 상수 동 : BorderLayout.EAST 서: BorderLayout.WEST 남 : BorderLayout.SOUTH 북 : BorderLayout.NORTH 중앙 : BorderLayout.Center 예제) import java.awt.*; import java.awt.event.*; public class ..

네트워크-브리지

브리지란? 브릿지는 허브로 연결된 PC들이 통신을 하다보면 다른 통신을 하는 PC를 제외한 PC는 통신을 하지 못하게 되기 때문에 콜리전 도메인(PC충돌영역)을 나누어 지기 위한 것이 바로 브릿지 입니다. 이전에 적어놓은 스위치와도 비슷한 역활을 하는것이 브릿지 입니다. 브릿지의 기능 1.콜리전 도메인의 다리 브릿지는 허브로 만들어지 콜리전 도메인 사이를 반으로 나누고 중간에 다리를 놓는 것입니다. 그렇게 되면다른 콜리전 도메인 끼리도 통신이 가능하게 되지요, 2.콜리전 도메인의 검문소 A라는 콜리전 도메인에서 B라는 콜리전 도메인에 통신을 원할 경우 브릿지에 저장되어있는 맥 어드래스를 비교한후 통신이 이루어지게 됩니다. 세부적인 브리지/ 스위치의 기능 Learning 들어온 포트를 저장한다. Flood..

Java - 30.AWT기반 이벤트 핸들링

AWT 이밴트 핸들링 이란? 이밴트 핸들링은 GUI프로그램에서 발생한 이벤트를 처리하는과정 전체를 지칭하는 말이다. Java를 포함하여 모든 이벤트 핸들링은 다음 단계별 점검 사항을 결정해야 한다. Java SE에서는 AWT 기반 이벤트 핸들링과 SWING 기반 이벤트 핸들링이 존재한다. 여기에서는 AWT기반 이벤트 기반 핸들링에 대해 알아보자. 이벤트 소스에서 발생한 이벤트는 이벤트 리스너로 보내져 어떤 이벤트인지 분석 한뒤 해당 이벤트를 호출한다. 또한 이벤트 핸들러에서 발생한 이벤트 처리를 위해 이벤트 핸들러의 매개인자로 이벤트가 넘겨짐도 확인할 수 있다. ※모든 이벤트소스가 모든 이벤트를 핸들링할 수 있는 것은 아니다. 따라서 컴포넌트 별로 처리할 수 있는 이벤트를 파악하고 있어야 한다. a단계 ..