Skip to content

박민지 6주차 JSP Cafe 학습 일지

Park minji edited this page Aug 5, 2024 · 2 revisions

배운 점

  • Junit5 테스트 인스턴스 생명 주기를 공부함

    • Junit은 기본적으로 테스트 인스턴스 상태로 인한 문제를 방지하기 위해 메서드별 테스트 인스턴스 수명을 가짐
    • @TestInstance(Lifecycle.PER_CLASS)로 클래스별 테스트 인스턴스 수명을 가지도록 설정할 수 있음
      • 클래스별 테스트 인스턴스 수명을 가지면 non-static method를 @BeforeAll, @AfterAll 메서드로 사용할 수 있음
  • JS의 promise, async, await, ajax과 HTTP 요청 방식을 공부함

    • promise: 비동기 작업의 최종 결과와 결과 값을 나타내는 개체
      • pending, fulfilled, rejected 세 가지 상태를 가짐
    • async: function 앞에 사용되는 키워드로, function이 호출될 때마다 새로운 promise를 반환하는 함수
      • 함수가 값을 반환하면 Promise.resolve()로 자동 래핑됨
    • await: async function 내부에서 사용되는 키워드로, promise가 fulfilled 되거나 rejected 될 때까지 실행을 중지
    • ajax: 웹 페이지가 웹 서버와 비동기적으로 통신할 수 있도록 하는 웹 개발 기술
    • JS의 HTTP 요청 방식은 XMLHttpRequest, FetchAPI, Axios 세 가지가 있음
      • XMLHttpRequest: 콜백 기반 비동기 작업 처리
      • FetchAPI: promise, async, await 기반으로 콜백 중첩이 아닌 코드로 비동기 작업 제어 가능
      • Axios: Promise 기반 HTTP 클라이언트 라이브러리로, FetchAPI의 예외 처리와 사용 편의성을 개선함
  • Terraform을 공부함

    • Terraform이 무엇인지, 개념을 간단히 공부함
    • 월요일 수행했던 NAT instance 실습을 Terraform으로 만들어보는 실습을 진행함
  • netfilter 및 iptables를 공부함

    • netfilter: 리눅스에서 네트워킹 관련 작업을 담당하는 Linux 커널 프레임워크
      • linux 커널 내부 hook set을 제공하여 네트워킹 스택에 콜백 기능을 등록할 수 있음
    • iptables: 리눅스 커널 방화벽에 필터 규칙을 구성할 수 있도록 하는 유틸리티 프로그램
      • 체인이라는 개념을 사용하여 테이블을 정의하고 패킷을 처리
      • 체인: 들어오거나 나가는 패킷에 적용되는 규칙 모음
  • HikariCP의 초기화 과정에서 적용된 동시성, 성능 관련 기법을 공부함

    • Double Check Lock: 초기화 로직과 인스턴스를 얻어오는 로직을 분리하고, 후자에만 락을 걸어 성능 향상
    • final, volatile: final 변수에 값을 할당하여 스레드 캐시를 사용할 수 있도록 하여 성능 향상
    • 최소 유휴 커넥션 수를 유지하고, 커넥션이 필요하면 생성해주는 HouseKeeping으로 커넥션 풀을 관리

느낀 점

  • 이번 주는 구현보다는 몰랐던 개념을 공부하였습니다!
    • Terraform을 처음 배웠는데, 자동화하는 게 정말 뿌듯합니다. 재밌고, 뿌듯했습니다!
    • HikariCP 초기화 과정에서 코드에 적용된 동기화 처리, 성능 향상 기법, JMH를 이용한 성능 분석을 수행해봤는데 정말 신기했습니다. HikariCP가 가벼워서 분석하기 좋은 것 같습니다!

앞으로 하고 싶은 것

  • 이제 팀프로젝트 시간이 되어서 토비 spring boot 강의를 들어보려 합니다.
  • 물론 서블릿 프로젝트도 잘해보겠습니다! 쿼리 성능 개선이 필요할 테니 real mysql 8.0을 조금 뒤적여보겠습니다!

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

개인 활동 페이지

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

그룹 활동 페이지

🎤 미니 세미나

미니 세미나

🤔 기술 블로그 활동

기술 블로그 활동

📚 도서를 추천해주세요

추천 도서 목록

🎸 기타

기타 유용한 학습 링크

Clone this wiki locally