24.04.22 월 TIL(Today I Learned)

신민금·2024년 4월 22일
0
post-thumbnail

TIL(Today I Learned)

: 매일 저녁, 하루를 마무리하며 작성 !
: ⭕ 지식 위주, 학습한 것을 노트 정리한다고 생각하고 작성하면서 머리 속 흩어져있는 지식들을 정리 !

Java 문법 종합반

1주차 : JVM, 변수 -------------------------------------------

[수업 목표]
1. Java프로그램을 만들때 사용하는 Java 언어에 대해서 이해
2. Java의 실행환경인 JVM 에 대해서 이해
3. Java의 데이터인 변수와 상수에 대해서 이해
4. Java의 변수를 담는 저장공간의 종류, 사용법에 대해서 이해
5. Java의 저장공간 종류(변수 타입)간에 변환, 사용법에 대해서 이해

[용어 정리]
1. 데이터 : 컴퓨터가 정보를 담는 자료값
2. 데이터 타입(자료형) : 데이터의 유형 ex. 정수 / 문자 / 부동소수(소숫점)
3. 자료구조ㅜ: 데이터 여러 개를 분류해서 담을 수 있는 분류통
4. 문맥 : 문맥이라 함은 개발 언어로 표현한 프로그램의 동작 흐름을 의미. 이케아 가구 조립 설명서, 밀키트 요리 레시피에 조건에 따른 문맥이 있듯이 프로그램도 문맥을 가지고 있습니다.
5. 메서드 : 데이터와 문맥을 감싸는 포장지입니다.
6. 공통 실행환경 : 여러 기기의 운영환경에서 실행할 수 있도록 판을 깔아주는 실행환경
7. 운영 체제 : 기기가 프로그램을 실행시키는 운영환경 (ex. Window, Android, iOS, Linux …)

- 개발 언어의 역사

  1. A언어
  • 첫 개발 언어라는 의미, A Programming Language의 약자
  • 발표년대 : 1960’
  • 핵심 기능 : 입/출력, 문맥
  • 프로그램을 만들기 위해 기본적으로 필요한 기능 입/출력, 문맥 기능만 구현 가능한 언어
  1. B언어
  • Bell 사에서 개발해서 B 언어
  • 발표년대 : 1960’
  • 핵심 기능 : A언어 기능 + 기계식 데이터 타입, 연산기능, 메서드
  • A언어 기능에 데이터를 담을 수 있는 타입이 생기고, 데이터를 연산하고 묶어서 관리할 수 있는 메서드(포장지) 구현이 가능한 언어
  1. C언어
  • B언어에 비해 더 좋은 언어라는 의미로 알파벳 B 다음인 알파벳 C를 따서 C언어
  • 발표년대 : 1970’
  • 핵심 기능 : B언어 기능 + 자료형 데이터 타입(변하는 것), 자료구조(분류통)
  • B언어 기능에 다양한 데이터 타입을 정의하고 자료구조에 담을 수 있는 언어
  1. Java 언어

  • 어디서나 마시는 커피처럼 어디서나 동작 가능한, 자바 커피에서 이름을 따서 만든 Java 언어
  • 발표년대 : 1990’
  • 핵심 기능 : C언어 기능 + 공통 실행환경(놀이터), 클래스(바구니 틀), 객체(바구니)
  • C언어 기능에 여러 기기에서 실행 가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는 클래스🗑️(바구니 틀)를 통해 객체(바구니)를 만들 수 있는 언어
  1. 역사를 통해 정리하는, Java 언어의 기능
  • Java는 A언어의 기능 + B언어의 기능 + C언어의 기능에 JAVA 언어의 기능을 추가한 언어.
  • 기능은 포함하지만, 각 언어별로 기능을 구현한 방법은 각기 다름.

- Java를 배워야 하는 이유

Java는 앞서 배운 개발 언어의 역사에 따라서 발전해 온 언어 중 가장 많이 쓰이는 개발 언어 중 하나

  1. Java는 공통 실행환경이 있어서 여러 기기에서 실행 가능

  2. Java는 세상과 닮아있는 개발 언어라 코드를 이해하기 쉽고 유지 보수가 쉬움

  • 존재하는 물건을 “객체”라고 부르는 세상을 닮도록 만든 객체 언어
  • Java에서는 클래스를 통해 객체를 생성
  1. Java는 안정성이 높아서 프로그래밍 오류를 방지하고 보안상 안전
  • Java 언어로 작성된 문맥을 바이트 코드로 변환하는 변환기(Compiler)가 먼저 오류를 체크
  • Java에서 지원하는 보안 기술 다수 존재
  1. 대규모 앱 개발이 가능
  • 네트워크 및 데이터베이스 연결 및 통신 등의 작업을 처리하는 API를 제공
  1. 다양한 개발 도구와 라이브러리를 사용
  • 앱 개발에 필요한 작업을 보다 쉽게 처리

- JVM 이란?

  • Java Virtual Machine의 약자로 “자바 가상 머신”
  • 가상 머신이란 가상의 기기를 만들어주는 것을 의미
  • 여러 가지의 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것을 의미

JVM 놀이터 구성

  1. 바이트 코드
  • Java 프로그램 변환 코드
  • 내가 작성한 코드가 운영체제가 읽을 수 있는 코드(바이트 코드💬)로 Java 컴파일러가 변환한 코드
  1. 인터프리터
  • Java.class 코드 해석기
  • 운영체제가 읽은 바이트 코드를 기기(기계)가 실행할 수 있는 기계어로 번역
  1. JIT 컴파일러
  • 빠른 Java.class 코드 해석기
  • 인터프리터의 효율을 높여주는 서포터 해석기
  1. 메모리 영역
  • Java 데이터를 저장하는 영역
  • 운영체제로부터 JVM이 할당받은 메모리 영역
  1. 클래스 로더
  • Java.class 바이트 코드를 메모리 영역에 담는 운반기
  • JVM으로 class(바이트 코드)를 불러와서 메모리에 저장
  1. 가비지 컬렉터🧹
  • Java 쓰레기 청소기
  • 메모리 영역에서 안 쓰는 데이터를 주기적으로 흡수해가는 청소기

- 개발환경 구성

  1. JRE?
  • Java의 놀이터인 JVM 을 설치하는 방법은 JRE를 설치하는 것
  • JRE는 Java Runtime Environment ,자바 실행 환경이라는 뜻
  • 하지만, JRE(JVM)만 있다면 Java 프로그램을 실행만 시킬 수 있다.
  • JRE는 .class 파일만 실행 가능
  • JDK 가 javac 명령을 통해 .java 파일을 실행 가능한 .class 파일로 변환
  1. JDK?
  • Java의 놀이터 기능과 함께 Java 프로그램을 개발할 수 있는 JDK라는 것이 있다.
  • JDK는 Java Development Kit, 자바 개발 키트라는 뜻
  • 우리는 Java 프로그램을 개발할 것이기 때문에 JDK를 설치
  • JDK는 아래 그림처럼 JRE(JVM)의 기능을 포함
  • JDK는 .java 파일들을 .class 파일들로 변환해 주는 Java Compiler(javac) 기능
  • JDK는 코드를 디버깅하는 jdb 등의 기능
  • JDK 디버깅 기능

- Java로 프로그램 만들기

  1. IntelliJ 설치하기

  2. IntelliJ 와 JDK를 활용한 디버깅 기능

  1. main 메서드에 대한 이해
  • Java 프로그램(앱)의 시작점! Java 앱은 실행되면 제일 먼저 클래스의 main 메서드를 실행시키는 게 JVM의 약속
public class Main {
	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
}

  1. System.out.print & println에 대한 소개 및 사용법
  • System.out.print() 메서드를 사용하면 출력창에 괄호() 안으로 전달된 데이터를 출력
System.out.print("데이터1"); // "데이터1" 라는 문자를 출력
System.out.print("데이터2"); // 이어서 "데이터2" 라는 문자를 출력

// 실행 결과
데이터1데이터2
  • System.out.println()메서드를 사용하면 출력창에 괄호() 안으로 전달된 데이터를 출력 후 줄바꿈
System.out.println("데이터1"); // "데이터1" 라는 문자를 출력 후 줄바꿈
System.out.println("데이터2"); // 이어서 "데이터2" 라는 문자를 출력 후 줄바꿈

// 실행 결과
데이터1
데이터2

//System.out.println(출력할데이터);
  • 샘플 출력 예시
System.out.print(7);
System.out.println(3);
System.out.println(3.14);
System.out.println("JAVA");

// 실행 결과
7
3
3.14
JAVA
  1. 주석
  • 주석은 설명을 달아놓는 기능
  • 실제 프로그램 실행에는 영향을 미치지 않는 유령코드
  • 협업할 때 코드에 대한 설명을 추가하거나 주의사항을 적어놓을 때 사용
String data = "데이터";     // 출력할 데이터 문자열
System.out.println(data); // 데이터를 출력한다

- 변하는 것, 변하지 않는 것

  1. 저장 공간의 선언과 값의 저장
  • 저장 공간의 선언
    - Java 프로그램에서 값을 다루기 위해서는 값을 저장해둘 저장 공간(그릇)의 선언이 필요
    - 선언할 때는 저장 공간(그릇)에 담을 값의 타입과 이름을 명시하여 선언
int number; // number 라는 이름의 int(숫자)타입의 저장공간을 선언
String name; // name 이라는 이름의 String(문자열)타입의 저장공간을 선언
  • 값의 저장
int number = 10; // 1. 선언과 동시에 값을 저장공간에 저장 (=초기화)

number = 11; // 2. 선언 이후에 다른값을 저장공간에 저장
  1. 변수와 상수
  • 변수 : 변하는 저장 공간
int number = 10; // 1. 변수로 선언 및 초기화

number = 11; // 2. 변수의 값을 바꾼다. (덮어쓰기)
  • 상수 : 변하지 않는 저장 공간
final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됩니다.)

number = 11; // e2. 변수의 값을 바꾸려고하면 에러가 납니다!
profile
야옹

0개의 댓글