๐Ÿ“œ MENTOR JAVA_

Section#15 _ ๊ธฐ๋ณธ API ํด๋ž˜์Šค

CodeLoge 2025. 1. 22. 20:32

#1 API ๋ž€?

: Application Programming Interface

: ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ๋ชจ์Œ == ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

#2 java.lang ํŒจํ‚ค์ง€

: Java ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŒจํ‚ค์ง€

Ex) Scanner, Random ์„ ์‚ฌ์šฉํ•˜๋ ค ํ•œ๋‹ค๋ฉด importํ•ด์•ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

Ex) System, String ๋“ฑ๊ณผ ๊ฐ™์€ ํด๋ž˜์Šค๋Š” java.lang ํŒจํ‚ค์ง€์— ์†ํ•ด ์žˆ์–ด ์„ ์–ธ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

 

#2-1 Object ํด๋ž˜์Šค

: Java์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค

: ์ƒ์„ฑ๋˜๋Š” ๋ชจ๋“  ํด๋ž˜์Šค๋Š” ์ƒ์„ฑ๋  ๋•Œ ์ƒ์†์„ ํ•˜์ง€ ์•Š์•„๋„ Object๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์† → ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

#2-1-1 ๊ฐ์ฒด ๋น„๊ต equals() ๋ฉ”์„œ๋“œ

: ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ์˜ ๋น„๊ต ์—ฐ์‚ฐ์—๋Š” ๋น„๊ต์—ฐ์‚ฐ์ž๋Š” ์ ์ ˆ์น˜ ๋ชปํ•˜์—ฌ equals()๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์‚ฌ์šฉ

#2-1-2 ๊ฐ์ฒด ํ•ด์‹œ์ฝ”๋“œ hashCode() ๋ฉ”์„œ๋“œ

: ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ •์ˆ˜๊ฐ’ == hashCode

: hashCode() ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ  HashMap, HashSet์—์„œ๋„ ์‚ฌ์šฉ๋จ

: Hash ๊ด€๋ จ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋“ค์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ด ์ค˜์•ผ ์ •ํ™•ํ•œ ๊ฐ์ฒด ๋น„๊ต ๊ฐ€๋Šฅ

#2-1-3 ๊ฐ์ฒด ๋ฌธ์ž ์ •๋ณด toString() ๋ฉ”์„œ๋“œ

: toString() ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋ฌธ์ž ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ํด๋ž˜์Šค

: ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

 

#2-2 String ํด๋ž˜์Šค

: ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒดํ˜• ๋ฐ์ดํ„ฐ

: String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•˜๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ

#2-2-1 ๋ฌธ์ž ์ถ”์ถœ charAt() ๋ฉ”์„œ๋“œ

: ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด์—์„œ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Œ

#2-2-2 ๋ฌธ์ž์—ด ์ฐพ๊ธฐ indexOf() ๋ฉ”์„œ๋“œ

: ์ €์žฅ๋œ ๋ฌธ์ž์—ด ์ค‘์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๋Š” ํŠน์ • ๋‹จ์–ด or ๋ฌธ์žฅ์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์„œ๋“œ

: ๋งŒ์•ฝ ์ฐพ๋Š” ๋‹จ์–ด๊ฐ€ ์—†์œผ๋ฉด ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋Š” -1์„ ๋ฐ˜ํ™˜

: ๋‹จ์–ด๊ฐ€ ์ค‘๋ณต์œผ๋กœ ์žˆ์œผ๋ฉด, indexOf() ๋ฉ”์„œ๋“œ๋Š” ์ฒ˜์Œ ๊ฒ€์ƒ‰๋˜๋Š” ๋‹จ์–ด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ„

: ๋งˆ์ง€๋ง‰ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ๋Š” lastIndexOf() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

#2-2-3 ๋ฌธ์ž์—ด ๋ณ€ํ™˜ replace() / replaceAll ๋ฉ”์„œ๋“œ

: ํŠน์ • ๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด์„ ์›ํ•˜๋Š” ๋‹จ์–ด๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ๋Š” ๋ฉ”์„œ๋“œ

: ๊ธฐ๋Šฅ์ƒ์˜ ์ด์ ์œผ๋กœ ์ธํ•ด replaceAll์„ ์ฃผ๋กœ ์‚ฌ์šฉ

: replace ๊ธฐ๋Šฅ์€ ์›ํ•˜๋Š” ํ…์ŠคํŠธ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋กœ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ๋„์›€

// ๊ตฌํ˜„ ๋ฐฉ๋ฒ•
replaceAll(๋ณ€๊ฒฝ ๋Œ€์ƒ, ๋ณ€๊ฒฝํ•  ๋‹จ์–ด);

#2-2-4 substring ๋ฉ”์„œ๋“œ

: ์›ํ•˜๋Š” ์œ„์น˜์—์„œ ๋ฌธ์ž์—ด์„ ์ž˜๋ผ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ → ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด ์ค‘์—์„œ ํŠน์ • ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Œ

: ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋”ฐ๋ผ์„œ ๋‘๊ฐ€์ง€ ํƒ€์ž…์ด ์กด์žฌ

Type 1.
substring(int beginIndex)
Type 2.
substring(int beginIndex, int endIndex)

#2-3 StringBuffer์™€ StringBuilder

: StringBuffer์™€ StringBuilder๋Š” ๋‚ด๋ถ€์— ์—ฌ์œ  ๊ณต๊ฐ„์„ ๋‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž์—ด์„ ํ•ฉ์น  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ String๋ณด๋‹ค ํ˜„์ €ํžˆ ์ƒ๋žต ๊ฐ€๋Šฅ

: StringBuff๋Š” ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์Œ → ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๊ฒฝ์šฐ StringBuilder์˜ ์„ฑ๋Šฅ์ด ์ข‹์Œ

 

#2-4 Math ํด๋ž˜์Šค

: ์ˆ˜ํ•™์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์ˆ˜๋“ค๊ณผ ํ•จ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ˜„

: ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ชจ๋“  ๋ฉ”์„œ๋“œ == ์ •์  ๋ฉ”์„œ๋“œ

 

#2-5 Wrapper ํด๋ž˜์Šค

: ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค → ๊ธฐ๋ณธํ˜•์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํด๋ž˜์Šค๋กœ ํฌ์žฅํ•˜์—ฌ Wrapper

 

#2-5-1 AutoBoxing๊ณผ AutoUnBoxing

: Boxing → ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ Wrapper ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

: UnBoxing → Wrapper ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๊ฐ’์„ ๊ธฐ๋ณธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋กœ ๊บผ๋‚ด๋Š” ๊ณผ์ •

: JDK 1.5๋ถ€ํ„ฐ๋Š” ๋ฐ•์‹ฑ, ์–ธ๋ฐ•์‹ฑ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ → Auto++

 

#2-5-2 ๋ฌธ์ž ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜

: Wrapper ํด๋ž˜์Šค์—๋Š” ๋ฌธ์ž ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆซ์ž(์ •์ˆ˜ or ์‹ค์ˆ˜) ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Œ

 

#3 java.util ํŒจํ‚ค์ง€

#3-1 Calendar ํด๋ž˜์Šค ์„ ์–ธ

: ์ถ”์ƒ ํด๋ž˜์Šค → new ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ, ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ›์•„์˜ค๋Š” ํ˜•์‹์œผ๋กœ ์„ ์–ธ

: ์ถ”์ƒ ํด๋ž˜์Šค ์„ ์–ธ ์ด์œ  → ๋‚˜๋ผ, ์ง€์—ญ๋งˆ๋‹ค ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ

Calendar cal = new Calendar(); // ์—๋Ÿฌ
Calendar cal = Calendar.getInstance();