day25 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 7μ›” 8일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
25/129

[λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ 지식] μ„Ήμ…˜ 2 μˆ˜κ°•

μ„Ήμ…˜ 2. URI와 μ›Ή λΈŒλΌμš°μ € μš”μ²­ 흐름 μˆ˜κ°• μ™„λ£Œ!!

URL βŠ‚ URI, URN βŠ‚ URI

URL: Uniform Resource Locator ➑️ λ¦¬μ†ŒμŠ€κ°€ μžˆλŠ” μœ„μΉ˜λ₯Ό 지정
URN: Uniform Resource Name ➑️ λ¦¬μ†ŒμŠ€μ— 이름을 λΆ€μ—¬

URN은 μ΄λ¦„λ§ŒμœΌλ‘œ μ‹€μ œ λ¦¬μ†ŒμŠ€λ₯Ό 찾을 수 μžˆλŠ” 방법이 λ³΄νŽΈν™” λ˜μ§€ μ•Šμ•„ 잘 쓰이지 μ•ŠλŠ”λ‹€.

URL

scheme://[userinfo@]host[:port][/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hl=ko

  • scheme
    주둜 ν”„λ‘œν† μ½œ μ‚¬μš© (http, https, ftp λ“±)

  • userinfo
    URL에 μ‚¬μš©μž 정보λ₯Ό ν¬ν•¨ν•΄μ„œ 인증
    거의 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ

  • host
    도메인λͺ… λ˜λŠ” IP μ£Όμ†Œλ₯Ό 직접 μ‚¬μš© κ°€λŠ₯

  • query
    key=value ν˜•νƒœ
    ?둜 μ‹œμž‘, &둜 μΆ”κ°€ κ°€λŠ₯ ?keyA=valueA&keyB=valueB


Java의 Object

μžλ°”μ˜ λͺ¨λ“  ν΄λž˜μŠ€λŠ” Object 클래슀λ₯Ό μƒμ†λ°›λŠ”λ‹€.
즉, Object ν΄λž˜μŠ€λŠ” μžλ°”μ˜ μ΅œμƒμœ„ ν΄λž˜μŠ€λ‹€.

μ»΄νŒŒμΌλŸ¬λŠ” μ•„λ¬΄λŸ° 클래슀둜 μƒμ†ν•˜μ§€ μ•ŠμœΌλ©΄ μžλ™μœΌλ‘œ extends Objectλ₯Ό μ‚½μž…ν•΄ Object 클래슀λ₯Ό μƒμ†ν•œλ‹€.

class A {

}
class B extends A {

}

μœ„μ™€ 같이 클래슀 Aλ₯Ό 상속받아 Bλ₯Ό λ§Œλ“€μ—ˆμ„ λ•Œ λΆ€λͺ¨ 클래슀인 AλŠ” 아무것도 μƒμ†ν•˜μ§€ μ•Šμ•˜λ‹€. μ΄λ ‡κ²Œ 되면 μ»΄νŒŒμΌλŸ¬λŠ” extends Objectλ₯Ό μ‚½μž…ν•˜κ³  κ²°κ΅­ Object ← A ← B의 상속 관계가 λ§Œλ“€μ–΄μ§„λ‹€.

class A extends Object {

}
상속을 ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ extends Objectλ₯Ό μžλ™μœΌλ‘œ μΆ”κ°€

λ”°λΌμ„œ μžλ°”μ˜ λͺ¨λ“  ν΄λž˜μŠ€λŠ” μ–΄λ–€ 객체둜 λ§Œλ“€λ“ μ§€ Object νƒ€μž…μœΌλ‘œ μ„ μ–Έν•  수 μžˆλ‹€.

  • 예: Object oa = new A();

println() λ©”μ„œλ“œλŠ” λ‹€μ–‘ν•œ νƒ€μž…μ„ 좜λ ₯ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 개의 μž…λ ₯λ§€κ°œλ³€μˆ˜ νƒ€μž…μœΌλ‘œ μ˜€λ²„λ‘œλ”©λΌ μžˆλ‹€.

System.out.println(new A())와 같이 μ‚¬μš©μžκ°€ 직접 λ§Œλ“  클래슀 νƒ€μž…λ„ 좜λ ₯ν•  수 μžˆλ‹€. 이것이 κ°€λŠ₯ν•œ μ΄μœ λŠ” λ¬΄μ—‡μΌκΉŒ?

⬆️ μžλ°” API에 포함돼 μžˆλŠ” println(Object x) μ˜€λ²„λ‘œλ”© λ©”μ„œλ“œ

System.out.println(Object x)κ°€ λ°”λ‘œ κ·Έ 해닡이닀.

즉, κΈ°λ³Έ μžλ£Œν˜• 이외에 Objectλ₯Ό μž…λ ₯λ§€κ°œλ³€μˆ˜λ‘œ ν•˜λŠ” println() λ©”μ„œλ“œλ₯Ό μ˜€λ²„λ‘œλ”©ν•΄ 놓은 것이닀.

μ΄λ ‡κ²Œ 되면 μ‚¬μš©μžκ°€ μ–΄λ–€ 클래슀 νƒ€μž…μ˜ 객체λ₯Ό μƒμ„±ν•˜λ”λΌλ„ λ‹€ν˜•μ„±μ— 따라 Object νƒ€μž…μ΄λΌκ³  뢈릴 수 μžˆμœΌλ―€λ‘œ μž…λ ₯λ§€κ°œλ³€μˆ˜λ‘œ λͺ¨λ“  νƒ€μž…μ˜ 객체λ₯Ό 받아듀일 수 μžˆλŠ” 것이닀.


Object 클래슀의 μ£Όμš” λ©”μ„œλ“œ

λ°˜ν™˜ νƒ€μž…λ©”μ„œλ“œλͺ…μ£Όμš” λ‚΄μš©
StringtoString()- 객체 정보λ₯Ό λ¬Έμžμ—΄λ‘œ 좜λ ₯ (νŒ¨ν‚€μ§€.클래슀λͺ…@ν•΄μ‹œμ½”λ“œ)
- 일반적으둜 μ˜€λ²„λΌμ΄λ”©ν•΄μ„œ μ‚¬μš©
booleanequals(Object obj)- μž…λ ₯λ§€κ°œλ³€μˆ˜ obj 객체와 stack λ©”λͺ¨λ¦¬κ°’(λ²ˆμ§€) 비ꡐ
- λ“±κ°€ 비ꡐ μ—°μ‚°μž ==와 λ™μΌν•œ κ²°κ³Ό
inthashCode()- 객체의 hashCode() κ°’ 리턴
- Hashtable, HashMap λ“±μ˜ 동등 비ꡐ에 μ‚¬μš©
- μœ„μΉ˜κ°’μ„ 기반으둜 μƒμ„±λœ κ³ μœ κ°’

μŠ€νƒ λ©”λͺ¨λ¦¬ 값을 λΉ„κ΅ν•œλ‹€λŠ” 것은 κΈ°λ³Έ μžλ£Œν˜•μΌ 땐 값을 λΉ„κ΅ν•˜κ³ , μ°Έμ‘° μžλ£Œν˜•μΌ 땐 객체의 μœ„μΉ˜κ°’(λ²ˆμ§€κ°’)을 λΉ„κ΅ν•œλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

λ˜ν•œ println() λ©”μ„œλ“œλŠ” 객체λ₯Ό 좜λ ₯ν•˜λ©΄ μžλ™μœΌλ‘œ 객체 λ‚΄μ˜ toString() λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œλ‹€.

λ”°λΌμ„œ System.out.println(aa)λŠ” System.out.println(aa.toString())κ³Ό 같은 ν‘œν˜„μ΄λ‹€.


참고 자료

κΉ€λ™ν˜•, Do it! μžλ°” μ™„μ „ 정볡


이것저것 λ§ˆλ¬΄λ¦¬ν•˜κΈ°

βœ”οΈ 일단 계산기 PR 올림... μ§€κΈˆ λͺ¨λ₯΄κ² λŠ” 건 Split을 μ–΄λ””μ„œ ν• μ§€λž‘, Stream μ“°λŠ” 방법...
βœ”οΈ [λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ 지식] μ„Ήμ…˜ 0, 1 μˆ˜κ°• μ™„λ£Œ
βœ”οΈ [μŠ€ν”„λ§ 핡심 원리 - 기본편] μ„Ήμ…˜ 9 정리 μ™„λ£Œ
βœ”οΈ 22. 07. 09. 01:58 - DTO 정리 μ™„λ£Œ

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보