1. Checked Exception은 왜 생겨났고, 현재는 왜 안쓰는가?

  • 쇼규모 프로그램에서는 개발자의 생산성과 코드품질을 향상시킬 수 있으나, 일반적인 대규모 소프트웨어에서는 그렇지 않다.
  • 낮은 수준에서 발생하는 특정유형의 CheckedException 의 경우 (File I/O, Network, Database …) 일반적인 응용프로그램에서는 알 필요 없거나 알고싶지 않아한다. 만약 Exception을 캐치한다고 하더라도 적절하게 대응하기 힘든경우가 대부분이라 RuntimeException으로 rethrow처리하는 경우가 많다.
  • 코드의 확장성에 이슈가 생길수 있다. 단일 CheckedException 사용은 훌륭하게 동작하는것으로 보이나 4~5개의 서로다른 CheckedExcpetion을 사용하는 하위 API를 호출하는 경우 Exception 체인이 기하급수적으로 증가할 수 있다.
  • 반드시 예외 처리를 하는 코드를 작성해야 한다. 예외를 던지는 것은 모든 하위 메서드, 호출 트리에 누적되기 때문에 수많은 메서드를 조정해야 할 수도 있다.

2. Java 8 기준으로 GC는 어떻게 실행이 되는가? (heap young/old generation 동작 관점)

  • parellel GC
  • 멀티 스레드로 GC를 수행하기 때문에 stop-the-world 시간을 줄일 수 있다.
  • minor GC(young)에서 멀티 스레드를 사용한다.(후에는 major GC(old)에서도 멀티 스레드 사용)
  • https://www.youtube.com/watch?v=FMUpVA0Vvjw 참고

3. Java BigDecimal은 부동 소수점의 오류를 어떻게 해결하는가?

  • BigDecimal은 십진법을 사용하여 숫자를 저장한다.
  • 실수 타입인 double이나 float를 사용하지 않고 정수를 사용하여 소수를 다룬다. 
    • intVal : 정수부 값
    • precision : 정수부+소수부 길이
    • scale : 소수부 길이
    • stringCache : 숫자를 String으로 변환한 값
    • intCompact : 소수점을 제외한 전체 수(10.25 → 1025)

4. System.out.println 클래스를 절대 쓰지 말라고 하는데 이유가 무엇인가?

  • 이 클래스는 블로킹 I/O인데 동기화가 동작된다는 이유때문에 멀티스레드에서 락이 발생한다.
  • 출력이 완료될 때까지 실행이 멈추고 대기해야 하기 때문에 성능을 저하시킨다. 
  • 동기화 블록 안에서 블로킹 I/O 까지 일어난다면 대기가 계속 길어질 수 있다.

5. 메인 vs 엔티티

  • 도메인 : 특정한 문제 영역이나 분야
    • 사용자가 이용하는 앱의 기능, 회사의 비즈니스 로직을 정의하고 있는 영역
    • 유스케이스에서 한 액터가 수행하는 기능
    • 음식을 만드는 '행위'
  • 엔티티 : 도메인에서 식별 가능한 개별적인 객체나 개념 
    • 고유의 식별자를 갖는 객체로 자신의 라이프 사이클을 가진다.
    • 주문, 회원, 상품과 같이 도메인의 고유한 개념을 표현한다.
    • 도메인 모델의 데이터를 포함하며 해당 데이터와 관련된 기능을 함께 제공한다.
    • 음식 제작의 '데이터' 

※ 다음 주 예습 ※

1. HashMap

2. 스레드

https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4

 

👩‍💻 ‍완전히 정복하는 프로세스 vs 스레드 개념

한눈에 이해하는 프로세스 & 스레드 개념 전공 지식 없이 컴퓨터의 프로그램을 이용하는데는 문제 없어 왔지만 소프트웨어를 개발하는 사람으로서 컴퓨터 실행 내부 요소를 따져보게 될때, 아

inpa.tistory.com

3. I/O

4. Serializable, NIO

'공부 > f-lab' 카테고리의 다른 글

f-lab 8주차  (0) 2024.05.07
f-lab 7주차  (0) 2024.04.30
f-lab 5주차  (0) 2024.04.16
f-lab 4주차  (0) 2024.04.09
f-lab 3주차  (0) 2024.04.02

+ Recent posts