객체지향 기법이란? 객체지향 기법은 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 기계적인 부품들을 조립하여 제품을 만들듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법입니다. 1. 객체 지향 기법은 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택되어 사용되고 있습니다. 2. 소프트웨어의 재사용 및 확장을 용이하게 함으로써 고품질의 소프트웨어를 빠르게 개발할 수 있으며 유지보수가 쉽습니다. 3. 복잡한 구조를 단계적, 계층적으로 표현하고, 멀티미디어 데이터 및 병렬 처리를 지원합니다. 4. 현실세계를 모형화 하여 사용자와 개발자가 쉽게 이해할 수 있습니다. 5. 객체지향 기법의 구성요소에는 객체(Object), 클래스(..
어셈블리어란? 어셈블리어란 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 기계어와 1:1로 대응시켜 코드화한 기호 언어입니다. 1. 어셈블리어로 작성한 원시 프로그램은 어셈블러를 통해 목적 프로그램(기계어)로 어셈블 하는 과정을 거쳐야 합니다. 2. 사용자가 프로그램을 쉽게 읽고 이해할 수 있습니다. 3. 프로그램에 기호화된 명령 및 주소를 사용합니다. 4. 어셈블리어의 기본 동작은 동일하지만 작성 CPU마다 사용되는 어셈블리어가 다를 수 있습니다. 5. 어셈블리어에서 사용되는 명령은 의사 명령과 실행 명령으로 구분할 수 있습니다. 컴파일 vs 어셈블 고급언어로 작성한 원시 프로그램을 컴파일러가 기계어로 번역하는 작업을 컴파일(Complie)한다고 하고 어셈블리어로 작성..
컴파일러와 인터프리터는 고급언어로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 번역하는 번역 프로그램이며, 프로그램 번역 방식에 따라 구분됩니다. ※ 원시프로그램 고급언어나 어셈블리어로 작성된 프로그램 컴파일러 1. 컴파일러는 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성합니다. 2. 번역 실행 과정을 거쳐야 하기 때문에 번역 과정이 번거롭고 번역 시간이 오래 걸리지만, 한번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠릅니다. 3. 컴파일러를 사용하는 언어에는 C언어 Java 등이있습니다. 인터프리터 1. 인터프리터는 고급 언어로 작성된 프로그램을 한 줄 단위로..
프로그래밍 언어란? 프로그래밍 언어는 컴퓨터를 이용하여 특정 문제를 해결하기 위한 프로그램을 작성하기 위해 사용되는 언어입니다. 프로그래밍 언어는 일반적으로 저급언어(기계어, 어셈블리어)와 고급 언어(컴파일러 언어) 로 분류할 수 있습니다. 저급 언어 저급언어(Low Level Language)는 기계어와 어셈블리어로 구분됩니다. 기계어 컴퓨터가 직접 이해할 수 있는 언어입니다. 0과 1의 2진수 형태로 표현되며 수행시간이 빠릅니다. CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기가 어렵습니다. 기종마다 기계어가 다르므로 언어의 호환성이 없습니다. 어셈블리어 기계어와 1:1로 대응되는 기호로 이루어진 언어로, 니모닉(Mnemonic) 언어 라고도 합니다. 하드웨어 제어에 주로..
최근 두가지 글을 포스팅했습니다. [Java] 자바로 폴더(디렉토리),파일 복사하기 [Java] 자바로 폴더(디렉토리) 삭제하기(하위파일, 폴더 포함) 위의 두가지 글이 바로 최근 포스팅했던 글들인데요. 자바로 폴더 및 파일을 이동시키는 방법은 위에 있는 두개의 포스팅을 합치면 구현하실 수 있습니다. 자바로 폴더(디렉토리),파일 이동시키기 1. 폴더 및 파일을 복사한다. 2. 복사했던 폴더 및 파일을 삭제시킨다. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Move { public static void main(String[..
자바 File클래스에는 폴더에있는 모든 파일정보를 가지고 오는 메서드인 listFiles()라는 메서드가 존재합니다. 이 listFiles() 메서드와 File클래스의 파일생성 메서드인 mkdir()를 활용하면 쉽게 파일을 복사하실 수 있습니다. 자바로 파일 복사하기 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Copy{ public static void main(String[] args) { File folder1 = new File("D:\\Eclipse\\Java\\복사할폴더\\복사될폴더"); File folder2 =..
자바 소스로 폴더나 파일을 삭제할수도 있습니다. File.delete()함수를 활용하면 쉽게 구현이 가능한데요. 파일은 쉽게 삭제가 가능한데 문제는 폴더입니다. 폴더는 하위에 파일이 하나라도 남아있으면 File.delete()함수가 작동하지 않습니다. 그러므로 폴더를 삭제하기전에 폴더안에있는 파일을 삭제해주는 작업을 선행하셔야합니다. 폴더안의 파일들을 제거한 뒤 대상 폴더제거 import java.io.File; public class Delete { public static void main(String[] args) { String path = "D:\\Eclipse\\Java\\새 폴더"; File folder = new File(path); try { while(folder.exists()) { ..
이번 포스팅에서는 해당 위치에 원하는 폴더가 없을 경우 새로이 폴더를 하나 만들어주는 방법에 대해 알아보겠습니다. File클래스안의 mkdir이라는 메서드를 활용하여 간단히 구현할 수 있습니다. 원하는 위치에 디렉토리가 없을경우 디렉토리 자동생성 import java.io.File; public class MkDir { public static void main(String[] args) { String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 File Folder = new File(path); // 해당 디렉토리가 없을경우 디렉토리를 생성합니다. if (!Folder.exists()) { try{ Folder.mkdir(); //폴더 생성합니다. System.out.p..
File 클래스 Java.io패키지에서 제공하는 File클래스는 파일 크기, 파일 속성, 파일 이름 등의 정보를 얻어내는 기능과 파일 생성 및 삭제 기능을 제공하고 있습니다. 그리고 디렉토리를 생성하고 디렉토리에 존재하는 파일 리스트를 얻어내는 기능도 있습니다. 이번 포스팅에서는 이 File클래스와 출력스트림을 활용하여 텍스트(txt)파일을 생성해보고 이것을 입력스트림을 활용하여 읽어오는 예제를 한번 만들어보도록 하겠습니다. 1. txt 파일로 데이터 저장하기 package InputOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; public class OutputST..
데이터 입출력 프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업이 빈번하게 일어납니다. 데이터는 사용자로부터 키보드, 마우스 등을 통해 입력될 수도 있고, 파일 또는 네트워크를 통해 입력될 수도 있습니다. 또 반대로 데이터를 사용자에게 모니터나 파일등으로 출력할수도 있습니다. 자바 입출력과 스트림(Stream) 자바에서 데이터는 스트림(Stream)을 통해 입출력 됩니다. 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말하는데 물이 높은 곳에서 낮은곳으로 흐르듯이 데이터는 출발지에서 나와 도착지로 흘러간다는 개념입니다. 프로그램이 출발지냐 또는 도착지냐에 따라서 스트림의 종류가 결정되는데, 프로그램이 데이터를 입력받을 때에는 입력(InputStream)이라고 부릅니다. 입력스트림의 출발지..
Error(에러)와 Exception(예외의 차이) 에러(Error)란 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는것을 말합니다. 이 경우 개발자는 대처할 방법이 극히 제한적입니다. 하지만 예외(Exception)은 다릅니다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말합니다. 예외가 발생하면 프로그램이 종료가 된다는것은 에러와 동일하지만 예외는 예외처리(Exception Handling)을 통해 프로그램을 종료 되지 않고 정상적으로 작동되게 만들어줄 수 있습니다. 자바에서 예외처리는 Try Catch문을 통해 해줄 수 있습니다. 여러가지 예외들 예외 구문 이유 ArithmeticEx..
Thread란? 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말하며, 세부적으로는 운영체제에 의해 관리되는 하나의 작업 혹은 태스크를 의미합니다. 스레드와 태스크(혹은 작업)은 바꾸어 사용해도 무관합니다. 1. JVM에 의해 하나의 프로세스가 발생하고 main( ) 안의 실행문 들이 하나의 스레드입니다. 2. main( ) 이외의 또 다른 스레드를 만들려면 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현합니다. 3. 다중 스레드 작업 시에는 각 스레드 끼리 정보를 주고받을 수 있어 처리 과정의 오류를 줄일 수 있습니다. 4. 프로세스끼리는 정보를 주고받을 수 없습니다. 멀티스레딩이란? 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법을 말합니다. 장점 1...
프로토콜란? 프로토콜이란 클라이언트와 서버간의 통신 규약입니다. 프로토콜의 분석방법 먼저 클라이언트가 보낸 메시지를 서버에서는 “##”를 구분자로 문자열을 토큰하여 문자를 분석하게 됩니다. 만약 이런 규약을 클라이언트가 위배하여 메시지의 순서를 바꾼다든지, 부적절 한 메시지를 보내게 되면 서버에서는 이를 파악하지 못하고 항상 동일한 처리를 하게 되기 때문에 다른 클라이언트에게 적절치 못한 메시지를 전송하게 됩니다. 프로토콜의 설계기법 프로토콜의 설계는 클라이언트와 서버간의 통신 규약을 만드는데 필요한 데이터가 무엇인지 를 설계하는 것입니다. 프로토콜의 설계 하기위해서는 클라이언트에서 필요한 기능이 무엇인지를 생각하고, 그 기능 에 대해 필요한 데이터가 어떤 것이 있는지를 분석할 수 있는 능력이 있어야 합..