목차

    ⏳ Time Log/1. One Day (Daily · TIL)

    [TIL] Day 03 — Java 기본 문법 및 Git 설정

    this.Serena 2026. 2. 18. 23:29

    [TIL] Day 03 — Java 기본 문법 및 Git 설정

    날짜: 2025-10-22
    기술 스택: Java Git GitHub Scanner 형변환
    부트캠프: DevOps 개발자 부트캠프 1주차


    Java 기본 자료형 정리

    자료형 크기 범위 특징
    byte 1byte -128 ~ 127
    short 2byte -32,768 ~ 32,767
    int 4byte -2³¹ ~ 2³¹ - 1 정수 기본형
    long 8byte -2⁶³ ~ 2⁶³-1 리터럴에 L 접미사
    float 4byte ~7자리 리터럴에 f 접미사 필수
    double 8byte ~15자리 실수 기본형
    char 2byte 0 ~ 65535 유니코드, 작은따옴표
    boolean - true/false
    String - - 참조 타입(객체)

    중요 구분: int, double, boolean은 기본(primitive) 타입, String은 참조(reference) 타입


    형변환 (Type Conversion)

    자동 형변환 (Promotion) — 작은 타입 → 큰 타입 (데이터 손실 없음)

    int i = 100;
    double d = i;  // 내부적으로 100 → 100.0 으로 변환됨
    
    System.out.println(d); // 100.0

    변환 순서: byteshortintlongfloatdouble

    강제 형변환 (Casting) — 큰 타입 → 작은 타입 (데이터 손실 가능성 존재)

    double d = 3.14;
    int i = (int) d;    // (int) 캐스팅 연산자 사용 → i = 3 (소수점 절삭)
    
    System.out.println(i); // 3

    주의: 강제 캐스팅 시 소수점 절삭(truncation) 발생. int 범위 넘는 값은 데이터 손실(overflow) 발생.


    Scanner 사용법

    import java.util.Scanner;   // 임포트 필수
    Scanner sc = new Scanner(System.in);
    String name = sc.nextLine();             // 한 줄 문자열 (공백 포함)
    int age = Integer.parseInt(sc.nextLine()); // 문자열 입력 후 파싱 (혼용 방지)
    double weight = Double.parseDouble(sc.nextLine());

    nextLine() vs nextInt() 혼용 주의

    • nextInt() 이후 nextLine() 호출 시 개행문자(\n) 가 버퍼에 남아 빈 문자열이 입력됨
    • 해결책: nextInt() 대신 Integer.parseInt(sc.nextLine()) 사용

    Git / GitHub 초기 설정

    최초 레포 연동

    # 로컬 폴더에서 Git Bash 열기
    git init
    git add .                            # 모든 파일 스테이징
    git commit -m "first commit"
    git remote add origin [repo URL]
    git push -u origin main

    다른 PC에서 클론

    git clone [repo URL]
    cd [프로젝트 폴더명]
    git pull    # 이후 원격 변경사항 반영 시 사용

    트러블슈팅

    nextInt() 이후 nextLine() 입력이 건너뛰어질 때

    • 원인: nextInt(), nextDouble() 등은 값만 읽고 개행문자(\n)를 버퍼에 남김. 이후 nextLine() 호출 시 남은 개행문자를 읽고 바로 종료됨
    • 해결: nextInt() 대신 sc.nextLine()으로 입력받고 Integer.parseInt() / Double.parseDouble()로 파싱
    // 잘못된 방식
    int age = sc.nextInt();
    String name = sc.nextLine(); // 개행문자 소비 → 빈 문자열
    
    // 올바른 방식
    int age = Integer.parseInt(sc.nextLine());
    String name = sc.nextLine(); // 정상 입력

    char 입력

    • Scanner는 char 직접 입력 지원 안 함
    • 해결: 문자열로 입력받은 뒤 첫 번째 문자만 추출
    char c = sc.nextLine().charAt(0);

    더 알아볼 것

    • String이 참조 타입인 이유 — == vs .equals() 비교 차이
    • 범위 초과(overflow) 실제 예시 코드로 확인
    • Git 기본 명령어 충돌 해결법 (git status, git log, git reset)
    • GitHub 레포에서 .gitignore 설정하는 방법
    • 이스케이프 문자 종류 (\n, \t, \", \\) 및 활용