1. 개발 언어
언어는 우리가 사람과 사람 간에 소통을 할 때 사용한다
이와 마찬가지로
프로그래밍 언어는 사람과 컴퓨터간에 소통을 하기 위해
사용되는 언어이다
초창기에는 어떻게 이 프로그래밍 언어가 발전되어 왔을까?
강사님의 말씀에 의하면
모든 것은 시스템으로 이루어져있다고 한다
그리고 여기서 시스템이란
input과 output으로 이루어진 것이며
동일한 input에 동일한 output이 나온다고 한다
결국 세상은 시스템으로 이루어져있으며
이 시스템은 인풋과 아웃풋으로 구성되어 있는 것이다
데이터 타입이란
입력/출력하는 데이터를 관리할 수 있도록
특정한 분류를 제공한 것
예) 숫자형/문자형 타입
메서드는 프로그램이 하는 행동을 정의한 것으로
쉽게 생가하면 어떠한 행동/제스처라고 생각하면 된다
예) 자다, 먹다 등 행동을 정의
[언어의 가벼운 역사]
A언어
입/출력 + 문맥
B언어
A언어 + 기계식 데이터 + 연산 기능 + 매소드
C언어
1970년대 발표
자료형 데이터 타입 추가, 자료구조가 추가
*자료구조는 자바에도 담겨있다
B언어 + 자료형 데이터 + 자료구조
JAVA 언어
1990년대 발표
C언어 + 공통 실행환경 + 클래스 + 객체
*언어의 구현방법은 각각 다르므로
기능 정도만 기억할 것
C언어의 많은 특징을 가지고 있기 때문에
C언어와 상당히 비슷한 언어이며
C언어의 모든 기능을 포함하였다
JAVA는 언제 어디서나 마시는 커피처럼
어디서나 동작 가능한 언어이다
쉽게 말해서
자바는 C언어 기능 + 공통 실행환경(JVM) 구성 +
클래스 + 객체를 가지고 있다
자바는 대표적인 객체 지향언어이다
*객체(Object) 지향
세상에 모든 객체들은
특징(이름, 나이, 주소, 혈액형 등)과 행동(사람으로서 걷고, 숨 쉬고, 공부하는 등의 행동)을 가지고 있다
이런 세상에 있는 객체들을 프로그래밍적으로 만든 것이
객체 지향이다
JAVA를 배워야 하는 이유
1. 가장 많이 사용하는 언어
공통 실행환경이 있기 때문에
어떤 기기의 운영체제에서든지
똑같은 환경에서 자바를 사용할 수 있다
(침대 위에 놓는 토퍼와 같은 역할)
특히 앱 개발에 적합하다
운영체제 위에서 실행되는 모든 프로그램
예) Mobile App, Server App,..
2. 세상과 닮아있는 개발 언어
객체 지향언어라 이해하기 쉽고 유지 보수도 쉽다
3. 안정성이 높고 보안성이 높다
자바는 컴파일러라는 변환기로 오류를 먼저 체크하여
보안상 안전하다
4. 대규모 앱 개발이 가능하다
네트워크 연결이나 데이터베이스 연결에서 자바가
중간과정을 원활하게 해 준다 (API)
5. 다양한 개발 도구와 라이브러리를 사용가능하다
개발자들이 자바를 계속 발전시키기 때문에
(서드파티)
자바에 종사하는 사람이 많아지고 다양한 라이브러리들이
있기 때문에 용이하게 사용가능하다
JVM
Java Virtual Machine이란
자바의 가상환경을 만들어주는
자바 가상 머신이다
어느 기기 위에 자바 프로그램을
실행시킬 수 있는 가상의 기기를 만들어준다
JVM 놀이터
PC, 모바일, 서버에 JVM을 설정하면
자바가 놀 수 있는 놀이터가 된다
바이트 코드
: 운영체제가 읽을 수 있는 readable 한 코드로
*자바 컴파일러가 바꾼 코드
자바 프로그램을 변환하는 코드
예) ~. java
*자바 컴파일러는
자바라는 파일을 class라는 파일로 변환해 주는 것
운영체제가 읽을 수 있도록 변환해 줌
예) 컴파일된 거야?
인터프리터
: 해석하다는 말처럼 운영체제가 읽은 바이트 코드
기기(기계)가 실행할 수 있는 기계어로 번역
기계어로 변환해 주는 기계
JIT 컴파일러
: Just in time의 약자
빠르게 인터프리터의 효율을 높임
인터프리터와 JIT 컴파일러는 세트!
메모리 영역
자바의 테이터를 저장하는 역할/영역
운영체제로부터 JVM이 할당받는 메모리 역역
클래스 로더
Java.class 바이트 코드를 메모리 영역으로 운반하는 역할
Loader!
메모리 영역에. class 파일을 운반하는 역할
가비지 컬렉터
Garbage 자바 쓰레기를 모으는 청소기
메모리 영역에 쓰지 않는 데이터를 청소하는 역할
Runtime 시스템
: 구동되는 시스템
자바의 놀이터 구성하기
JVM 환경을 구성하는 개발환경 구성
자바의 놀이터인 JVM을 설치하는 방법은 JRE를 설치하는 것
(Java Runtime Environment = 자바 실행 환경)
JRE를 설치하는 것은 자바를 실행할 수 있는 환경을 구성하는 것이지만
이것으로는 class를 실행하는 것일 뿐 컴파일을 하진 않는다
따. 라. 서.
JDK를 설치해야 한다
(Java Development Kit = 자바 개발 키트)
JDK는 JRE를 포함하며
.Java 파일을 .class 파일로 변환해 주는 자바 컴파일러 기능이 있다
디버깅 역할도 한다
*디버깅(de+bug)이란 코드를 면밀히
살펴보는 과정을 통해 벌레를 없애버리는 과정
결국, JDK의 기능
1. .Java 파일을 .class 파일로 변환해 주는 자바 컴파일러 기능
2. JRE를 포함
3. 디버깅 역할
프로젝트 생성
// 클래스
// public : 제어자, public(공공의, 공통의) 접근을 제어하는 접근 제어자
public class Main {
// [Jdk]
// 1. compiler : .java -> .class
// 2. JRE
// 3. JDB : 디버깅
// 디버깅이란 몇 번째 코드를 면밀하게 살펴보도록 한다
// 우리가 만든 파일은 .java이지만 .class로 컴파일할 거다.
// (): 소괄호
// {} : 중괄호
// [] : 대괄호
// main 매소드
// 자바 프로젝트(앱)는, 제일 먼저 클래스의 main 매소드를 실행시키다
// = JVM의 약속
// static : 이 프로그램이 시작될 때 무조건 실행되는 장치
// output
// void : 매서드의 출력값의 데이터 타입
// void : "아무것도 없다." -> 출력은 없다.
// input
// String[] args : 매개변수 자리
// String[] args : 변수명, 아무말 써도 상관없다
public static void main(String[] args) {
// 객체 : 특징(속성, 변수), 행동(매소드) ; out
// println : 문자열을 출력할 수 있도록 도와주는 매소드
// 매소드는 인풋과 아웃풋을 가지고 있다
// print -> 줄 바꿈 하지 x
// println -> 줄 바꿈 o
// ln : line
System.out.println("7");
System.out.println("3");
System.out.println("3.14");
System.out.println("JAVA");
}
}
결과 (console)
7
3
3.14
JAVA
TIL
새롭게 배운 부분
- 언어의 역사
- JDK의 기능 (자바 컴파일러 기능, JRE기능, 디버깅)
문제가 되었던 부분/부족한 부분
- 기초가 제일 중요하다
배워가는 모든 언어, 명령어를 숙지하고
사용되는 흐름을 이해하고 파악하자
'Java 문법 종합반' 카테고리의 다른 글
[Java 문법 종합반] 연산자, 조건문, 반복문, 컬렉션, 배열, 가변배열 (0) | 2023.05.25 |
---|---|
[Java 문법 종합반] 변수, 저장공간, 형변환, 자동 형변환 (0) | 2023.05.23 |
Java 문법 종합반 시작! (0) | 2023.05.22 |