Skip to content

2주차 금요일 그룹 4

KyuWon Kim edited this page Jul 6, 2024 · 2 revisions

오민석

  • submit → 비동기 처리에서 사용할 Feature를 리턴합니다. 즉, 내부에서는 execute 씁니다.
  • assertJ를 통해서 사용하는 assertThat의 차이점을 더 공부해야할 것 같습니다.
  • 빌더 패턴을 사용하면 안될 때를 알아봐야 할 것 같습니다.

김민주

  • byte[] 배열 버퍼 길이 1024로 했을 때 문제 생기는건 String으로 바꾸다가 오류생기는거같음
    • UTF-8 같은 가변 길이 인코딩을 사용할 때, 버퍼의 끝에서 문자 경계가 깨질 수 있다고함
    • byte 배열을 String으로 변환할 때 잘못된 문자열이 생성되거나, MalformedInputException 같은 오류가 발생할 수 있음
  • ExecutorService나 ThreadPoolExecutor중 어떤걸로 해야할지
    • ExeucotrService는 인터페이스이기때문에 메서드가 제한됨
  • ExecutorService에서 submit과 execute의 차이
    • executorService submit 메서드 까보면 내부적으로 Future로 wrapping하고 있음
    • 그래서 작업의 결과가 필요하면 submit을 사용하고, 그렇지 않으면 execute를 사용
  • 301과 302의 의미차이
    • 301은 영구 리다이렉션을 의미해서, 클라이언트는 이후 요청부터 새로운 URL을 사용해야함
    • 302는 일시적 리다이렉션을 의미해서, 클라이언트는 다음 요청에서 원래 URL을 다시 사용할 수 있음
  • threadExecutor prestartAllCoreThreads로 thread 미리 준비 가능
  • concurrenthashmap이 완벽하게 동기화문제를 해결할 수 없음 (get과 put이 원자적 연산이 안 됨 → get이후 락이 풀림)

김규원

  • static file string 으로 받으면 깨지는 문제
    • String 으로 받으면 Ascii 7bit 변환을 통해 깨질 수 있기 때문에 String 변환은 권장되지 않음
  • status code 301 302 코드 차이
    • 301 리다이렉션은 영구적으로 이동한 경우에 해당되고 302 는 임시적으로 이동한 경우를 의미함
  • assertThat
    • Assertions 의 테스트 메소드 보단 Junit 이 좀더 지원되는 테스트 메소드가 많고 체이닝이 가능해 편리하게 테스트 코드를 적을 수 있다는 것을 알게되었습니다.
  • threadExecutor prestartAllCoreThreads → 미리 필요한 만큼 생성함 (ThreadPoolExecutor 쓰는 이유)
    • Starts a core thread, causing it to idly wait for work. This overrides the default policy of starting core threads only when new tasks are executed. This method will return false if all core threads have already been started.
스크린샷 2024-07-05 오후 5 02 33
  • ExecutorService 대신 세부 구현체인 ThreadPoolExecutor 를 사용하면 prestartAllCoreThreads 메소드를 사용가능하다. 원래의 ExecutorService 는 필요할 때 새로운 쓰레드를 생성하지만, prestartAllCoreThreads 를 통해 미리 쓰레드를 생성해둘 수 있다.

윤중진

  • ExecutorService.submit은 Future 객체를 반환하고, 비동기 처리 시에 유용하다.
  • ExecutorService, ThreadPoolExecutor 차이. thread가 pre start가 가능함.
  • request header에 따라서, 필요한 response header 대응
  • ArgumentResolver로 request to DTO 변환하는 방식 생각해봐야 겠음.
  • UserDatabase 동기화 메커니즘을 적용해야함.

김승수

  • Status Code 2xx, 3xx 구분할 때 어떻게 할 것인지,
  • nGrinder 와 같은 테스트용 툴 사용
  • 헤더와 바디의 byte 배열 크기를 지정하여 메모리 관리
  • ThreadPoolExecutor prestartAllCore () 사용하여 쓰레드를 미리 생성

👼 개인 활동을 기록합시다.

개인 활동 페이지

🧑‍🧑‍🧒‍🧒 그룹 활동을 기록합시다.

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally