
프로그램(Program)
: 컴퓨터가 인식할 수 있는 명령어의 나열(집합)
프로그래밍(Programming)
: 프로그램을 작성하는 과정(코딩)
프로그래머(Programmer)
: 프로그램을 작성하는 사람
프로그래밍 언어
: 프로그램을 작성하기 위한 언어 체계, 사람이 컴퓨터와 소통하게 하는 요소
TIOBE Index (https://www.tiobe.com/tiobe-index/)
: 프로그래밍 언어의 인기도를 나타내는 지표
Google, Yahoo, Youtube, Wikipedia 등의 검색엔진을 통해 검색되어지는 결과 수로 순위를 매김
PYPL(http://pypl.github.io/PYPL.html)
: Google trends 통계 데이터를 기반으로 특정 프로그래밍 언어 튜토리얼이 검색된 수로 순위를 매김
💧인도네시아 자바 섬에서 만들었는데 그 사람이 커피를 좋아해서 이름과 모양을 넣음
- 운영체제(OS)에 독립적
→ (OS 관계없이 동일 코드로 동작. 이식성이 높다고도 표현함.)- 객체 지향 프로그래밍(OOP) 언어
- 사용하기 쉬운 언어
능률적이고 명확한 코드 작성 가능
다른 언어의 단점 보완(포인터, 메모리 관리)- 자동 메모리 관리(Garbage Collection)
- 동적 로딩 지원
→ 필요 할 때마다 불러오는 형식- 멀티쓰레드 지원
→ 한번에 여러가지 일처리가 가능하다- 네트워크와 분산환경 지원
Java를 실행하기 위한 가상 기계로 OS(운영체제)에 관계없이 독립적으로 동작.
→ C : OS가 코드를 직접 해석하기 때문에 C언어는 OS 따라 코드가 다른 부분이 존재.
→ Java : OS에 맞는 JVM을 설치하여 OS 종류 관계없이 JVM이라는 가상머신이 Java 코드를 동일하게 해석.
JVM이 Java 코드를 해석하는 순서
개발자가 작성한 Java 코드를 Compiler(컴파일러)가 byte code(.class 파일)로 번역
→ JVM에 전달
→ JVM이 Interpreter(인터프리터) 방식으로 한 줄 씩 해석함
💧JVM만 있다고 사용할 순 없다
JRE = JVM + 라이브러리 : 말 그대로 실행만 가능한 것
JDK = 개발환경
Java SE : Java Standard Edition
Java EE : Java Enterprise Edition
Java ME : Java Micro Edition
이클립스(Eclipse) 설치
💧개인이 사용할 땐 문제가 안 되는데, 단체로 사용하면 유료가 된다
21.01 버전까지 있는데, 11버전으로 배울 예정
실무에선 7, 8을 제일 많이 사용한다
💧amazon corretto 다운 후에도 버전 변경이 안된다면 환경변수편집에서 위로 올리면 된다




IDE(Integrated Development Environment, 통합 개발 환경)
- 애플리케이션 개발에 사용되는 공통된 개발자 도구를 하나의 GUI에 결합한 소프트웨어
- 소스 코드 편집기(작성 중 오류 검사, 자동완성, 구문 강조), 로컬 빌드 자동화(자동 컴파일, 패키징, 테스트), 디버거(버그 위치 표시) 를 내장하고 있음.
- Eclipse, Visual Studio Code, IntelliJ 등 여러 IDE가 존재함.
Eclipse다운로드 페이지(https://www.eclipse.org/downloads/)




클래스 (Class)
객체를 만들기 위한 일종의 설계도
자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며, 서로 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성할 수 있다.
→ 클래스들이 모여 하나의 Java 애플리케이션을 구성한다.
public class 클래스명{
/*
* 주석을 제외한 모든 코드는 블록 클래스 { } 내에 작성
*/
}
주석 (Comment)
코드에 대한 설명이나 그외 다른 정보를 넣을 때 사용하는 것
컴파일 시 컴파일러가 주석 부분은 건너뛴다.
- /* */ : 범위 주석, /*와 */ 사이 내용은 주석으로 간주
- // : 한 줄 주석, // 뒤의 내용은 주석으로 간주
메인 메서드 (Main Method)
public static void main(String[] args) 고정된 형태의 메서드 선언부로 Java 애플리케이션을 실행하는 데 필요한 메서드 (프로그램 실행 시 java.exe에 의해 호출됨)
모든 클래스가 main 메서드를 가지고 있어야 하는 것은 아니지만 하나의 Java 애플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나 이상 존재해야 한다!
public class 클래스명{
public static void main(String[] args){ // 메인 메서드의 선언부
// 실행될 코드를 작성
}
}