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 μ—°μ‚°μžλ₯Ό μ‚¬μš©

Stack κ³Ό Heap Memory μž₯단점과 ν•΄μ œ 방법을 μ„€λͺ…

  • 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 차이점은 ?

  • String Class 인 경우 Character μ‘°μž‘μ„ μœ„ν•œ 것이며 λ‹¨μˆœν•œ μƒνƒœκ°’μ„ 가지고 μžˆλŠ” λΆˆλ³€ 속성이닀.

  • StringBuffer Class 인 경우 λ¬Έμžμ—΄μ„ μž¬κ΅¬μ„±ν•˜κΈ° μœ„ν•œ 것이며 μˆ˜μ •μ΄ κ°€λŠ₯ν•˜λ‹€.

  • 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);