IMCAT.DEV
로그인 가입
Java 입문 기초

Java 입출력 처리

Java 입출력 처리 — 초급

입출력 처리

1. 도입 (왜 배워야 하는가)

입출력 처리는 프로그래밍에서 매우 중요한 부분입니다. 우리가 작성하는 프로그램은 사용자와 소통해야 하기 때문에, 데이터를 입력받고 결과를 출력하는 기능이 필수적입니다. 예를 들어, 쇼핑몰 애플리케이션에서 사용자가 상품을 검색하고 장바구니에 추가하는 과정은 모두 입출력 처리로 이루어집니다.

만약 이 과정을 제대로 구현하지 못한다면, 사용자는 자신의 요청을 프로그램이 이해하지 못하거나, 프로그램의 결과를 제대로 확인할 수 없게 됩니다. 이는 사용자 경험을 저하시키고, 결과적으로는 프로그램의 실패로 이어질 수 있습니다.

2. 핵심 개념 설명

입출력 처리에는 기본적으로 두 가지 개념이 있습니다: 입력(Input)과 출력(Output)입니다.

  • 입력(Input): 프로그램이 사용자로부터 데이터를 받는 과정입니다. 마치 식당에서 손님이 주문을 하는 것과 같습니다.
  • 출력(Output): 프로그램이 처리한 데이터를 사용자에게 보여주는 과정입니다. 식당에서 요리가 준비되어 손님에게 제공되는 것과 비슷합니다.
  • 용어설명
    입력사용자로부터 데이터를 받는 것
    출력데이터를 사용자에게 보여주는 것

    3. 기본 코드 예제

    아래는 사용자로부터 이름을 입력받아 인사말을 출력하는 예제입니다.

    import java.util.Scanner; // Scanner 클래스를 사용하기 위해 임포트
    
    public class HelloWorld {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in); // Scanner 객체 생성
            System.out.print("이름을 입력하세요: "); // 사용자에게 입력 요청
            String name = scanner.nextLine(); // 사용자 입력을 name 변수에 저장
            System.out.println("안녕하세요, " + name + "님!"); // 인사말 출력
            scanner.close(); // 리소스 해제
        }
    }

    실행 결과:

    이름을 입력하세요: 홍길동
    안녕하세요, 홍길동님!

    코드 한 줄씩 동작 설명:

    1. import java.util.Scanner;: Scanner 클래스를 사용하기 위해 필요한 라이브러리를 임포트합니다.
    2. Scanner scanner = new Scanner(System.in);: 사용자 입력을 받기 위한 Scanner 객체를 생성합니다.
    3. System.out.print("이름을 입력하세요: ");: 사용자에게 이름을 입력하라는 메시지를 출력합니다.
    4. String name = scanner.nextLine();: 사용자가 입력한 이름을 name 변수에 저장합니다.
    5. System.out.println("안녕하세요, " + name + "님!");: 입력받은 이름을 사용하여 인사말을 출력합니다.
    6. scanner.close();: Scanner 객체를 닫아 리소스를 해제합니다.
    7. 4. 실전 활용 예제

    8. 쇼핑몰에서 장바구니 구현하기
    9. 사용자가 상품을 장바구니에 추가할 때, 상품 정보와 수량을 입력받아야 합니다. 아래 코드는 상품명과 수량을 입력받아 장바구니에 추가하는 예제입니다.

         import java.util.Scanner;
      
         public class ShoppingCart {
             public static void main(String[] args) {
                 Scanner scanner = new Scanner(System.in);
                 System.out.print("상품명을 입력하세요: ");
                 String productName = scanner.nextLine();
                 System.out.print("수량을 입력하세요: ");
                 int quantity = scanner.nextInt();
      
                 System.out.println(productName + "이(가) " + quantity + "개 장바구니에 추가되었습니다.");
                 scanner.close();
             }
         }
    10. 간단한 계산기
    11. 사용자로부터 두 숫자를 입력받아 덧셈을 수행하는 계산기입니다.

         import java.util.Scanner;
      
         public class SimpleCalculator {
             public static void main(String[] args) {
                 Scanner scanner = new Scanner(System.in);
                 System.out.print("첫 번째 숫자를 입력하세요: ");
                 int num1 = scanner.nextInt();
                 System.out.print("두 번째 숫자를 입력하세요: ");
                 int num2 = scanner.nextInt();
      
                 int sum = num1 + num2;
                 System.out.println("두 수의 합은: " + sum);
                 scanner.close();
             }
         }

      5. 흔한 실수와 주의사항

    12. Scanner 객체를 닫지 않음
    13. - 잘못된 코드:

         Scanner scanner = new Scanner(System.in);
         // 코드...
         // scanner.close();를 하지 않음

      - 올바른 코드:

         Scanner scanner = new Scanner(System.in);
         // 코드...
         scanner.close(); // 리소스 해제
    14. nextLine()과 nextInt() 혼용 사용
    15. - 잘못된 코드:

         int num = scanner.nextInt();
         String text = scanner.nextLine(); // 예상치 못한 빈 문자열을 반환

      - 올바른 코드:

         int num = scanner.nextInt();
         scanner.nextLine(); // 버퍼 비우기
         String text = scanner.nextLine();

      6. 정리

    16. 입출력 처리는 사용자와 프로그램이 소통하는 기본적인 방법입니다.
    17. Scanner 클래스를 사용하여 입력을 받을 수 있습니다.
    18. 출력은 System.out.println()을 통해 이루어집니다.
    19. 사용자의 입력을 적절히 처리하고 리소스를 해제하는 것이 중요합니다.

다음에 학습하면 좋은 주제는 파일 입출력 처리입니다. 이 주제를 통해 사용자와의 소통뿐만 아니라 파일 시스템과의 상호작용도 배울 수 있습니다.