자바 기초 학습 프로젝트

자바 기초 학습 프로젝트

🎯 프로젝트 개요

자바 프로그래밍의 기초부터 차근차근 배우며 실습한 내용을 정리하는 공간입니다. 책을 읽고 코드를 작성하면서 생긴 질문들과 그에 대한 답변을 함께 기록합니다.

📖 학습 자료

메인 교재

  • Java 기초 학습 가이드 (튜토리얼 기반)
  • 실습 위주로 배우는 Java 입문서

개발 환경

  • IDE: IntelliJ IDEA
  • JDK: Java Development Kit (최신 버전)
  • OS: Linux (6.8.0-90-generic)

🎓 학습 주제

Chapter 1-2: 자바 시작하기

  • 자바란 무엇인가
  • JVM (Java Virtual Machine) 동작 원리
  • 첫 번째 프로그램 작성
  • IntelliJ IDEA 사용법

핵심 개념:

  • Write Once, Run Everywhere
  • 소스코드 → 바이트코드 → JVM 실행
  • 컴파일과 실행 과정

Chapter 3: 변수와 타입

  • 변수의 선언과 초기화
  • 기본형 타입 (Primitive Types)
  • 상수와 리터럴
  • printf를 이용한 형식화된 출력
  • Scanner로 입력받기
  • 형변환 (Type Casting)

핵심 개념:

  • 8가지 기본 타입: boolean, char, byte, short, int, long, float, double
  • char vs String 차이
  • 기본형 간의 형변환 vs 참조형 변환
  • 삼항 연산자와 문장(statement)의 차이

💬 학습 방식

이 프로젝트에서 다루는 학습 패턴:

1. 개념 이해

Q: "out 폴더는 왜 생기는가?"
Q: "왜 파일명과 public 클래스명이 일치해야 하는가?"

2. 문법 차이 비교

Q: "char와 String의 차이는?"
Q: "큰따옴표와 작은따옴표의 차이는?"

3. 에러 해결

Q: "왜 double을 String으로 형변환할 수 없는가?"
Q: "삼항 연산자를 단독으로 사용할 수 없는 이유는?"

4. 실습 문제

- 온도 변환기 (섭씨 → 화씨)
- 윤년 판별기
- 계산기 프로그램

🛠️ 학습 기록

작성된 문서

  1. 2026-01-06: 자바 시작하기 - JVM과 첫 프로그램
    • 자바의 기본 개념
    • JVM 동작 원리
    • IntelliJ로 첫 프로그램 작성
  2. 2026-01-07: 자바 변수와 타입 - 기본형부터 형변환까지
    • 변수 선언과 초기화
    • 기본 타입과 리터럴
    • Scanner 입력
    • 형변환의 이해

📌 주요 질문과 답변

Q1: out 폴더는 왜 생기는가?

IntelliJ가 컴파일된 .class 파일들을 저장하는 빌드 출력 디렉토리입니다. 소스와 빌드 결과물을 분리하여 프로젝트 구조를 깔끔하게 유지합니다.

Q2: 왜 파일명과 public 클래스명이 일치해야 하는가?

  1. 컴파일러와 JVM이 클래스 이름으로 파일을 찾기 때문
  2. 개발자가 코드를 찾기 쉽게 하기 위해
  3. 하나의 파일 = 하나의 책임 원칙 유도

Q3: %n은 무엇인가?

플랫폼 독립적인 줄바꿈 문자입니다. \n은 운영체제마다 다를 수 있지만, %n은 현재 시스템에 맞는 줄바꿈을 자동 선택합니다.

Q4: char와 String의 차이는?

  • char: 단일 문자, 작은따옴표, 기본형
  • String: 문자열 (0개 이상), 큰따옴표, 참조형

Q5: 왜 삼항 연산자를 단독으로 사용할 수 없는가?

삼항 연산자는 표현식(expression)이지 문장(statement)이 아니기 때문입니다. 결과값을 변수에 할당하거나 다른 곳에 사용해야 합니다.

🎯 다음 학습 계획

예정 주제

  • Chapter 4: 조건문 (if, switch)
  • Chapter 5: 반복문 (for, while)
  • Chapter 6: 배열 (Array)
  • Chapter 7: 메서드 (Method)
  • Chapter 8: 객체지향 프로그래밍 (OOP)

📂 디렉토리 구조

java/
├── README.md (이 파일)
├── 2026-01-06-chap1.md    # 자바 시작하기
├── 2026-01-07-chap2.md    # 변수와 타입
└── (앞으로 추가될 학습 파일들)

💡 학습 철학

  1. 이해 중심: 단순 암기가 아닌 “왜?”를 항상 질문
  2. 실습 중심: 모든 개념은 직접 코드를 작성하며 확인
  3. 비교 학습: Python 등 다른 언어와 비교하며 이해
  4. 기록 중심: 질문과 답변을 모두 문서화

🔗 관련 링크