정처기 감자정처기 감자
Java클래스/메서드

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

Java 메서드 오버로딩

코딩Java
읽는데 5분 소요
처음 쓰인 날: 2026-02-17
마지막 수정일: 2026-06-26
조회수: —
선수학습(3개)
  • 컴파일과 런타임의 차이
  • Java 기본 제공 클래스 (Integer, Math)
  • Java 재귀 호출 (Recursion)

요약

Java 메서드 오버로딩(Overloading)의 개념을 알아봅니다. 같은 이름의 메서드가 매개변수 타입에 따라 다르게 호출되는 원리와, 오버로딩된 메서드 사이에서 재귀 호출이 전환되는 패턴을 이해하여 정보처리기사 실기 문제를 풀어봅니다.

오버로딩 핵심 정리

개념설명예시
오버로딩같은 이름, 다른 매개변수의 메서드calc(int) vs calc(String)
호출 결정 기준전달하는 인자의 타입calc(5) -> calc(int) 호출
Integer.valueOf()문자열을 정수로 변환Integer.valueOf("5") -> 5
오버로딩 + 재귀오버로딩된 메서드가 재귀하며 인자 타입에 따라 전환calc("5") → calc(int) 전환

메서드 오버로딩이란?

오버로딩(Overloading) 은 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것입니다.

Overload는 over(더) + load(싣다), 즉 같은 이름에 메서드를 더 얹는다는 뜻입니다. 하나의 이름에 여러 메서드를 실어놓고, 매개변수 타입에 따라 골라 쓰는 것이므로 "오버로딩"입니다.

오버로딩 어원: 아버지 감자가 탄 말에 아들 감자가 다른 가방을 추가로 싣고 있다
Overload = 더 싣기. 같은 말(같은 이름)에 int 가방과 String 보따리를 함께 싣습니다.
java
코드 하이라이팅 중…

위 코드에서 calc(int value)와 calc(String str)는 이름은 같지만 매개변수 타입이 다릅니다. Java는 전달하는 인자의 타입에 따라 어떤 메서드를 호출할지 자동으로 결정합니다.

java
코드 하이라이팅 중…
메서드 오버로딩 개념
왼쪽: calc(int)와 calc(String)은 이름은 같지만 매개변수 타입이 다릅니다. 오른쪽: 오버로딩된 calc가 자기 자신을 다시 호출하는 모습으로, 뒤의 '오버로딩 + 재귀' 섹션에서 자세히 다룹니다.
오버로딩은 매개변수 타입으로 구분합니다
메서드 이름이 같아도 매개변수의 타입이나 개수가 다르면 서로 다른 메서드입니다. Java가 인자 타입을 보고 어떤 메서드를 호출할지 자동으로 결정합니다.

오버로딩 vs 오버라이딩

오버로딩과 오버라이딩은 이름이 비슷하지만 완전히 다른 개념입니다.

구분오버로딩 (Overloading)오버라이딩 (Overriding)
의미같은 이름의 메서드를 여러 개 정의부모 메서드를 자식이 재정의
매개변수다름 (타입 또는 개수)같음
클래스 관계같은 클래스 내에서도 가능부모-자식 간
결정 시점컴파일 시 (인자 타입 기준)실행 시 (실제 객체 기준)

Integer.valueOf()

Integer.valueOf()는 문자열을 정수로 변환하는 메서드입니다. 자세한 설명은 기본 제공 클래스 페이지를 참고하세요.


오버로딩 + 재귀: 메서드 전환

재귀 호출 자체의 추적 방법(기저 조건, 펼친 뒤 거꾸로 계산)은 Java 재귀 호출 페이지에서 다룹니다. 여기서는 오버로딩과 재귀가 결합되는 패턴을 봅니다.

시험에서 가장 중요한 패턴은 오버로딩된 메서드 사이에서 전환이 일어나는 경우입니다.

java
코드 하이라이팅 중…

핵심: calc(String)에서 calc(int)로 전환

calc(String str) 메서드 안에서 calc(value - 1)을 호출할 때, value는 int 타입입니다.

java
코드 하이라이팅 중…
코드인자 타입호출되는 메서드
calc("5")Stringcalc(String str)
calc(value - 1)intcalc(int value)
calc(value - 3)intcalc(int value)

calc(String)은 한 번만 호출되고, 그 안에서 calc(int)로 전환됩니다. 이후로는 calc(int) 메서드끼리만 재귀 호출합니다.

calc(String)은 '입구' 역할만 합니다
calc('5')로 String 메서드에 들어간 뒤, Integer.valueOf()로 int로 변환하면 이후 calc(value - 1), calc(value - 3) 모두 int 인자이므로 calc(int) 메서드가 호출됩니다. calc(String)은 처음 한 번만 실행됩니다.

컴파일타임 바인딩

오버로드 선택은 컴파일 시점에 선언 타입을 기준으로 결정됩니다. 26년1회 실기에서 처음 출제된 핵심 패턴이며, 자세한 동작 원리와 단계별 풀이는 Java 컴파일타임 바인딩 페이지에서 다룹니다.


문제 풀이 전략

풀이 순서

  1. 메서드 구분: 같은 이름의 메서드가 여러 개면 매개변수 타입 확인
  2. 첫 호출 확인: 전달하는 인자 타입에 따라 어떤 메서드가 호출되는지 확인
  3. 메서드 전환 확인: 메서드 내부에서 다른 타입의 인자로 호출하면 다른 메서드로 전환
  4. 재귀 추적: 작은 값부터 계산하여 결과 도출

자주 하는 실수

실수올바른 이해
calc(value - 1)이 calc(String)을 호출한다고 생각value는 int이므로 calc(int) 호출
calc("5")에서 재귀가 계속 calc(String)이라고 생각Integer.valueOf() 이후 int로 전환
큰 값부터 계산하려고 함작은 값(0, 1)부터 순서대로 구하기

정보처리기사 실기 기출 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(2개)
  • Java 컴파일타임 바인딩
  • Java 오토박싱/언박싱과 Integer 캐시
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999