Java 기초집LESSON 09
메서드: 코드 중복을 줄이고 책임 나누기
난이도입문 → 초급
예상 시간35분
선수지식이전 강의
9강. 메서드: 코드 중복을 줄이고 책임 나누기
1. 이번 강의에서 해결할 문제
main에 계산과 출력을 모두 넣으면 같은 규칙을 재사용하거나 독립적으로 검사하기 어렵습니다. 한 가지 책임을 가진 메서드로 나눠야 합니다.
2. 학습 목표
3. 핵심 개념
메서드는 이름, 매개변수 타입, 반환 타입으로 계약을 표현합니다. 계산 메서드는 결과를 반환하고 화면 출력 같은 부수 효과를 분리하면 재사용과 테스트가 쉬워집니다. void는 반환값이 없음을 뜻합니다.
4. 단계별 실습
1. src/RecordFunctions.java 작성
실행 환경: 코드 편집기
실행 위치: C:\dev\game-records
실행 전 확인: 같은 이름의 기존 파일이 있다면 덮어쓰기 전에 Git diff와 이번 강의 변경 범위를 확인합니다.
대상 파일: src/RecordFunctions.java
src/RecordFunctions.java
public class RecordFunctions {
static double average(int[] scores) {
if (scores.length == 0) throw new IllegalArgumentException("점수가 비었습니다.");
int total = 0;
for (int score : scores) total += score;
return (double) total / scores.length;
}
static int highest(int[] scores) {
if (scores.length == 0) throw new IllegalArgumentException("점수가 비었습니다.");
int result = scores[0];
for (int score : scores) if (score > result) result = score;
return result;
}
public static void main(String[] args) {
int[] scores = {800, 1200, 950};
System.out.println("평균: " + average(scores));
System.out.println("최고: " + highest(scores));
}
}
2. PowerShell에서 컴파일·실행
실행 환경: Windows PowerShell
실행 위치: C:\dev\game-records
실행 전 확인: java -version과 javac -version이 선택한 LTS JDK를 가리키고, 소스 파일명이 public 클래스명과 일치하는지 확인합니다.
대상: 이 강의의 .java 파일, out의 class 파일과 명시된 출력 파일
Windows PowerShell
Set-Location C:\dev\game-records
javac -d out .\src\RecordFunctions.java
java -cp out RecordFunctions
예상 결과: 평균과 최고 점수가 각 메서드 반환값으로 계산되어 출력됩니다.
5. 코드가 동작하는 이유
scores 참조가 매개변수로 전달되고 각 메서드는 자신의 지역 변수만 관리합니다. 잘못된 빈 배열은 의미 없는 나눗셈이나 인덱스 오류 전에 명확한 예외로 거부됩니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2메서드: 코드 중복을 줄이고 책임 나누기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
9강. 메서드: 코드 중복을 줄이고 책임 나누기 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.