Scanner 활용한 입력 처리

자바 프로그래밍의 기초 중 하나인 Scanner 클래스를 활용해 키보드로부터 데이터를 입력받고, 이를 계산 가능한 숫자로 변환하는 과정을 정리해 본다.

1. 전체 실행 코드

import java.util.Scanner; // 1. Scanner 클래스 불러오기

class Main {
  public static void main(String[] args) {
    // 2. 입력 도구 준비 (키보드 연결)
    Scanner sc = new Scanner(System.in); 

    System.out.print("숫자를 입력해 주세요 : ");
    
    // 3. 문자열 한 줄을 통째로 입력받음
    String strNums = sc.nextLine();  

    // 4. 공백 제거 및 문자열 분리
    String[] strBits = strNums.trim().split(" "); 

    // 5. 문자열을 정수로 변환 (Parsing)
    int a = Integer.parseInt(strBits[0]); 
    int b = Integer.parseInt(strBits[1]); 
    int c = Integer.parseInt(strBits[2]); 

    // 6. 결과 출력 및 자원 반납
    System.out.println("합계 : " + (a + b + c)); 
    sc.close(); 
  }
}

2. 단계별 상세 분석

① Scanner 객체 생성

Scanner sc = new Scanner(System.in); 구문은 키보드(System.in)로부터 데이터를 빨아들일 수 있는 '입력 전용 통로'를 만드는 작업이다. 이 도구가 있어야만 사용자가 입력한 값을 프로그램 내부로 가져올 수 있다.


1. 입력의 기본: Scanner와 System

데이터가 흐르는 통로(Stream)를 이해하는 것이 우선이다.

System.in: 키보드로부터 데이터가 들어오는 통로를 의미한다.

System.out: 모니터로 데이터를 내보내는 통로를 의미한다.

Scanner: 이 통로를 통해 들어온 가공되지 않은 데이터를 우리가 사용하기 편하게 읽어주는 도구 역할을 한다.

Tip: Scanner는 컴퓨터의 자원(메모리)을 사용하므로, 사용이 끝난 후에는 sc.close()를 호출하여 통로를 닫아주는 것이 좋은 습관이다.


② 데이터 수집 (nextLine)

sc.nextLine()은 사용자가 엔터(Enter) 키를 누를 때까지 입력한 모든 내용을 하나의 문장(String)으로 가져온다. 예를 들어 10 20 30을 입력했다면, 이는 숫자 3개가 아니라 "10 20 30"이라는 하나의 글자 덩어리로 인식된다.


③ 문자열 가공 (trim, split)

  • .trim(): 사용자가 실수로 숫자 앞뒤에 넣은 불필요한 공백을 제거한다.
  • .split(" "): 지정한 구분자(여기서는 공백 한 칸)를 기준으로 문자열을 잘라 배열에 저장한다. 결과적으로 ["10", "20", "30"]과 같은 형태의 배열이 생성된다.

④ 데이터 변환 (Integer.parseInt)

컴퓨터 입장에서 "10"은 단순한 글자일 뿐이다. 이를 산술 연산이 가능한 진짜 숫자로 취급하기 위해 Integer.parseInt()라는 도구를 사용한다. 이 과정을 거쳐야만 비로소 +, - 등의 연산자를 사용할 수 있는 int 타입 데이터가 된다.


3. 더 효율적인 방법: nextInt() 활용

만약 입력받을 데이터가 숫자라는 것이 확실하다면, 문자열로 받아서 쪼개는 대신 nextInt()를 사용하는 것이 훨씬 간결하다.

// 공백을 기준으로 숫자만 쏙쏙 뽑아오는 방식
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();

nextInt()는 공백이나 줄바꿈을 기준으로 숫자를 알아서 구분하여 읽어오기 때문에 별도의 split이나 parseInt 과정이 필요 없다.


4. 정리하며

Scanner는 자바 입출력의 가장 기본이 되는 도구다. 단순히 코드의 형식을 외우기보다는 입력 -> 수집 -> 가공 -> 변환으로 이어지는 데이터의 흐름을 이해하는 것이 중요하다. 특히 정보처리산업기사 등의 실기 시험에서는 입력 형식이 지정되는 경우가 많으므로 nextLine()split() 조합을 익혀두는 것이 유리하다.


4월1일 내부평가 대비 자료

윈도우 CMD 기본 명령어 가이드

분류명령어기능 설명
디렉터리 관리dir현재 위치의 파일 및 폴더 목록 표시
cd디렉터리 이동 (Change Directory)
md / mkdir새로운 폴더 생성
rd / rmdir폴더 삭제 (비어 있는 경우)
파일 조작copy파일 복사
move파일 또는 폴더 이동
del파일 삭제 (Delete)
ren파일 또는 폴더 이름 변경 (Rename)
내용 및 검색type텍스트 파일 내용 출력
find파일 내 특정 문자열 검색
fc두 파일의 내용 비교 (File Compare)
more출력 내용을 페이지 단위로 끊어서 표시
시스템 제어attrib파일 속성 변경/표시 (읽기 전용, 숨김 등)
cls콘솔 화면 지우기 (Clear Screen)
echo메시지 출력 또는 변수값 표시
exit명령 프롬프트(CMD) 종료

리눅스(Linux) 기본 핵심 명령어 정리

분류명령어기능 설명
파일/폴더 조회ls현재 위치의 파일 및 디렉터리 목록 조회
위치 이동cd디렉터리 이동 (Change Directory)
파일 관리cp파일 또는 디렉터리 복사 (Copy)
mv파일 이동 또는 이름 변경 (Move)
rm파일 또는 디렉터리 삭제 (Remove)
mkdir새로운 디렉터리(폴더) 생성
출력 및 저장cat파일의 내용을 화면에 연속 출력
>명령 결과를 파일로 저장(Redirection)
>>명령 결과를 파일 끝에 추가 (Append)
사용자 설정alias긴 명령어를 짧은 별칭으로 설정

Java 개발 환경 구축 가이드

1. 기본 개념 이해

자바 개발을 시작하기 전, 두 가지 핵심 용어를 구분해야 합니다.

용어풀이특징
JDKJava Development Kit자바 개발 도구 모음집. 컴파일러(javac) 등 개발에 필요한 모든 도구 포함
JREJava Runtime Environment자바 실행 환경. 완성된 자바 프로그램을 실행하기만 할 때 필요

Tip: JDK를 설치하면 JRE가 기본적으로 포함되어 있습니다. 개발자라면 JDK 설치가 필수입니다!


2. JDK 버전 확인하기

설치가 잘 되었는지 확인하기 위해 명령 프롬프트(CMD)를 실행합니다.

  1. Win + R 입력 후 cmd 엔터 (또는 윈도우 검색창에 CMD 입력)

  2. 아래 명령어를 입력합니다.Bash

    java -version

  3. 만약 버전 정보가 나오지 않는다면? 아래의 환경 변수 설정 단계가 필요합니다.


3. 윈도우 환경 변수 설정 (Step-by-Step)

인텔리제이(IntelliJ) 등 IDE에서 사용하는 JDK 경로를 시스템 전체에서 인식하도록 설정하는 과정입니다.

Step 1. JDK 경로 복사 (IntelliJ 기준)

  1. IntelliJ 실행 후 단축키 Ctrl + Alt + Shift + S (Project Structure)
  2. 좌측 SDKs 메뉴 선택
  3. 우측 JDK Home Path에 있는 경로를 복사합니다.
    • 예시: C:\Users\admin\.jdks\graalvm-jdk-21.0.7

Step 2. JAVA_HOME 변수 생성

  1. 윈도우 검색창에 '시스템 환경 변수 편집' 입력 및 실행
  2. 하단의 [환경 변수] 버튼 클릭
  3. [시스템 변수] 항목에서 [새로 만들기] 클릭
    • 변수 이름: JAVA_HOME
    • 변수 값: (아까 복사한 JDK 경로 붙여넣기)
  4. [확인] 클릭

Step 3. Path 변수 편집

  1. 시스템 변수 목록에서 Path를 찾아 선택하고 [편집] 클릭

  2. 우측의 [새로 만들기] 클릭

  3. 아래 내용을 입력합니다.Plaintext

    %JAVA_HOME%\bin

  4. 모든 창에서 [확인]을 눌러 설정을 저장하고 닫습니다.

Step 4. 설정 확인

  1. 중요: 열려 있던 CMD 창을 완전히 끄고 다시 실행합니다.
  2. 다시 java -version을 입력하여 버전 정보가 정상적으로 출력되는지 확인합니다.

CMD를 이용한 프로젝트 폴더 이동 및 확인

윈도우 터미널(CMD)에서 바탕화면에 있는 특정 자바 소스 파일까지 찾아가는 실습 과정입니다.

1. 터미널 시작 (기본 경로)

윈도우 키를 누르고 CMD를 입력하여 실행하면 보통 아래와 같은 사용자 홈 디렉터리에서 시작합니다.

DOS

C:\Users\admin>


2. 단계별 디렉터리 이동 (Step-by-Step)

바탕화면의 java_projects 폴더 내에 있는 java_exam_03/src 경로까지 차례대로 진입합니다.

단계입력 명령어설명
Step 1cd Desktop바탕화면(Desktop)으로 이동
Step 2cd java_projects자바 프로젝트 모음 폴더로 진입
Step 3cd java_exam_03해당 시험/과제 폴더로 진입
Step 4cd src소스 코드가 담긴 src 폴더로 최종 이동
Step 5dir현재 폴더의 파일 목록(Main.java 등) 확인

3. 실제 실행 화면 예시

DOS

`C:\Users\admin> cd Desktop
C:\Users\admin\Desktop> cd java_projects
C:\Users\admin\Desktop\java_projects> cd java_exam_03
C:\Users\admin\Desktop\java_projects\java_exam_03> cd src

C:\Users\admin\Desktop\java_projects\java_exam_03\src> dir
...
2026-03-31 오후 03:00 425 Main.java
...

자바 프로그래밍의 가장 기초이면서도 중요한 데이터 타입(Data Type)변수의 생명주기(Scope)에 대해 정리해 본다.


1. 원시 타입(Primitive Type)과 래퍼 클래스(Wrapper Class)

자바에서는 데이터를 처리하는 방식에 따라 원시 타입과 이를 객체로 감싼 래퍼 클래스로 나뉜다.

데이터 타입 비교

모든 원시 타입은 대응하는 래퍼 클래스가 존재하며, 클래스이기에 첫 글자가 대문자로 시작한다.

구분원시 타입 (Primitive)래퍼 클래스 (Wrapper)
정수형byte, short, int, longByte, Short, Integer, Long
실수형float, doubleFloat, Double
논리형booleanBoolean
문자형charCharacter
  • 원시 타입: 메모리의 스택(Stack) 영역에 실제 값을 저장한다. 가볍고 빠르다.
  • 래퍼 클래스: 원시 타입을 객체로 다루기 위해 사용한다. 메서드를 사용할 수 있으며, null 값을 가질 수 있다는 특징이 있다.

2. 자바의 변수 유형과 생명주기

자바는 클래스 기반 언어이므로 엄밀히 말해 '완전한 전역 변수'는 존재하지 않는다. 대신 위치와 선언 방식에 따라 변수의 성격이 달라진다.

① 클래스 변수 (Static 변수)

  • 위치: 클래스 내부, 메서드 외부에서 static 키워드로 선언한다.
  • 성격: 자바에서 전역 변수의 개념을 대체한다.
  • 생명주기: 프로그램이 시작되어 클래스가 로드될 때 생성되고, 프로그램이 종료될 때까지 메모리에 유지된다. 즉, 클래스의 모든 인스턴스가 공유하는 변수다.

② 멤버 변수 (Field / 필드)

  • 위치: 클래스 내부, 메서드 외부에서 선언한다.
  • 성격: 인스턴스(객체)가 가지는 고유의 상태값이다.
  • 특징: 변수 선언 시 초기화를 하지 않으면 기본값(0, false, null 등)으로 자동 초기화된다.
  • 생명주기: 객체가 생성될 때 태어나고, 가비지 컬렉터(GC)에 의해 객체가 사라질 때 함께 소멸한다.

③ 지역 변수 (Local Variable)

  • 위치: 메서드 내부 또는 특정 코드 블록({ }) 안에서 선언한다.
  • 성격: 선언된 해당 블록 안에서만 사용 가능하다.
  • 특징: 반드시 초기화를 해야 사용할 수 있다. 초기화하지 않고 사용하려 하면 컴파일 에러가 발생한다.
  • 생명주기: 메서드가 실행될 때 생성되고, 메서드 실행이 끝나면 즉시 소멸한다.

3. 변수 이름 중복 제한 규칙

자바에서는 동일한 범위(Scope) 내에서 같은 이름의 변수를 선언할 수 없다.

  1. 모호성 제거: 컴퓨터는 이름이 같은 두 변수가 있을 때 어떤 값을 참조해야 할지 판단할 수 없다.
  2. 논리적 충돌 방지: 동일 영역 내 중복 선언을 막음으로써 데이터가 의도치 않게 덮어씌워지는 사고를 예방한다.

참고: 단, 멤버 변수와 지역 변수의 이름이 같은 경우에는 허용된다. 이때는 this 키워드를 사용하여 멤버 변수와 지역 변수를 구분한다.


요약 및 결론

  • 자바는 8가지 기본 자료형과 그에 대응하는 클래스 형태의 래퍼 클래스를 가진다.
  • 전역 변수static 변수로 구현하며, 프로그램 전체에서 공유된다.
  • 멤버 변수는 객체의 변수로 자동 초기화되지만, 지역 변수는 메서드 내에서만 쓰이며 반드시 수동으로 초기화해야 한다.
  • 변수의 생명주기를 정확히 이해해야 메모리 누수를 방지하고 효율적인 코드를 작성할 수 있다.
profile
성심당마스코트

0개의 댓글