ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20221004 TIL 더 나은 Repository를 위하여
    TIL 2022. 10. 4. 19:34

     

    시간이 지나면서 프로그램의 계층을 점점 나누고 있다.

    그 이유는 각각의 계층의 관심사에 맞게 분리를해서 더 관리하기 쉬운 형태를 만들고 싶기 때문이다.

    계층을 나누는 과정에서 이전에 분리되지 않았을 때와 다른 점이 점점 생기고 있다.

     

    영속성이 없는 프로그램에서는 모든 데이터가 메모리에 띄워져 있다.

    즉, 데이터 소스가 따로 없는 경우는 리포지토리가 있다고 하더라도 Repository의 멤버 변수에 값들이 저장된다.

     

    https://www.cosmicpython.com/book/chapter_02_repository.html

     

    하지만 데이터 소스(DB, file 등)가 있다면 Repository에 웬만하면 멤버 변수들이 있으면 안 된다.

    예외적으로 테스트를 위해 파일 경로를 생성자에서 받아서 테스트 파일에 대한 처리를 따로 해준다면 

    파일 경로는 멤버 변수에 들어갈 수 있다.

    Repository는 멤버 변수가 아닌 데이터 소스에서 항상 데이터를 불러와야 한다.

     

    또한 resources 디렉토리의 경우 이미지 파일 등 프로그램이 돌아가는 중간에 바뀌지 않는 것들을 위한 곳이다.

    DB역할을 하는 데이터 소스들은 프로그램이 돌아가는 중간에 값이 수정되기 때문에 data디렉토리에 포함해야 한다.

    그리고 data는 굳이 origin에 올릴 필요가 없으니 .gitignore 파일에 추가해주면 더 좋다.

     

    그리고 꼭 Repository뿐만 아니라 모든 클래스에 적용이 되는 이야기인데 생성자에 exception이 뜨면 안 된다.

     

    더 좋은 코드를 위해 Repository 모델을 더 잘 써보자!

    댓글

Designed by Tistory.