목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/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

      변환 순서: byte → short → int → long → float → double

      강제 형변환 (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, \", \\) 및 활용