1. 프로그래밍 기초
- 프로그램 : 컴퓨터에게 특정 문제를 해결하기 위해 처리 방법과 순서를 기술해 놓은 작업지시서(명령문의 집합).
- 프로그래밍 : 프로그램의 목적에 따라 기능별 순서와 처리 방법을 설계하고 구현하는 것
- 프로그래머 : 프로그램을 설계하고 코딩하는 사람(프로그래밍).
- 프로그래밍 언어
- 사람의 언어와 기계의 언어의 중간 다리 역할을 하는 언어가 프로그래밍 언어.
- 프로그래밍 언어는 고급 언어와 저급 언어로 구분. (고급 언어일수록 사람이 이해하기 쉽고, 컴파일러라는 번역 도구가 필요)
- 프로그래밍 언어로 작성된 내용을 소스(Source)라고 부르고, 이 소스는 컴파일러(Compiler)라는 소프트웨어를 통해서 기계어로 변환된 후 컴퓨터에서 실행할 수 있게 된다.
2. 자바(JAVA)
1. 자바란?
- 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다.
- 1996년 1월에 공식 발표한 객체지향 프로그래밍 언어
- 1995년 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 연구원들에 의해 개발한 개발된 객체지향 프로그래밍 언어로 전 세계적으로 다양한 분야에서 사용되고 있다.
- 2010년 썬 마이크로시스템즈가 오라클과 인수 합병되면서 자바는 오라클로 넘어가게 되었다.
2. 자바의 역사
- 1991년에 썬의 엔지니어들에 의해서 고안된 오크(Oak)라는 언어에서부터 시작되었다.
- 제임스 고슬링과 아서 밴 호프와 같은 썬의 엔지니어들의 목표 달성을 위해 C++를 확장하고 사용하려 했으나, 부족하여 C++의 장점을 도입하고 단점을 보안하는 새로운 언어를 개발하기에 이르렀다.
- Oak는 소형기기에 사용될 목적이었으나 여러 종류의 운영체제를 사용하는 컴퓨터들이 통신하는 인터넷이 등장하자 운영체제에 독립적인 점이 이에 적합하다고 판단하여 인터넷에 적합하도록 개발 방향을 바꾸면서 이름을 Java로 변경하였다.
3. 자바의 특징
- 운영체제가 독립적이다 : 자바 언어로 개발된 프로그램은 소스를 수정하지 않아도, 자바 실행 환경(JRE, Java Runtime Environment)이 설치 되어 있는 모든 운영체제에서는 실행이 가능하다.
- 객체지향언어(OOP)이다 : 객체 지향 프로그래밍은 프로그램을 개발하는 기법 중 하나로 객체들을 만들고 이러한 객체들을 연결해서 전체 프로그램을 완성하는 기법이며, 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라는 평가를 받고 있다.
- 비교적 배우기 쉽다 : C++과 스몰톡이라는 객체지향언어의 장점을 취하면서 복잡하고 불필요한 부분은 제거, 간결하고 이해하기 쉬운 코드를 작성할 수 있도록 하였다.
- 자동 메모리 관리(Garbage Collection) : 자바로 작성된 프로그램을 실행되면, Garbage Collector(GC)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다.
- 네트워크와 분산처리를 지원한다 : 다양한 종류의 네트워크와 관련된 API(Application Programing Interface)를 제공한다.
- 멀티쓰레드를 지원한다 : 시스템과 관계없이 구현가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다.
- 동적 로딩(Dynamic Loading)을 지원한다 : 프로그램 실행 시 관련된 모든 파일을 메모리에 올리지(로딩) 않고 필요한 시점에 필요한 파일을 로딩한다.
4. JVM(Java Virtual Machine)
- '자바를 실행하기 위한 가상 기계'
- Windows, Linux, MacOS와 같은 운영체제(OS)에서는 자바 프로그램을 직접 실행할 수 없으며 JVM을 통해 자바 프로그램을 실행할 수 있다.
- JVM은 JDK(Java Development Kit) 또는 JRE(Java Runtime Environment)를 설치하면 자동으로 설치되는데 JDK와 JRE는 운영체제에 별로 제공되고 운영체제에 맞게 설치해야 한다.
- JVM이 설치된 환경에서 자바 프로그램을 실행하기 때문에 개발자는 운영체제와 상관없이 자바 프로그램을 개발할 수 있다. ("Write Once, Run Anywhere", 한 번 작성하면 어디서든 실행된다.)
3. 자바 개발 환경 구축
1. 자바 설치
- JDK(Java Development Kit)
- 자바 프로그램을 개발하기 위해서는 JDK(Java Development Kit)를 설치해야 한다.
- JDK는 프로그램 개발에 필요한 JRE(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함되어 있다.
- JRE(Java Runtime Environment)
- 자바 프로그램 실행에 필요한 JVM, 라이브러리 API만 포함되어 있다.
- 자바 프로그램을 개발하는 것이 아닌 프로그램을 실행만 한다면 JRE만 설치하면 된다.
- JDK의 종류
- Java SE(Standard Edition)
- Java EE(Enterprise Edition)
- Java ME(Micro Edition)
- JDK 설치
- 오라클 JDK의 경우 유료이기 때문에 Temurin OpenJDK를 설치한다.
- https://adoptium.net/ 접속 후 Temurin 11 (LTS)를 다운로드 및 설치를 한다.
- 설치가 완료되면 "명령 프로롬트" 실행 후 아래의 명령어를 입력하여 JDK가 정상적으로 설치되었는지 확인한다.
- `> java -version openjdk version "11.0.14.1" 2022-02-08 OpenJDK Runtime Environment Temurin-11.0.14.1+1 (build 11.0.14.1+1) OpenJDK 64-Bit Server VM Temurin-11.0.14.1+1 (build 11.0.14.1+1, mixed mode)
2. IDE 설치
- IDE(Integrated Development Environment)
- IDE는 프로그램 개발에 필요한 기능을 통합해서 제공해 주는 프로그램이다.
- IDE는 소스 코드 편집기, 빌드 자동화, 코드 실행, 디버거 등의 기능을 제공해 준다.
- Eclipse IDE 설치
- https://www.eclipse.org/downloads/ 접속 후 최신 버전의 Eclipse IDE를 다운로드한다.
- 다운로드된 Installer 실행 후 Eclipse IDE for Enterprise Java Developers로 설치한다.
- JDK 설정
- 상단 메뉴 -> Window -> Preferences에서 Compiler 검색 후 Compiler compliance level을 11로 변경한다.
- 상단 메뉴 -> Window -> Preferences에서 Installed JREs 검색 후 앞에서 설치 한 JDK의 경로에서 JRE를 찾아서 지정한다.
4. JAVA의 동작 원리
-
- 상단 메뉴 -> Window -> Preferences에서 Encoding 검색 후 검색된 항목의 Encoding을 UTF-8로 변경한다.
- compile : 확장자가 java인 파일을 이해할 수 있도록 전환하는 작업의 단계Encoding 설정
5. 소스파일의 구성
1. package 문
- 폴더를 만들어서 파일을 저장하고 관리하듯이 패키지를 만들어 클래스를 저장하고 관리한다.
- 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다.
- 모든 클래스는 하나의 패키지에 속하며, 패키지가 선언되지 않는 클래스는 자동적으로 이름 없는 패키지(default)에 속하게 된다.
- 숫자로 시작하면 안된다.
2. import 문
- 클래스를 사용하기 위해 선언하는 구문으로 import 문을 사용하면 클래스를 사용할 때 패키지 명을 생략할 수 있다.
- java.lang 패키지의 클래스는 import 하지 않고 사용 가능하다.
3. 클래스
- 자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며 서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성한다.
- 클래스들이 모여 하나의 Java 프로그램을 구성한다.
// 주석을 제와한 모든 코드는 블록 {} 내에 작성한다. public class 클래스명 { ... }
4. 메소드
- 클래스의 기능(동작)에 해당하는 구현 부분이다.
- 해당 메소드 호출 시 메소드의 블럭({})에 해당하는 부분을 실행한다.
- public class 클래스명 { public void 메소드명() { // 실행될 문장들을 적는다. } }
public class 클래스명 {
public void 메소드명() {
// 실행될 문장들을 적는다.
}
}
5. 실행 메소드 (main 메소드)
- 자바 프로그램 실행 시 java.exe에 의해 가장 먼저 호출된다.
- 모든 클래스가 main 메소드를 가지고 있어야 하는 것은 아니지만 하나의 Java 애플리케이션에는 main 메소드를 포함한 클래스가 반드시 하나는 있어야 한다.
// main 메소드 선언부
public static void main(String[] args) {
// 실행될 문장들을 적는다.
}
6. 기본 문법
1. 주석(Comment)
- 코드에 대한 설명이나 그 외 다른 정보를 넣을 때 사용하는 것으로 컴파일 시 컴파일러가 주석 부분은 건너뛴다.
/* 여러 줄로
주석을 작성할 수 있다.
*/
// 한 줄로 주석을 작성할 수 있다.
2. 출력 메소드
- 변수, 문자, 숫자 논리 값을 모니터(콘솔)에 출력해 주는 메소드이다.
// () 안의 값을 모니터에 출력해 주는 메소드이다.
System.out.print("안녕하세요.");
System.out.print(12345);
System.out.print(true);
// print 메소드와 동일하게 출력은 해주지만 출력 후 자동으로 줄바꿈을 해주는 메소드이다.
System.out.println("안녕하세요.");
System.out.println(12345);
System.out.println(true);
- 숫자 출력
System.out.println(123); // 정수값 출력
System.out.println(3.14);// 실수값 출력
- 연산 결과 출력
System.out.println(125 + 40);
System.out.println(1.23 - 0.12); // 실수값 연산은 불완전해서 오차가 생길 수 있다.
System.out.printf("%.2f\n",1.23 - 0.12); //
System.out.println(Math.ceil(1.23 - 0.12)); // 계산 후 올림
System.out.println(Math.floor(1.23 - 0.12)); // 계산 후 내림
- 문자 출력
// 문자 출력
System.out.println('a'); // 문자 하나 입력할 때, ''(작은 따옴표) 사용
System.out.println('b');
// 문자와 숫자를 연산하면 문자의 코드값과 연산 결과를 출력한다.
// 각 문자마다 컴퓨터가 인식하는 고유한 숫자값을 가지고 있다. (b:98)
System.out.println('b' + 1);
// System.out.println('b' + '1');
// System.out.println((int) '1');
System.out.println((char)('b' + 1)); // 형변환
// 문자열 출력
System.out.println("안녕하세요.");
System.out.println("반갑습니다.");
// 문자열과 그 외의 값들의 덧셈연산
System.out.println("안녕하세요" + "반갑습니다.");
System.out.println("반갑습니다." + 123);
System.out.println((40 + 125) + "반갑습니다.");
'Java' 카테고리의 다른 글
연산자(Operator) - 연산자(operator) & 단항 연산자 (0) | 2022.08.17 |
---|---|
변수(Variable) - 형변환 (0) | 2022.08.16 |
변수(Variable) - 변수의 타입 : printf() & Scanner (0) | 2022.08.16 |
변수(Variable) - 변수와 상수 (0) | 2022.08.15 |
변수(Variable) - 변수의 타입 : 기본형 & 상수와 리터럴 (0) | 2022.08.15 |