Back-End
Integer μ λ°μ΄νΈλ ?
- 4 Byte
short integer μ μ΅ν / μ΅μ κ°μ ?
- -32,768 ~ 32,767
unsigned Integer λ ?
- μΌλ°μ μΌλ‘ unsigned int λ λΆνΈλΉνΈλ₯Ό κ° λΉνΈλ‘ μΈμ μμ΄μ 2^32 -1 (4294967295) κ°μ κ°μ§λ€.
- Java μμλ unsigned int κ°μ΄ μμΌλ©° long μΌλ‘ λ체νμ¬ μ¬μ©νλ€.
Compiler μ Interpreter μ μ°¨μ΄μ
- Compiler λ λ¬Έμ μ 체λ₯Ό λ€ μ½μ΄ κΈ°κ³μ΄λ‘ λ²μνλ€. (ꡬ문 -> λͺ©μ νλ‘κ·Έλ¨)
- Interpreter λ νμ€νμ€ ν λ¨μλ‘ μ½μ΄μ μ²λ¦¬νλ€. (ꡬ문 -> λͺ λ Ήλ¬Έ)
Java μμ instanceof μ°μ°μλ ?
- μ°Έμ‘° λ³μκ° μ€μ λ‘ μ°Έμ‘°νκ³ μλ μΈμ€ν΄μ€μ μ€μ νμ μ μμ보기 μν΄ instanceof μ°μ°μλ₯Ό μ¬μ©
JVM κ³Ό Runtime Area μμμ λν΄μ μ€λͺ
Java Byte Code λ₯Ό μ€νν μ μλ νλ‘μΈμ€ κ°μ λ¨Έμ μ΄λ€.
κ°μλ¨Έμ μ νΉμ±μΌλ‘ OS μ μ’ μμ μ΄μ§ μμ λ 립μ μΌλ‘ μ΄μλλ€.
μ€ν μμλ λ€μκ³Ό κ°λ€.
Java Fileμ΄Java Compilerμ μν΄ Class File λ‘ μ»΄νμΌ λλ€.Class Loaderμ μν΄ λ°μ΄ν°λ€μ΄Runtime Areaμ λ‘λλλ€.Runtime Areaμμλ μμλ³λ‘ κΈ°λ₯μ λΆλ΄νμ¬ μ²λ¦¬λλ€.Method Area- Class, Interface, Method, Field λ±μ μ λ³΄κ° λ³΄κ΄λλ€.
- μν¬νΈλ ν΄λμ€κ° λ‘λλλ μμμ΄λ€.
- λͺ¨λ Thread κ° κ³΅μ νλ λ©λͺ¨λ¦¬ μμμ΄λ€.
Heap Area- μ΄ν리μΌμ΄μ μμμ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄ λμ μΌλ‘ μ¬μ© λ° ν λΉλλ λ©λͺ¨λ¦¬ μμμ΄λ€.
Method Areaμ λ‘λλ ν΄λμ€λ§ μμ± κ°λ₯νλ©° ν΄λμ€ μ 보λ₯Ό μ°Έκ³ νμ¬ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ³³μ΄λ€.- Garbage Collection μ΄ μΌμ΄λλ μμμ΄λ€.
Stack Area- Method κ° νΈμΆλ λ λ§λ€
Stack Frameμ΄λΌλ λ°μ΄ν° μμμ΄ μμ±νμ¬ κ΅¬μ± - Method μ μ 보, μ§μλ³μ, νλΌλ©ν° μ 보λ±μ μμλ°μ΄ν°κ° μ μ₯λλ 곡κ°μ΄λ€.
- Thread λ³λ‘ κ°κ° ꡬμ±λλ€.
- Method κ° νΈμΆλ λ νμλ‘ νλ λ³μλ₯Ό Stack μ μ μ₯νκ² λκ³ , Method μ€νμ΄ λλλ©΄ Stack μ λ°ννλ€.
- Method κ° νΈμΆλ λ λ§λ€
PC Register- μ€νμ€μΈ κ°κ°μ Thread λ λ³λμ PC Register λ₯Ό κ°μ§λ©°, λͺ λ Ήμ΄ μ€νλλ©΄ νμ¬ μ€νμ€μΈ λͺ λ Ήμ μ£Όμλ₯Ό μ μ§νλ€.
Native Method Stack- JNI λ₯Ό ν΅νμ¬ C/C++ λ±μ μ½λλ₯Ό μννκΈ° μν Stack
JVM λ΄μ Runtime Area μ μνλ λ©λͺ¨λ¦¬ μμμ€μ΄ νλμ΄λ€.
Java Fileμ΄Java Compilerμ μν΄ Class File λ‘ μ»΄νμΌ λλ©΄Class Loaderμ μν΄ λ‘λλ λ°μ΄ν°λ€μ΄ μ ν리μΌμ΄μ μ μνμμ νλ©° μ¬μ©λλ μ μ₯ λ° μ°Έμ‘° λ©λͺ¨λ¦¬ μμμ΄λ€.Stack
- λΉ λ₯Έμ κ·Ό, cpu μ μν΄ κ΄λ¦¬, μ§μ λ ν¬κΈ°, resize λΆκ°
- μ€λ λ λ³λ‘ 곡μ νμ§ μμ
- μλ ν΄μ
Heap
- μ μμ μΌλ‘ μ κ·Ό κ°λ₯, λ©λͺ¨λ¦¬ ν¬κΈ° μ ν μμ, resize κ°λ₯νλ ννΈνκ° κ°λ₯
- μλ‘ λ€λ₯Έ μ€λ λκ° μ κ·Ό κ°λ₯
- ννΈν κ°λ₯μ±
- μλ ν΄μ
Quick Sort λ 무μμ΄κ³ μκ°λ³΅μ‘λλ μ΄λ»κ² λλμ§ μ€λͺ
- μΌλ°μ μΌλ‘ μ λ ¬ μκ³ λ¦¬μ¦μ€μμ λΉ λ₯΄λ€κ³ μλ €μ§ μκ³ λ¦¬μ¦
- μκ° λ³΅μ‘λ
- Best : n log n
- Worst : n^2
- Average : n log n
- Pivot μ νλ Έλκ° μλμ μν₯μ μ€ μ μμ
Java μμ public static void main( ... ) μΌλ‘ μμν λ public κ³Ό static μ λΆμ΄λ μ΄μ λ ?
- λ©μΈ λ©μλλ μ§μ
μ (Entry Point) λ₯Ό λ»νλ©° μ κ·Όμ μ΄μκ°
publicμ΄ λμ΄μΌ ν¨ - ν¨μμ static μ λΆμ΄κ² λλ©΄ instance ν λκΈ° μ μ νΈμΆ κ°λ₯νλ€.
- ν΄λμ€ λ©€λ²λ λ©λͺ¨λ¦¬μ λ‘λ©λ λ€μμ μ¬μ©μ΄ κ°λ₯νλ€
- main ν¨μλ νλ‘κ·Έλ¨ μ΅μ΄μ νΈμΆλλ ν¨μμ΄κΈ° λλ¬Έμ κ°μ²΄ μμ± μ΄μ μ νΈμΆν μ μμ΄μΌ νλ€.
- static μ΄ λΆμ ν΄λμ€λ λ©μλ, λ³μλ μ»΄νμΌμ μλμΌλ‘ λ‘λ©
κ΄μ¬μ λΆλ¦¬ (Separation Of Concern) μ λν΄ μ€λͺ νκ³ μλ₯Ό λ€μ΄ μ€λͺ
- μλΉμ€ μ§ν₯ μν€ν μ³ (SOA : Service-Oriented Architecture) μ ν΅μ¬ μμΉ
- κ΄μ¬μ΄ κ°μκ²μ λμΉκ³ κ΄μ¬μ¬κ° λ€λ₯Έκ²μ μλ‘ λ¨μ΄μ Έ μν₯μ μ£Όμ§ μλλ‘ μ€κ³ λ° κ΅¬νμ νλκ²
AOP μ΄λ ?
- μ½λμ μ¬μ¬μ©μ ν΅ν΄ ν¨μ¨μ μ¬λ¦¬κΈ° μνμ¬ μΈνλΌ λ‘μ§ κ°μ 곡ν΅λ‘μ§κ³Ό λΉμ§λμ€ μ½λμ κ°μ ν΅μ¬ λ‘μ§μ λΆλ¦¬νμ¬ κ΅¬μ±νλκ²
- λ‘μ§μ λΆλ¦¬λ₯Ό ν΅νμ¬ ν΅μ¬ λ‘μ§μλ μν₯μ λ―ΈμΉμ§ μκ³ κ°λ°νλ λ°©λ²
- λΉμ§λμ€ λ‘μ§κ³Ό 곡ν΅λͺ¨λμ λΆλ¦¬νμ¬ ν΅μ¬λ‘μ§μ μν₯μ λ―ΈμΉμ§ μκ³ μ¬μ΄μ¬μ΄μ 곡ν΅λͺ¨λμ ν¨κ³Όμ μΌλ‘ μ λΌμλ£λ κ°λ°λ°©λ²
- 곡ν΅λͺ¨λμ 보μ, μΈμ¦, λ‘κΉ κ°μ κ²μ λ§λ νμ μ½λ λ°μμ μ΄ λͺ¨λμ λΉμ§λμ€ λ‘μ§μ μ½μ νλκ²μ΄ AOP κ°λ° λ°©λ²μ΄λ€.
- μ½λ λ°μμ μ€μ λλ€λκ²μ΄ ν΅μ¬μ΄λ©° νλ‘κ·Έλ¨ νλ¦μ νμ νκΈ° νλ€κΈ° λλ¬Έμ AOP μ¬μ©μ΄ λ§μμ§κ²½μ° μ μ§λ³΄μκ° μ΄λ ΅λ€.
BDD λ 무μμ΄κ³ TDD μ μ΄λ€ μ°κ΄μ΄ μλ ?
- Behavior Driven Development (νμ μ£Όλ κ°λ°) μ μ½μμ΄λ€.
- BDD λ μννΈμ¨μ΄μ μνμ μν κ²μΌλ‘ TDD μ κ·Όλ²μ μ ννκ²μ΄λ€.
String vs StringBuffer μ°¨μ΄μ μ ?
StringClass μΈ κ²½μ° Character μ‘°μμ μν κ²μ΄λ©° λ¨μν μνκ°μ κ°μ§κ³ μλ λΆλ³ μμ±μ΄λ€.StringBufferClass μΈ κ²½μ° λ¬Έμμ΄μ μ¬κ΅¬μ±νκΈ° μν κ²μ΄λ©° μμ μ΄ κ°λ₯νλ€.StringBuilderλ λ³κ²½ κ°λ₯ν λ¬Έμμ΄λ‘ synchronization μ΄ μ μ©λμ§ μλλ€.StringBufferλ λ©ν°μ°λ λ νκ²½μμ μμ μ μ΄λ€.
CheckedException κ³Ό UncheckedException μ μ°¨μ΄μ μ©λλ₯Ό μ€λͺ
- Checked Exception
- μΈλΆμν©μ μν΄ λ―Έλ¦¬ μμ κ°λ₯ν μ€λ₯μ΄λ€
- μ) λμ€ν¬ μ€λ₯, λ€νΈμν¬ μ€λ₯λ± λ‘μ§ μμ μ€λ₯μλ 무κ΄νκ² λ°μνλ μλ¬.
- IOException, ClassNotFoundException, CloneNotSupportedExceptionλ±λ±
- RuntimeExceptionμ μ μΈν Exceptionμ μ§μ μμν λͺ¨λ μμΈ ν΄λμ€λ Checked Exception.
- Unchecked Exception
- νλ‘κ·Έλ¨ λ‘μ§ μμ λ¬Έμ λ‘ μΈν΄ μκΈ°λ μ€λ₯μ΄λ€.
- RuntimeException μ΄ν λͺ¨λ νμν΄λμ€λ Unchecked exceptionμ΄λ€.
- λ°μν μμΈμ λνμ¬ λ°λμ μ½λμμμ μμΈ μ²λ¦¬λ₯Ό νλλ‘ μꡬνμ§ μλλ€.
- NullPointerExceptionμ κ²½μ° nullμ μ°Έμ‘°νλ €λ μλλ νλ‘κ·Έλ¨ μ½λ μμ²΄κ° μλͺ»λ κ².
- μ΄λ° μλ°© ν μ μλ μ€λ₯ 쑰건λ€μ λ‘μ§ μμμ μ²λ¦¬λ₯Ό μꡬ
κ°μ²΄ μ¬μ¬μ©μ΄λ 무μμΈκ° ?
- Singleton Instance μ κ°μ΄ μ΅μ΄μ νλ² μμ±ν ν μ¬μ¬μ©νλ κ²
- ThreadPool, ConnectionPool λ± μ΄μΈμλ μ½λλ΄μμ κ°μ²΄λ₯Ό μ¬μ¬μ©νλ λ°©λ²μ΄ μλ€.
StringBuffer sb = new StringBuffer();
sb.append(βdata1β);
System.out.println(sb);
sb.setLength(0);
μ°Έκ³ μλ£