TECH

LG유레카 1주차 후기 (4.6~4.10)

superpark 2026. 4. 14. 20:52

JAVA 핵심 요약 자바는 실전이다

1. 자바의 철학과 실행 원리 (WORA)

자바는 "한 번 써서 어디서든 실행한다"는 철학이 가장 중요합니다.

  • 창시자: 제임스 고슬링 (Sun Microsystems)
  • 핵심 가치: WORA (Write Once, Run Anywhere)
  • 실행 프로세스: 1. .java (소스 코드) 작성 2. javac로 컴파일 3. .class (바이트코드, 중간 언어) 생성 4. JVM이 각 운영체제(OS)에 맞춰 해석 후 실행
  • 핵심 도구:
    • JDK: 개발 도구 (JRE 포함, 컴파일러 있음) ── 우리가 설치하는 것
    • JRE: 실행 환경 (JVM 포함, 라이브러리 있음)
    • JVM: 가상 머신 (바이트코드를 OS 명령어로 번역) ── 자바의 심장

2. 메모리(JVM)와 자동 관리(GC)

자바가 메모리를 어떻게 쓰는지 알면 성능이 보입니다.

  • 메모리 영역 (딱 2개만 기억해도 절반은 성공!):
    • Stack: 메서드 실행, 기본형 변수 저장. (금방 쓰고 버리는 곳)
    • Heap: new로 만든 객체/배열 저장. (오래 머무는 곳, GC의 대상)
    • Method Area: 클래스 설계도, static 변수 저장.
  • GC (Garbage Collection): * "Heap 영역에서 더 이상 나를 찾는 곳이 없는 객체를 자동으로 치워줌."
    • Eden → Survivor → Old 순서로 객체가 이동하며, 최근에는 성능이 좋은 G1 GC가 기본입니다.

3. 객체지향 4대 천왕 (OOP)

자바의 모든 것은 '객체'로 이루어져 있습니다.

  1. 캡슐화: private과 Getter/Setter를 통해 내부 데이터를 보호함.
  2. 상속: 부모의 기능을 물려받아 재사용함 (extends).
  3. 추상화: 복잡한 건 숨기고 중요한 특징(메서드)만 추출함.
  4. 다형성 (★가장 중요): 부모 타입으로 자식 객체를 다루는 것.
    • Animal a = new Dog(); (타입은 부모지만, 실행되는 행동은 실제 객체인 강아지 기준)

4. 데이터 다루기 (자료형 & 문자열)

  • 기본형(Primitive): 값 자체를 Stack에 저장 (int, double, boolean 등).
  • 참조형(Reference): 주소값을 Stack에, 실제 데이터는 Heap에 저장 (String, List 등).
  • String의 비밀: * 한 번 정해지면 안 변함 (불변성).
    • 내용이 같은지 비교할 때는 주소 비교(==)가 아니라 **.equals()**를 사용함.

5. 실무 필수 문법 (예외, 컬렉션, 람다)

  • 예외 처리: try-catch로 에러가 나도 프로그램이 멈추지 않게 방어막을 침.
  • 컬렉션 프레임워크: * List (ArrayList): 순서대로 데이터를 담을 때 사용.
    • Generic (<T>): 타입을 미리 지정해서 컴파일 시점에 에러를 잡아냄.
  • 람다 (Lambda): 익명 클래스 대신 () -> { } 형태의 짧은 코드로 함수를 표현함. (가독성 폭발!)

최종 암기 포인트 (이것만은 꼭!)

  1. 객체Heap, 지역변수Stack에 산다.
  2. JVM 덕분에 윈도우에서 짠 코드가 리눅스에서도 돌아간다.
  3. 메모리 관리는 GC가 알아서 해주니 객체 지향 설계에 집중하자.
  4. 참조형 데이터 비교는 무조건 **.equals()**다.

자바 마인드맵