자바 프로그래밍의 기초 중 하나인 Scanner 클래스를 활용해 키보드로부터 데이터를 입력받고, 이를 계산 가능한 숫자로 변환하는 과정을 정리해 본다.
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();
}
}
Scanner sc = new Scanner(System.in); 구문은 키보드(System.in)로부터 데이터를 빨아들일 수 있는 '입력 전용 통로'를 만드는 작업이다. 이 도구가 있어야만 사용자가 입력한 값을 프로그램 내부로 가져올 수 있다.
데이터가 흐르는 통로(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 타입 데이터가 된다.
nextInt() 활용만약 입력받을 데이터가 숫자라는 것이 확실하다면, 문자열로 받아서 쪼개는 대신 nextInt()를 사용하는 것이 훨씬 간결하다.
// 공백을 기준으로 숫자만 쏙쏙 뽑아오는 방식
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
nextInt()는 공백이나 줄바꿈을 기준으로 숫자를 알아서 구분하여 읽어오기 때문에 별도의 split이나 parseInt 과정이 필요 없다.
Scanner는 자바 입출력의 가장 기본이 되는 도구다. 단순히 코드의 형식을 외우기보다는 입력 -> 수집 -> 가공 -> 변환으로 이어지는 데이터의 흐름을 이해하는 것이 중요하다. 특히 정보처리산업기사 등의 실기 시험에서는 입력 형식이 지정되는 경우가 많으므로 nextLine()과 split() 조합을 익혀두는 것이 유리하다.
윈도우 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 | 긴 명령어를 짧은 별칭으로 설정 |
자바 개발을 시작하기 전, 두 가지 핵심 용어를 구분해야 합니다.
| 용어 | 풀이 | 특징 |
|---|---|---|
| JDK | Java Development Kit | 자바 개발 도구 모음집. 컴파일러(javac) 등 개발에 필요한 모든 도구 포함 |
| JRE | Java Runtime Environment | 자바 실행 환경. 완성된 자바 프로그램을 실행하기만 할 때 필요 |
Tip: JDK를 설치하면 JRE가 기본적으로 포함되어 있습니다. 개발자라면 JDK 설치가 필수입니다!
설치가 잘 되었는지 확인하기 위해 명령 프롬프트(CMD)를 실행합니다.
Win + R 입력 후 cmd 엔터 (또는 윈도우 검색창에 CMD 입력)
아래 명령어를 입력합니다.Bash
java -version
만약 버전 정보가 나오지 않는다면? 아래의 환경 변수 설정 단계가 필요합니다.
인텔리제이(IntelliJ) 등 IDE에서 사용하는 JDK 경로를 시스템 전체에서 인식하도록 설정하는 과정입니다.
Ctrl + Alt + Shift + S (Project Structure)C:\Users\admin\.jdks\graalvm-jdk-21.0.7JAVA_HOME시스템 변수 목록에서 Path를 찾아 선택하고 [편집] 클릭
우측의 [새로 만들기] 클릭
아래 내용을 입력합니다.Plaintext
%JAVA_HOME%\bin
모든 창에서 [확인]을 눌러 설정을 저장하고 닫습니다.
java -version을 입력하여 버전 정보가 정상적으로 출력되는지 확인합니다.윈도우 터미널(CMD)에서 바탕화면에 있는 특정 자바 소스 파일까지 찾아가는 실습 과정입니다.
윈도우 키를 누르고 CMD를 입력하여 실행하면 보통 아래와 같은 사용자 홈 디렉터리에서 시작합니다.
DOS
C:\Users\admin>
바탕화면의 java_projects 폴더 내에 있는 java_exam_03/src 경로까지 차례대로 진입합니다.
| 단계 | 입력 명령어 | 설명 |
|---|---|---|
| Step 1 | cd Desktop | 바탕화면(Desktop)으로 이동 |
| Step 2 | cd java_projects | 자바 프로젝트 모음 폴더로 진입 |
| Step 3 | cd java_exam_03 | 해당 시험/과제 폴더로 진입 |
| Step 4 | cd src | 소스 코드가 담긴 src 폴더로 최종 이동 |
| Step 5 | dir | 현재 폴더의 파일 목록(Main.java 등) 확인 |
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)에 대해 정리해 본다.
자바에서는 데이터를 처리하는 방식에 따라 원시 타입과 이를 객체로 감싼 래퍼 클래스로 나뉜다.
모든 원시 타입은 대응하는 래퍼 클래스가 존재하며, 클래스이기에 첫 글자가 대문자로 시작한다.
| 구분 | 원시 타입 (Primitive) | 래퍼 클래스 (Wrapper) |
|---|---|---|
| 정수형 | byte, short, int, long | Byte, Short, Integer, Long |
| 실수형 | float, double | Float, Double |
| 논리형 | boolean | Boolean |
| 문자형 | char | Character |
null 값을 가질 수 있다는 특징이 있다.자바는 클래스 기반 언어이므로 엄밀히 말해 '완전한 전역 변수'는 존재하지 않는다. 대신 위치와 선언 방식에 따라 변수의 성격이 달라진다.
static 키워드로 선언한다.{ }) 안에서 선언한다.자바에서는 동일한 범위(Scope) 내에서 같은 이름의 변수를 선언할 수 없다.
참고: 단, 멤버 변수와 지역 변수의 이름이 같은 경우에는 허용된다. 이때는
this키워드를 사용하여 멤버 변수와 지역 변수를 구분한다.
static 변수로 구현하며, 프로그램 전체에서 공유된다.