본문 바로가기

BackEnd/구 생활코딩 자바

자바 프로그램의 동작 원리 자바로 프로그램을 만들기 위해서는 아래와 같은 과정이 필요하다. 1) 코드 작성 code = source 코드를 작성하는것은 프로그래밍하는것 즉 건설로 치면 설계도를 작성하는것이다. 2) 컴퓨터가 실행할 수 있는 형태로 코드를 컴파일 3) 컴파일된 프로그램을 실행 1. 코드 우선 코드에 대해서 알아보자. 코드(code) 혹은 소스(source)는 프로그램이 어떤 모습이고, 어떻게 동작해야 하는가를 표현한 일종의 설계도라고 할 수 있다. 그런데 컴퓨터 프로그래밍에서의 설계도는 설계도 이상의 의미가 있다. 설계도를 컴퓨터에게 제출하는 순간 컴퓨터는 그 설계도에서 요구하는 프로그램을 마법처럼 만들어주기 때문이다. 그래서 프로그래밍에서의 설계도는 그 프로그램 자체라고도 할 수 있다. 코드는 자바의 문법에 맞게 ..
JDK,JRE,JVM,JAVA SE,ME,EE 1. Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지등을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따라서 Java가 만들어지게 된다. Java SE 8은 버전 8에 대한 명세서이다. 자바는 계속 진화하고 있는 기술이다. 이 명세서는 JCP(Java Community Process, http://jcp.org)라는 조직을 통해서 만들어진다. 2. JDK(Java Development Kit) JDK는 자바를 개발하는데 필요한 필수적인 여러가지 도..
추상화-abstract 추상화: abstract 복잡한 현실에서 관심사, 필요한 관점만 추출해서 간단하게 단순화 시킨것을 추상화라 한다. 즉, 해결해야할문제, 반영해야할 복잡한 현실을 소프트웨어적으로 단순화시켜서 만드는 행위를 추상화라고한다. 예를들어, 지하철 노선도가 디자인의 추상화라고 한다면 프로그램을 만든다는 것은 소프트웨어 의 추상화라고 할 수 있다 객체 지향 프로그래밍은 좀 더 현실을 잘 반영하기 위한 노력의 산물이다. 이것은 단순히 객체 지 향의 문법을 이용해서 객체를 만든다고 달성되는 것이 아니다. 고도의 추상화 능력이 필요하다. 좋은 설계는 문법을 배우는 것보다 훨씬 어려운 일이다.
객체지향에 대해 1. 절차 지향 프로그래밍 : procedural programming method를 다른 언어에서는 function, procedural이라고 한다. 자바에서는 절차 지향 프로그래밍을 method programming 으로 불리면서 메소드를 이용해서 프로그램을 정리정돈하는 기법을 말한다. 즉, 메소드를 이용해서 작은 부품을 만들고 이것을 결합해서 더 큰 프로그램을 만들어가는 테크닉이 procedural programming이다. 많은 컴퓨터언어가 이 패러다임을 따른다. c언어등. 그런데 여기서 더 나아가 객체지향 프로그래밍이 나왔다. 2. 객체지향 프로그래밍 : Object-Oriented Programming 2-1) 객체란? 서로 연관된 메소드와 변수를 모아서 그룹핑하고 이름을 붙여서 정리정돈하고 ..
런타임과 컴파일 1. 컴파일(Compile) 컴파일이란 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말한다. (목적파일이 생성됨) 즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그 램을 가르켜 컴파일러(Compiler- javac.exe)라 한다. 자바의 경우, 자바가상머신(JVM)에서 실행가능한 바이트코드 형태의 클래스파일이 생성이 된다. .java 파일을 .class파일로 만듬 2. 런타임 어떤 프로그램이 실행되는 동안의 time이다. 3. 런타임 에러 어떤 프로그램이 실행되는 동안 발생하는 에러이다. 4. compile time 고급언어(프로그래밍 언어)를 기계어로 변경하는 과정이다. 5. 컴파일 에러 고급언어(프로그래밍 언어)를 기계어로 변경하는 과정에서 발생하..
클래스패스란? 클래스패스란(Class Path)란? 클래스패스란 말 그대로 클래스를 찾기위한 경로이다. 자바에서 클래스패스의 의미도 똑같다. 즉, JVM이 프로그램을 실행할 때, 클래스파일을 찾는 데 기준이 되는 파일 경로를 말하는 것이다. 소스 코드(.java로 끝나는 파일)를 컴파일하면 소스 코드 가 “바이트 코드”(바이너리 형태의 .class 파일)로 변환된다. java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾 을 수 있어야 한다. 이때 .class 파일을 찾을 때 classpath에 지정된 경로를 사용한다. classpath는 .class 파일이 포함된 디렉토리와 파일을 콜론으로 구분한 목록이다. java runtime은 이 classpath..
프로세스(process)와 스레드(thread) 1. 프로세스(process)란?프로세스(process)란 간단히 말해서 ‘실행 중인 프로그램(program)’이다. 프로그램을 실 행하면 0S로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되 어 있다.2. 스레드(thread)란?스레드(thread)란 프로세스(process) 내에서 자원을 이용해서 실제로 작업을 수행하는 주체를 의미 한다. 즉, 하나의 프로세스 내부에서 독립적으로 실행되는 하나의 작업 단위를 말한다. 쓰레드를 프로세스라는 작업공간(공장)에서 작업을 처리하는 일꾼으로 생각하면 이해하기 쉬..
필터 스트림의 이해와 활용 1. 필터 스트림이란? 필터 스트림이란 바이트단위로 읽어들인 데이터를 다른 형으로 바꾸어주는 것을 말한다. data.bin파일에서 데이터를 읽어 들이기 위해 인풋스트림을 만들었는데, 이 인풋스트림 은 바이트단위 또는 바이트 배열단위로 데이터를 읽어들인다. 그래서 data.bin안에 있는 4바이 트 int형 데이터를 읽어 들이면 int형으로 읽어들이는게 아니라 바이트로 쪼개서 읽어 들인다. 그렇기 때문에 이 바이트단위의 데이터를 다시 int형으로 조합을 해줘야 하는것이다. 이 역할을 하는것이 바로 필터 스트림이다. 그리고 이 필터 스트림 또한 입력스트림과 출력스트림 2가지가 있다. 읽어 들일때 변환해서 읽는것과 , 출력할때도 변환해서 출력을 하는것이다. 2. 기본 자료형 변환 데이터 입출력 필터 스트림 1..