Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1096)

KoreanFoodie's Study

λΆ€μžμ˜ λΉ„κ²° : λˆμ€ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ λ²„λŠ” 것이닀 (feat. 에어비앀비, airbnb)

λˆμ€ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ λ²„λŠ” 것이닀. ν”νžˆλ“€ μ‚¬λžŒλ“€μ€ 'μ‰½κ²Œ λ“€μ–΄μ˜¨ λˆμ€ μ‰½κ²Œ λ‚˜κ°„λ‹€' λ”°μœ„μ˜ 말듀을 ν•˜λ©° 힘겨운 λ…Έλ™μ˜ κ°€μΉ˜μ— κ³Όλ„ν•œ μ˜λ―ΈλΆ€μ—¬λ₯Ό ν•œλ‹€. ν•˜μ§€λ§Œ μ‚¬λžŒλ“€μ€ 정말 힘겨운 노동을 ν†΅ν•œ 이윀 μ°½μΆœμ„ μ˜λ―Έμžˆλ‹€κ³  μ—¬κΈ°λŠ” 걸까? μ•„λ‹ˆλ‹€! μ‚¬λžŒλ“€μ€ 쉽고 νŽΈν•˜κ²Œ λˆμ„ 벌길 μ›ν•˜κ³ , μ‹¬μ§€μ–΄λŠ” 일을 ν•˜μ§€ μ•Šκ³ λ„ ν•˜λŠ˜μ—μ„œ 돈이 떨어지길 λΉˆλ‹€. μž μ‹€μ—­μ—λŠ” 맀일 볡ꢌλͺ…λ‹ΉμœΌλ‘œ μ•Œλ €μ§„ νŽΈμ˜μ μ— μ‚¬λžŒλ“€μ΄ 쀄을 μ„œκ³ , 곡짜 쿠폰, 곡짜 μ‚¬μ€ν’ˆμ„ λ°›κΈ° μœ„ν•΄ μž₯사진을 μΉ˜κΈ°λ„ ν•œλ‹€. μ‚¬λžŒλ“€μ΄ νž˜λ“€κ²Œ μΌν•΄μ„œ λ²Œμ–΄μ•Ό 돈이 μ•ˆ λΉ μ Έλ‚˜κ°„λ‹€κ³  슀슀둜의 μ²˜μ§€λ₯Ό μœ„λ‘œν•˜λŠ” 것은 μžκΈ°ν•©λ¦¬ν™”μ— 가깝닀. ν˜Ήμ€ λΆ€μžλ“€μ΄λ‚˜ μ—°μ˜ˆμΈλ“€μ„ 보며 'μ €λ ‡κ²Œ 번 λˆμ€ 금방 사라진닀'κ³  μ €μ£Όλ₯Ό νΌλΆ“λŠ” 것은 열등감과 질투의 ν‘œμΆœμ΄λ‹€. λΆ€μžλŠ” μœ„μ— 올린 μ‚¬μ§„μ²˜λŸΌ, '..

μž¬ν…Œν¬ 2021. 9. 20. 07:43
10-3. μžλ°” μ˜ˆμ™Έμ²˜λ¦¬ : μ‚¬μš©μž μ •μ˜ μ˜ˆμ™Έ, μ˜ˆμ™Έ 정보 μ–»κΈ°(getMessage, printStackTrace)

μ‚¬μš©μž μ •μ˜ μ˜ˆμ™Έμ™€ μ˜ˆμ™Έ λ°œμƒ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜λ‹€ 보면 μžλ°” ν‘œμ€€ APIμ—μ„œ μ œκ³΅ν•˜λŠ” μ˜ˆμ™Έ ν΄λž˜μŠ€λ§ŒμœΌλ‘œλŠ” λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ μ˜ˆμ™Έλ₯Ό ν‘œν˜„ν•  μˆ˜κ°€ μ—†λ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλΉ„μŠ€μ™€ κ΄€λ ¨λœ μ˜ˆμ™Έλ₯Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ˜ˆμ™Έ (Application Exception)이라고 ν•œλ‹€. μ΄λŠ” κ°œλ°œμžκ°€ 직접 μ •μ˜ν•΄μ„œ λ§Œλ“€μ–΄μ•Ό ν•˜λ―€λ‘œ μ‚¬μš©μž μ •μ˜ μ˜ˆμ™ΈλΌκ³ λ„ ν•œλ‹€. μ‚¬μš©μž μ •μ˜ μ˜ˆμ™Έ 클래슀 μ„ μ–Έ μ‚¬μš©μž μ •μ˜ μ˜ˆμ™Έ ν΄λž˜μŠ€λŠ” μ»΄νŒŒμΌλŸ¬κ°€ μ²΄ν¬ν•˜λŠ” 일반 μ˜ˆμ™Έλ‘œ μ„ μ–Έν•  μˆ˜λ„ 있고, μ»΄νŒŒμΌλŸ¬κ°€ μ²΄ν¬ν•˜μ§€ μ•ŠλŠ” μ‹€ν–‰ μ˜ˆμ™Έλ‘œ μ„ μ–Έν•  μˆ˜λ„ μžˆλ‹€. 일반 μ˜ˆμ™Έλ‘œ μ„ μ–Έν•  경우 Exception을, μ‹€ν–‰ μ˜ˆμ™Έλ‘œ μ„ μ–Έν•  경우 RuntimeException을 μƒμ†ν•˜λ©΄ λœλ‹€. public class SOME_Exception extends [ Exception | Run..

Tutorials/Java 2021. 9. 19. 09:49
10-1. μžλ°” μ˜ˆμ™Έμ²˜λ¦¬ : μžλ°” μ˜ˆμ™Έμ²˜λ¦¬ μ’…λ₯˜μ™€ 닀쀑 catch, λ©€ν‹° catch 예제

μ˜ˆμ™Έμ™€ μ˜ˆμ™Έ 클래슀 JVM 싀행에 λ¬Έμ œκ°€ 생겼을 λ•Œ, μš°λ¦¬λŠ” μ—λŸ¬λ₯Ό λ§ˆμ£Όν•˜κ²Œ λœλ‹€. μžλ°”μ—μ„œλŠ” μ—λŸ¬ 이외에 μ˜ˆμ™Έ(exception)라고 λΆ€λ₯΄λŠ” 였λ₯˜κ°€ μžˆλŠ”λ°, μ˜ˆμ™Έλž€ μ‚¬μš©μžμ˜ 잘λͺ»λœ μ‘°μž‘ λ˜λŠ” 개발자의 잘λͺ»λœ μ½”λ”©μœΌλ‘œ 인해 λ°œμƒν•˜λŠ” ν”„λ‘œκ·Έλž¨ 였λ₯˜λ₯Ό λ§ν•œλ‹€. μ˜ˆμ™Έκ°€ λ°œμƒλ˜λ©΄ ν”„λ‘œκ·Έλž¨μ€ κ³§λ°”λ‘œ μ’…λ£Œν•˜μ§€λ§Œ, μ˜ˆμ™Έ 처리(Exception Handling)을 톡해 ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œν•˜μ§€ μ•Šκ³  정상 μ‹€ν–‰ μƒνƒœκ°€ μœ μ§€λ˜λ„λ‘ ν•  수 μžˆλ‹€. μ˜ˆμ™ΈλŠ” 두 가지 μ’…λ₯˜κ°€ μžˆλ‹€. ν•˜λ‚˜λŠ” 일반 μ˜ˆμ™Έ(Exception)이고, λ‹€λ₯Έ ν•˜λ‚˜λŠ” μ‹€ν–‰ μ˜ˆμ™Έ(Runtime Exception)이닀. 일반 μ˜ˆμ™ΈλŠ” 컴파일러 체크 μ˜ˆμ™ΈλΌκ³ λ„ ν•˜λŠ”λ°, μžλ°” μ†ŒμŠ€λ₯Ό 컴파일 ν•˜λŠ” κ³Όμ •μ—μ„œ μ˜ˆμ™Έ 처리 μ½”λ“œκ°€ ν•„μš”ν•œμ§€ κ²€μ‚¬ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. λ§Œμ•½ μ˜ˆμ™Έ 처리 μ½”λ“œκ°€ ..

Tutorials/Java 2021. 9. 19. 08:10
9-2. μžλ°” 읡λͺ… 객체 : 읡λͺ… μžμ‹ 객체 생성과 κ΅¬ν˜„

읡λͺ… 객체 읡λͺ…(anonymous) κ°μ²΄λŠ” 이름이 μ—†λŠ” 객체λ₯Ό λ§ν•œλ‹€. 읡λͺ… κ°μ²΄λŠ” λ‹¨λ…μœΌλ‘œ 생성할 수 μ—†κ³  클래슀λ₯Ό μƒμ†ν•˜κ±°λ‚˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•΄μ•Όλ§Œ 생성할 수 μžˆλ‹€. 읡λͺ… κ°μ²΄λŠ” ν•„λ“œμ˜ μ΄ˆκΈ°κ°’μ΄λ‚˜ 둜컬 λ³€μˆ˜μ˜ μ΄ˆκΈ°κ°’, 맀개 λ³€μˆ˜μ˜ λ§€κ°œκ°’μœΌλ‘œ 주둜 λŒ€μž…λœλ‹€. UI 이벀트 처리 κ°μ²΄λ‚˜ μŠ€λ ˆλ“œ 객체λ₯Ό κ°„νŽΈν•˜κ²Œ 생성할 λͺ©μ μœΌλ‘œ 읡λͺ… 객체가 많이 ν™œμš©λœλ‹€. 읡λͺ… μžμ‹ 객체 생성 λΆ€λͺ¨ νƒ€μž…μœΌλ‘œ ν•„λ“œλ‚˜ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³ , μžμ‹ 객체λ₯Ό μ΄ˆκ°€κ°’μœΌλ‘œ λŒ€μž…ν•  경우λ₯Ό μƒκ°ν•΄λ³΄μž. μš°μ„  λΆ€λͺ¨ 클래슀λ₯Ό μƒμ†ν•΄μ„œ μžμ‹ 클래슀λ₯Ό μ„ μ–Έν•˜κ³ , new μ—°μ‚°μžλ₯Ό μ΄μš©ν•΄μ„œ μžμ‹ 객체λ₯Ό μƒμ„±ν•œ ν›„, ν•„λ“œλ‚˜ 둜컬 λ³€μˆ˜μ— λŒ€μž…ν•˜λŠ” 것이 기본이닀. class Child extends Parent { } // μžμ‹ 클래슀 μ„ μ–Έ class A { P..

Tutorials/Java 2021. 9. 18. 17:48
9-1. μžλ°” 쀑첩 ν΄λž˜μŠ€μ™€ 쀑첩 μΈν„°νŽ˜μ΄μŠ€ : 둜컬 클래슀

쀑첩 클래슀 쀑첩 클래슀λ₯Ό μ‚¬μš©ν•˜λ©΄ μ½”λ“œμ˜ λ³΅μž‘μ„±μ„ 쀄일 수 μžˆλ‹€! 쀑첩 ν΄λž˜μŠ€λŠ” 클래슀 내뢀에 μ„ μ–Έλ˜λŠ” μœ„μΉ˜μ— λ”°λΌμ„œ 두 κ°€μ§€λ‘œ λΆ„λ₯˜λœλ‹€. 클래슀의 λ©€λ²„λ‘œμ„œ μ„ μ–Έλ˜λŠ” 쀑첩 클래슀λ₯Ό 멀버 클래슀라고 ν•˜κ³ , λ©”μ†Œλ“œ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλ˜λŠ” 쀑첩 클래슀λ₯Ό 둜컬 클래슀라고 ν•œλ‹€. 멀버 ν΄λž˜μŠ€λŠ” 객체가 μ‚¬μš© μ€‘μΌλ•ŒλŠ” μ–Έμ œλ“ μ§€ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ, 둜컬 ν΄λž˜μŠ€λŠ” λ©”μ†Œλ“œ μ‹€ν–‰ μ‹œμ—λ§Œ μ‚¬μš©λ˜κ³ , λ©”μ†Œλ“œκ°€ μ‹€ν–‰ μ’…λ£Œλ˜λ©΄ 없어진닀. public class A { class B {...} // μΈμŠ€ν„΄μŠ€ 멀버 클래슀 static class C {...} // 정적 멀버 클래슀 void method() { class D {...} } // 둜컬 클래슀 } 멀버 ν΄λž˜μŠ€λ„ ν•˜λ‚˜μ˜ 클래슀이기 λ•Œλ¬Έμ— μ»΄νŒŒμΌν•˜λ©΄ λ°”μ΄νŠΈ μ½”λ“œ 파일(.clas..

Tutorials/Java 2021. 9. 17. 17:58
8-2. μžλ°” μΈν„°νŽ˜μ΄μŠ€ : μΈν„°νŽ˜μ΄μŠ€ 상속, λ””ν΄νŠΈ λ©”μ†Œλ“œμ™€ μΈν„°νŽ˜μ΄μŠ€ ν™•μž₯

μΈν„°νŽ˜μ΄μŠ€ 상속 μΈν„°νŽ˜μ΄μŠ€λ„ λ‹€λ₯Έ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속할 수 μžˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” ν΄λž˜μŠ€μ™€λŠ” 달리 닀쀑 상속을 ν—ˆμš©ν•œλ‹€. λ‹€μŒκ³Ό 같이 extends ν‚€μ›Œλ“œ 뒀에 상속할 μΈν„°νŽ˜μ΄μŠ€λ“œμ„ λ‚˜μ—΄ν•  수 μžˆλ‹€. public interface ν•˜μœ„μΈν„°νŽ˜μ΄μŠ€ extends μƒμœ„μΈν„°νŽ˜μ΄μŠ€1, μƒμœ„μΈν„°νŽ˜μ΄μŠ€2 {...} ν•˜μœ„ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” ν΄λž˜μŠ€λŠ” ν•˜μœ„ μΈν„°νŽ˜μ΄μŠ€μ˜ λ©”μ†Œλ“œ 뿐만 μ•„λ‹ˆλΌ μƒμœ„ μΈν„°νŽ˜μ΄μŠ€μ˜ λͺ¨λ“  좔상 λ©”μ†Œλ“œμ— λŒ€ν•œ 싀체 λ©”μ†Œλ“œλ₯Ό κ°–κ³  μžˆμ–΄μ•Ό ν•œλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— κ΅¬ν˜„ ν΄λž˜μŠ€λ‘œλΆ€ν„° 객체λ₯Ό μƒμ„±ν•˜κ³  λ‚˜μ„œ λ‹€μŒκ³Ό 같이 ν•˜μœ„ 및 μƒμœ„ μΈν„°νŽ˜μ΄μŠ€ νƒ€μž…μœΌλ‘œ λ³€ν™˜μ΄ κ°€λŠ₯ν•˜λ‹€. ν•˜μœ„μΈν„°νŽ˜μ΄μŠ€ λ³€μˆ˜ = new κ΅¬ν˜„ν΄λž˜μŠ€(...); μƒμœ„μΈν„°νŽ˜μ΄μŠ€1 λ³€μˆ˜ = new κ΅¬ν˜„ν΄λž˜μŠ€(...); μƒμœ„μΈν„°νŽ˜μ΄μŠ€2 λ³€μˆ˜ = new κ΅¬ν˜„ν΄λž˜..

Tutorials/Java 2021. 9. 15. 23:37
8-1. μžλ°” μΈν„°νŽ˜μ΄μŠ€μ˜ μ—­ν• κ³Ό μ„ μ–Έ, κ΅¬ν˜„ 예제 μ‚΄νŽ΄λ³΄κΈ°

μΈν„°νŽ˜μ΄μŠ€μ˜ μ—­ν•  μΈν„°νŽ˜μ΄μŠ€λŠ” 객체의 μ‚¬μš© 방법을 μ •μ˜ν•œ νƒ€μž…μ΄λ‹€. 개발 μ½”λ“œκ°€ 쀑간에 μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‘λŠ” μ΄μœ λŠ”, 개발 μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ , μ‚¬μš©ν•˜λŠ” 객체λ₯Ό λ³€κ²½ν•  수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” ν•˜λ‚˜μ˜ 객체가 μ•„λ‹ˆλΌ μ—¬λŸ¬ 객체듀과 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ―€λ‘œ μ–΄λ–€ 객체λ₯Ό μ‚¬μš©ν•˜λŠλƒμ— 따라 μ‹€ν–‰ λ‚΄μš©κ³Ό 리턴값이 λ‹€λ₯Ό 수 μžˆλ‹€. λ”°λΌμ„œ 개발 μ½”λ“œ μΈ‘λ©΄μ—μ„œ μ½”λ“œ λ³€κ²½ 없이 μ‹€ν–‰ λ‚΄μš©κ³Ό 리턴값을 λ‹€μ–‘ν™”ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€. μΈν„°νŽ˜μ΄μŠ€ μ„ μ–Έ μΈν„°νŽ˜μ΄μŠ€λŠ” "~.java" ν˜•νƒœμ˜ μ†ŒμŠ€ 파일둜 μž‘μ„±λ˜κ³  컴파일러(javac.exe)λ₯Ό 톡해 "~.class" ν˜•νƒœλ‘œ 컴파일되기 λ•Œλ¬Έμ— 물리적 ν˜•νƒœλŠ” ν΄λž˜μŠ€μ™€ λ™μΌν•˜λ‹€. public interface InterfaceName { ... } μΈν„°νŽ˜μ΄μŠ€λŠ” μƒμˆ˜μ™€ λ©”μ†Œλ“œλ§Œμ„..

Tutorials/Java 2021. 9. 15. 17:58
7. μžλ°”μ˜ 상속 : νƒ€μž… λ³€ν™˜κ³Ό λ‹€ν˜•μ„±

νƒ€μž… λ³€ν™˜κ³Ό λ‹€ν˜•μ„± (Polymorphism) λ‹€ν˜•μ„±μ€ 같은 νƒ€μž…μ΄μ§€λ§Œ μ‹€ν–‰ κ²°κ³Όκ°€ λ‹€μ–‘ν•œ 객체λ₯Ό μ΄μš©ν•  수 μžˆλŠ” μ„±μ§ˆμ„ λ§ν•œλ‹€. μžλ™ νƒ€μž… λ³€ν™˜(Promotion) μžλ™ νƒ€μž… λ³€ν™˜μ˜ κ°œλ…μ€ μžμ‹μ€ λΆ€λͺ¨μ˜ νŠΉμ§•κ³Ό κΈ°λŠ₯을 상속받기 λ•Œλ¬Έμ— λΆ€λͺ¨μ™€ λ™μΌν•˜κ²Œ 취급될 수 μžˆλ‹€λŠ” 것이닀. // Vehicle μžλ™ νƒ€μž… λ³€ν™˜μ΄ λ°œμƒν•œλ‹€! 즉, 맀개 λ³€μˆ˜μ˜ νƒ€μž…μ΄ 클래슀일 경우, ν•΄λ‹Ή 클래슀의 객체뿐만 μ•„λ‹ˆλΌ μžμ‹ κ°μ²΄κΉŒμ§€λ„ λ§€κ°œκ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€! λ§€κ°œκ°’μœΌλ‘œ μ–΄λ–€ μžμ‹ 객체가 μ œκ³΅λ˜λŠλƒμ— 따라 λ©”μ†Œλ“œμ˜ μ‹€ν–‰ κ²°κ³ΌλŠ” λ‹€μ–‘ν•΄μ§ˆ 수 μžˆλ‹€(맀개 λ³€μˆ˜μ˜ λ‹€ν˜•μ„±). μžμ‹ 객체가 λΆ€λͺ¨μ˜ λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜(μ˜€λ²„λΌμ΄λ”©)ν–ˆλ‹€λ©΄ λ©”μ†Œλ“œ λ‚΄λΆ€μ—μ„œ μ˜€λ²„λΌμ΄λ”©λœ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•¨μœΌλ‘œμ¨ λ©”μ†Œλ“œμ˜ μ‹€ν–‰ κ²°κ³ΌλŠ” 닀양해진닀. κ°•μ œ νƒ€μž… λ³€ν™˜ κ°•μ œ ..

Tutorials/Java 2021. 9. 15. 00:08
6-3. μ–΄λ…Έν…Œμ΄μ…˜(Annotation) : μžλ°” μ–΄λ…Έν…Œμ΄μ…˜ κ°œλ…κ³Ό 예제

μ–΄λ…Έν…Œμ΄μ…˜ μ–΄λ…Έν…Œμ΄μ…˜μ€ 메타데이터라고 볼수 μžˆλ‹€. @AnnotationName μ–΄λ…Έν…Œμ΄μ…˜μ€ λ‹€μŒ μ„Έ 가지 μš©λ„λ‘œ μ‚¬μš©λœλ‹€. 1. μ»΄νŒŒμΌλŸ¬μ—κ²Œ μ½”λ“œ 문법 μ—λŸ¬λ₯Ό μ²΄ν¬ν•˜λ„λ‘ 정보λ₯Ό 제곡 2. μ†Œν”„νŠΈμ›¨μ–΄ 개발 툴이 λΉŒλ“œλ‚˜ 배치 μ‹œ μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ 생성할 수 μžˆλ„λ‘ 정보λ₯Ό 제곡 3. μ‹€ν–‰ μ‹œ(λŸ°νƒ€μž„ μ‹œ) νŠΉμ • κΈ°λŠ₯을 μ‹€ν–‰ν•˜λ„λ‘ 정보λ₯Ό 제곡 λŒ€ν‘œμ μœΌλ‘œλŠ” @Overrideκ°€ μžˆλ‹€. (상속 λ©”μ†Œλ“œ μž¬μ •μ˜ μ‹œ) μ–΄λ…Έν…Œμ΄μ…˜ νƒ€μž… μ •μ˜μ™€ 적용 μ–΄λ…Έν…Œμ΄μ…˜ νƒ€μž…μ˜ μ •μ˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•˜λŠ” 것과 μœ μ‚¬ν•˜λ‹€. λ‹€μŒκ³Ό 같이 @interfaceλ₯Ό μ‚¬μš©ν•΄μ„œ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ •μ˜ν•˜λ©°, κ·Έ 뒀에 μ‚¬μš©ν•  μ–΄λ…Έν…Œμ΄μ…˜ 이름이 μ˜¨λ‹€. public @interface AnnotationName { νƒ€μž… elementName() [default κ°’]..

Tutorials/Java 2021. 9. 14. 17:23