[백엔드 데브코스 4기] TIL - Day 23

hongxeob·2023년 6월 24일
0

회고

목록 보기
48/100
post-thumbnail

오늘은 PR을 날린 바우처 프로젝트를 훑어보며 리팩토링을 진행하였다.
나름 내 기준에서 열심히 짰다고 생각했지만, 코드를 작은 단위로 계속 보다보니 또 고치면 좋을 것 같은 부분이 생겼다
특히 구현하며 힘들었거나 많은 고민을 들였던 부분은 관련된 레퍼런스나 구글링을 통해 더 나은 방향성을 찾아 리팩토링 하였다.

오늘의 학습 Keyword

  • 바우처 과제 리팩토링
  • 테스트 코드 강의

🔥 새롭게 배운 것 / 리마인드

  • properties/yml 파일에서 경로등을 주입 받기 (@Value 어노테이션)
  • File 클래스와 , Path 클래스 차이
  • File 클래스
    • java.io.File 패키지에 속하는 클래스
    • JDK 1부터 존재하던 클래스이며, 기본적인 파일 및 디렉터리 작업을 수행하는 데 사용된다.
    • 파일 경로를 문자열로 나타내며, 플랫폼별로 파일 경로를 처리한다. 즉, 경로 구분자로 '/' 또는 ''를 사용하며, 특정 플랫폼에 종속적일 수 있다.
    • 파일 시스템 외에도 클래스패스를 포함한 다양한 리소스를 나타낼 수 있다
    • 몇 가지 파일 및 디렉터리 작업을 수행할 수 있지만, 좀 더 강력하고 유연한 기능은 제공하지 않는다.
  • Path 클래스
    • java.nio.file.Path 패키지에 속하는 인터페이스 및 관련 클래스이다.
    • JDK 7부터 도입된 NIO.2(New I/O) API의 일부이다.
    • 파일 경로를 나타내는 데 사용되며, 파일 시스템에 특화된 기능을 제공한다.
    • 파일 시스템의 경로를 추상화하고, 플랫폼에 독립적인 방식으로 경로를 다룰 수 있다.
    • 파일 경로 조작, 파일 및 디렉터리 생성, 파일 속성 읽기/쓰기 등 다양한 작업을 지원한다.
    • Path 인터페이스는 파일 경로를 나타내며, Paths 유틸리티 클래스를 통해 Path 객체를 생성할 수 있다.

따라서, Path 클래스는 파일 시스템에 특화된 경로 조작 기능을 제공하고, File 클래스는 더 단순한 파일 및 디렉터리 작업에 사용된다. Path 클래스는 더 최신이며, Java NIO의 기능과 장점을 활용할 수 있는 클래스이다.

  • Collections.singleTonList / Collections.emptyList 사용법
  • Collections.singleTonList : 단일 요소 처리, 성능 개선, 가독성
    • singletonList 메서드는 지정된 요소를 포함하는 불변의 단일 요소 리스트를 생성한다.
    • 생성된 리스트는 수정할 수 없으며, 크기가 1인 리스트이다.
    • 단일 요소에 접근할 필요가 있을 때 유용하며, 일반적으로 배열이나 컬렉션을 단일 요소를 포함하는 리스트로 감싸는 데 사용된다.
    • 예를 들어, List<스트링> list = Collections.singletonList("Hello");와 같이 사용할 수 있다.
  • Collections.emptyList : 코드 안정성,
    • emptyList 메서드는 비어있는 불변의 리스트를 생성한다.
    • 생성된 리스트는 수정할 수 없으며, 크기가 0인 리스트이다.
    • 비어있는 리스트가 필요한 경우 유용하게 사용된다.
    • 예를 들어 List<인티저> emptyList = Collections.emptyList();와 같이 사용할 수 있다.
    • Collections.emptyList를 반환한다면 null을 반환하는 것보다 코드 안정성을 높일 수 있다. 호출자가 null 체크를 하지 않아도 되므로 NPE등의 예외가 발생할 가능성을 줄일 수 있다.

이러한 메서드들은 불변성을 보장하므로, 생성된 리스트는 요소를 추가, 제거 또는 수정할 수 없다. 따라서, 단순히 읽기 전용 리스트로 사용하기에 적합하다. 또한, 메모리 효율성과 성능 향상을 위해 사용되는 경우가 많다.

🤟🏽 잘한 점

  • 바우처 과제 리팩토링! 배운게 많다!
  • 운동도 성공!

🧶 아쉬웠던 점

  • 주말을 불태웠다 (불불)

🌱 내일의 간략한 목표

  • 5주차 강의 미리 듣기
  • 스프링 강의 보기
profile
걍 하자 저스트 뚜잇

0개의 댓글