API란 페이지 해부도 시그니처 뜯기 실전 읽기 흐름 어떻게 활용하나 최신 링크
📋 목차
📖 부록 · 실전 도구

자바 API 문서, 제대로 읽는 법

모든 걸 외울 필요는 없어요. 필요할 때 공식 문서에서 찾아 읽는 힘이 진짜 실력이에요. 이 부록은 자바 표준 문서 Javadoc의 구조를 도식으로 해부하고, 메서드 시그니처를 조각조각 뜯어보며, 실전에서 어떻게 검색하고 활용하는지까지 차근차근 익혀요.

🎯 이 부록을 끝내면
📖
개념부터
API? API 문서? Javadoc? 뭐가 다른가요
이름이 비슷해서 헷갈려요. 딱 세 단어만 먼저 구분해요.

자바를 배우다 보면 API, API 문서, Javadoc이라는 말이 계속 나와요. 셋은 서로 다른 것을 가리켜요. 전자제품에 비유하면 한 번에 잡혀요.

🔌 비유 — 새 전자레인지를 샀다고 생각해요 API = 전자레인지의 "버튼과 다이얼" 🎛️ — 제조사가 미리 정해둔 사용 창구예요. 우리는 내부 회로를 몰라도 정해진 버튼(클래스·메서드·규칙)만 누르면 원하는 일을 시킬 수 있어요.
API 문서 = 함께 온 "사용설명서" 📘 — 그 버튼들을 어떻게 쓰는지 정리한 설명서예요. "이 버튼은 무엇을 하고, 무엇을 넣으면, 무엇이 나온다"를 적어둔 것.
Javadoc = 자바 표준 API의 "공식 설명서" 📗 — 자바가 기본 제공하는 클래스(String, ArrayList 등)의 사용설명서예요. 그런데 이 설명서는 사람이 따로 쓴 게 아니라, 소스코드 안의 특별한 주석에서 자동으로 만들어져요. 💡 한 줄로: API는 "정해진 사용 창구", API 문서는 "그 창구 사용법 설명서", Javadoc은 "자바 소스 주석에서 자동 생성된 자바 표준 API 문서"예요.
🔤
API(Application Programming Interface) — 우리말로 풀면 "응용 프로그램이 서로를 부르는 약속된 방법"이에요. 자바 표준 라이브러리가 제공하는 클래스와 메서드의 모음이 바로 우리가 매일 쓰는 API예요. 예를 들어 "abc".length()에서 String 클래스의 length() 메서드를 부르는 것, 이게 API를 사용하는 거예요.
API API 문서 Javadoc 클래스 페이지 Method Summary 시그니처 @since @deprecated

그럼 이 Javadoc은 대체 어떻게 만들어질까요? 자바 소스코드 안에 /** ... */ 형태로 쓰인 문서 주석(documentation comment)을, javadoc이라는 도구가 읽어서 HTML 웹페이지로 자동 변환해요. 그래서 우리가 보는 오라클 공식 API 문서는 전부 이 방식으로 만들어진 거예요. (아래 그림)

🖼️ 그림으로 보기 — 소스 주석이 웹 문서가 되기까지
① 소스코드 + 문서 주석 /** 문자열 길이 반환 */ public int length() {   return count; } 🛠 javadoc 도구가 자동 변환 ③ HTML API 문서 length() Returns the length… docs.oracle.com … 에 게시 같은 규칙으로 만들어지니, 한 클래스 페이지를 읽는 법만 익히면 모든 클래스 문서를 똑같이 읽을 수 있어요.
핵심은 모든 자바 클래스 문서가 같은 틀(Javadoc)로 만들어진다는 점이에요. 그래서 페이지 구조 한 번만 익혀두면 String이든 ArrayListScanner든 똑같은 눈으로 읽을 수 있어요. 이 부록의 목표가 바로 그 "틀"을 익히는 거예요.
🔬
페이지 해부도
클래스 문서 페이지, 부분별로 뜯어보기
String·ArrayList 같은 클래스 페이지는 늘 같은 순서로 구성돼요.

클래스 문서 페이지를 처음 열면 정보가 많아 막막해요. 하지만 항상 같은 순서로 배치돼 있어요: 위에서부터 ① 패키지·클래스명 → ② 타입 계층(상속) → ③ 클래스 설명 → ④ Method Summary(요약 표) → ⑤ Method Detail(상세) 순이에요. 검색창과 배지는 그 위에 얹혀 있고요. 아래 목업에서 각 부분이 "무엇을 보는 곳인지" 화살표로 짚어줄게요.

🖼️ 그림으로 보기 — Javadoc 클래스 페이지 해부도
🔍 Search (클래스·메서드 검색) Module java.base java.lang Class String java.lang.Object └─ java.lang.String Since: 1.0 Deprecated 배지 Class 설명 (개요) The String class represents character strings… 이 클래스가 무엇이고 어떻게 쓰는지 개요. Method Summary Modifier and Type Method Description int length() Returns length. char charAt(int) char at index. boolean isEmpty() true if empty. Methods inherited from Object: equals, hashCode… Method Detail length public int length() Returns the length of this string. Returns: the number of characters Throws / See Also / Since 등도 여기 ⑦ 검색창 여기서 클래스·메서드를 이름으로 바로 검색 ① 패키지 · 클래스명 "어느 패키지의 무슨 클래스인가" import 단서 ② 타입 계층 (상속) 부모 클래스가 누구인지 → 물려받은 기능을 짐작 ⑥ Since / Deprecated 배지 언제 생겼나 / 이제 쓰지 말라는 경고인가 ③ 클래스 설명 이 클래스가 뭐고 언제 쓰는지 큰 그림 ④ Method Summary 쓸 수 있는 메서드 목록. 여기서 후보를 고르고, 이름 클릭 → 상세로 점프 ⑤ Method Detail 고른 메서드의 정확한 시그니처·파라미터·반환· 예외·Since를 확인하는 곳
페이지는 위에서 아래로 큰 그림 → 세부 순서예요. ① 어디의 무슨 클래스인지 → ② 누구를 상속했는지 → ③ 무엇을 하는 클래스인지 → ④ 어떤 메서드가 있는지(요약) → ⑤ 그중 하나의 정확한 사용법(상세). 보통 ④에서 후보를 찾아 이름을 클릭하면 ⑤ 상세로 바로 이동해요.
구역여기서 무엇을 보나실전 팁
① 패키지·클래스명어느 패키지(java.lang 등)의 무슨 클래스인지import할 경로를 알려줘요(단, java.lang은 자동 import)
② 타입 계층어떤 클래스를 상속(extends)·구현(implements)했는지부모의 기능도 물려받아 쓸 수 있다는 힌트
③ 클래스 설명이 클래스가 무엇이고 언제 쓰는지 개요·예시처음 보는 클래스는 여기부터 읽기
④ Method Summary사용 가능한 메서드 목록(반환타입·이름·한 줄 설명)후보를 훑고 이름 클릭 → 상세로 점프
⑤ Method Detail메서드 하나의 정확한 시그니처·파라미터·반환·예외실제로 코드 쓰기 직전에 확인하는 곳
⑥ Since/Deprecated@since(도입 버전), Deprecated(폐기 예정)버전 호환·대체 API 찾을 때 핵심
⑦ 검색창클래스·메서드 이름으로 바로 검색모던 Javadoc(Java 9+)엔 상단에 검색창이 있어요
🧭
"상속된 메서드"도 꼭 봐요. Method Summary 아래쪽엔 보통 "Methods inherited from class …" 줄이 있어요. 그 클래스 자신에 없는 메서드라도 부모에서 물려받아 쓸 수 있다는 뜻이에요. 예를 들어 ArrayList 페이지에서 equals가 안 보여도, "Methods inherited from …"에 있으면 쓸 수 있어요.
🧩
시그니처 뜯기
메서드 한 줄(시그니처) 조각조각 읽기
Method Detail의 첫 줄, 그 한 줄에 사용법이 다 압축돼 있어요.

Method Detail을 열면 맨 위에 메서드 시그니처(signature) 한 줄이 나와요. 이 한 줄만 정확히 읽어도 "무엇을 넣고, 무엇이 나오고, 언제 터지는지"를 알 수 있어요. 자바를 대표하는 예제 Integer.parseInt로 뜯어볼게요.

public static int parseInt(String s) throws NumberFormatException
접근제어자 static 반환타입 메서드명 파라미터 throws 예외
🖼️ 그림으로 보기 — 시그니처를 색으로 분해
public static int parseInt(String s) throws NumberFormatException 접근제어자 public = 어디서든 호출 가능 static 객체 없이 클래스로 Integer.parseInt(…) 반환타입 int = 결과로 정수를 돌려준다 메서드명 부를 때 쓰는 이름 파라미터 (매개변수) 괄호 안에 "무엇을 넣어야" 하는지. 여기선 String s — 숫자로 바꿀 문자열 하나 throws 예외 "이럴 때 오류가 날 수 있다"는 예고. "abc"처럼 숫자가 아닌 문자열을 넣으면 NumberFormatException 발생
시그니처를 조각으로 읽으면 사용법이 그대로 나와요: "객체 없이(static) Integer.parseInt("123")처럼 문자열 하나(String s)를 넣으면 정수(int)를 돌려주는데, 숫자가 아닌 문자열이면 예외(NumberFormatException)가 터진다." 이 한 문장이 시그니처 한 줄에 다 들어 있어요.
🔁 오버로드 — 이름은 같은데 괄호 안이 다른 메서드들 요약표를 보면 이름이 똑같은 메서드가 여러 줄 나올 때가 있어요. 이걸 오버로드(overload)라고 해요. 이름은 같아도 파라미터(개수·타입)가 달라서 상황에 맞는 걸 골라 쓰면 돼요. 예: valueOf(int i), valueOf(boolean b), valueOf(char[] data) — 넣는 값의 타입에 따라 알맞은 것이 선택돼요. 문서에서는 내가 넣을 값의 타입과 맞는 줄을 찾으면 돼요.
<E> 제네릭 표기 — 꺾쇠 안은 "담을 타입" List<E>, ArrayList<E>처럼 꺾쇠(< >) 안의 글자는 "이 자리에 담을 타입을 나중에 정한다"는 자리표시예요(제네릭). 문서의 E는 Element(요소), K/V는 Key/Value를 뜻하는 관례예요. 예: boolean add(E e)는, 실제로 List<String>을 만들면 EString이 되어 add(String e)처럼 읽혀요. 즉 E 자리에 내 타입을 대입해서 읽으면 됩니다.
💡
파라미터 이름은 참고용, 타입이 핵심. parseInt(String s)에서 s라는 이름 자체는 중요하지 않아요. "String 타입 값 하나가 필요하다"는 정보가 핵심이에요. 상세 설명의 Parameters: 항목에 각 파라미터가 무슨 의미인지 한 줄로 적혀 있으니 같이 읽으세요.
🧭
실전 읽기 흐름
궁금한 게 생겼을 때, 이 순서로 찾아요
"문자열을 대문자로 바꾸고 싶다" 같은 실제 상황을 예로.

문서는 처음부터 끝까지 읽는 게 아니라 필요한 것만 찾아 읽는 거예요. "문자열을 전부 대문자로 바꾸고 싶다"를 예로, 실전 흐름을 따라가 볼게요.

1
🔍 검색 — 클래스/키워드로 찾기
상단 검색창String을 치거나, 웹 검색으로 "java String uppercase"처럼 찾아 공식 문서(docs.oracle.com) 결과로 들어가요.
2
📋 Method Summary에서 후보 찾기
요약표를 훑어 이름·한 줄 설명으로 후보를 골라요. "대문자"라면 toUpperCase()가 눈에 띄죠. 이름을 클릭하면 상세로 점프해요.
3
🔬 Method Detail에서 정밀 확인
Parameters(무엇을 넣나) · Returns(무엇이 나오나) · Throws(언제 터지나) · @since(언제부터) · @deprecated(폐기됐나) · See Also(관련 메서드)를 확인해요.
4
🧪 예제로 확인 후 코드에 적용
설명의 예시나 내가 만든 짧은 코드로 동작을 확인하고, 실제 코드에 적용해요. 반환값을 변수에 받아 쓰는 걸 잊지 마세요(원본은 안 바뀌는 경우가 많아요).
// 문서에서 String.toUpperCase() 를 찾아 확인한 뒤:
String name = "java";
String up = name.toUpperCase(); // "JAVA"  ← 반환값을 변수에 받아야 함!
System.out.println(up);   // JAVA
System.out.println(name); // java   ← 원본 String은 그대로 (불변)
⚠️
Returns를 꼭 확인하는 이유. String의 메서드들은 원본을 바꾸지 않고 새 값을 "반환"해요. 문서의 Returns 줄을 안 읽고 name.toUpperCase();만 쓰면(반환값을 안 받으면) 아무 일도 안 일어난 것처럼 보여요. 문서를 읽는 습관이 이런 실수를 막아줘요.
🔤
@since / @deprecated / See Also — @since는 "이 메서드가 어느 버전부터 생겼나"(예: @since 9), @deprecated는 "이제 쓰지 말고 대체를 쓰라"는 경고예요. See Also(관련 항목)엔 함께 보면 좋은 메서드·클래스 링크가 걸려 있어, 더 알맞은 메서드를 발견하게 해줘요.
🛠️
어떻게 활용하나
문서를 "습관"으로 만드는 법
브라우저를 열지 않고도, 코딩하며 바로 볼 수 있어요.

문서는 브라우저에서만 보는 게 아니에요. IDE(개발도구) 안에서 코드를 쓰다가 바로 띄울 수 있어, 흐름을 끊지 않고 확인할 수 있어요.

활용방법왜 좋나
IDE에서 바로 보기메서드에 마우스 호버, 또는 Quick Documentation 단축키(IntelliJ F1·Ctrl+Q, Eclipse F2/Shift+F2)브라우저 안 열고 코드 옆에서 즉시 확인
자동완성 설명메서드 목록이 뜰 때 옆에 나오는 문서 미리보기이름을 다 치기 전에 후보를 비교
버전 확인@since 값을 보고 내 JDK 버전에서 되는지 확인"이 메서드는 Java 11부터"라 옛 버전에선 안 됨을 미리 알기
Deprecated 대체 찾기취소선/경고가 보이면 상세의 대체 안내를 따라감곧 사라질 API 대신 권장 API로 갈아타기
표준부터 습관 들이기String·List·Map·Math 등 자주 쓰는 것부터 문서로 확인검색·해석 근육이 붙어 낯선 라이브러리도 쉽게 읽힘
💡
딱 하나만 습관으로. 새 메서드를 처음 쓸 때는 "호버해서 한 줄 설명이라도 읽고 쓰기"를 규칙으로 삼으세요. 이 작은 습관이 쌓이면, 나중에 처음 보는 라이브러리 문서도 겁 없이 읽게 돼요.
🧠 이 부록 핵심 요약
🔧 번외 — Javadoc은 어떻게 만들어지나 (소스 주석 → javadoc 도구)
우리가 보는 공식 문서는 사람이 HTML을 손으로 짠 게 아니에요. 자바 소스코드 안에 문서 주석(/** ... */)을 달아두면, javadoc이라는 도구가 그 주석을 읽어 HTML 문서로 자동 생성해요.
문서 주석에 쓰는 대표 태그
태그
@param파라미터(매개변수) 설명
@return반환값 설명
@throws / @exception어떤 예외가 언제 발생하는지
@since이 요소가 도입된 버전
@deprecated폐기 예정 + 대체 안내
@seeSee Also(관련 항목) 링크
/**
 * 문자열을 정수로 바꿔 반환한다.
 *
 * @param s 숫자로 이루어진 문자열 (예: "123")
 * @return  변환된 정수 값
 * @throws  NumberFormatException 숫자가 아닌 문자열일 때
 * @since   1.0
 */
public static int parseInt(String s) throws NumberFormatException {
    // ...
}
이렇게 달아둔 주석이, 우리가 앞에서 뜯어본 Method Detail의 Parameters·Returns·Throws·Since 항목으로 그대로 나타나요. 즉 "좋은 문서"는 "좋은 주석"에서 나온다는 뜻이라, 나중에 여러분이 코드를 짤 때도 /** */로 문서 주석을 남기면 내 코드의 Javadoc도 자동으로 만들어져요.
▲ 접기
목차 📋 자바 스터디 로드맵으로 돌아가기 — 다른 챕터도 이어서 학습해요