boostcamp

Day08 학습 정리

daykim 2023. 7. 19. 15:09

 window 시스템의 파일 경로 형식


기존 Docs 경로

  •  볼륨 || 드라이브 문자 다음에 볼륨 구분 기호 (:)
  • 디렉터리 이름
  • 선택적 파일 이름

위의 세 구성 요소가 모두 존재하면 절대 경로다.
볼륨, 드라이브 문자 || 디렉터리 구분 문자로 시작하는 경우는 현재 드라이브 루트에 대한 상대 경로다.

  • 파일 || 폴더 경로 구분자 : \

ex path)

c:\Documents\dir1\dir2\hello.txt

 

경로 표준화 단계

  • 파일을 식별합니다.
  • 현재 디렉터리를 부분적으로 정규화된 (상대) 경로에 적용합니다.
  • 구성 요소 및 디렉터리 구분 기호를 정규화합니다.
  • 상대 디렉터리 구성 요소(현재 디렉터리의 경우 '. 및 부모 디렉터리의 경우 '..')를 평가합니다.
  • 특정 문자를 잘라냅니다.

 

Unix 시스템의 파일 경로 형식


  • 파일 || 폴더 경로 구분자 : /

절대 경로

리눅스 디렉토리는 계층적 트리 구조다.
파일 시스템이 있는 최상위 directory는 '/' 인데, 최상위 디렉토리부터 파일명에 이르는 경로를 절대경로라고 한다.

/wldwld/hello/hi.txt

 

상대 경로

현재 자신이 위치한 디렉토리 기주으로 하는 경로를 상대 경로라고 한다.

./../hello/../hi.txt

 

TDD(Test Driven Development)


TDD

  • 테스트 주도 개발
  • 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트케이스를 작성하고, 이를 통과하는 코드를 추가하는 단계를 반복해 구현한다.

 

TDD 개발 주기

아래 과정 반복

  • 실패하는 테스트 추가
  • 테스트 코드를 성공시키기 위한 실제 코드 추가
  • 중복 코드 제거, 일반화 등의 리팩토링 수행

=> 미리 테스트 코드를 작성하면, 실제 코드에 대해 기대하는 바를 보다 명확하게 정의함으로써, 불필요한 설계를 피할 수 있고, 정확한 요구 사항에 집중할 수 있다.

  • 테스트를 통과한 코드만을 코드 개발 단계에서 실제 코드로 작성한다.

 

TDD 장점

  • 디버깅 시간 단축 : 자동화된 유닛 테스팅으로, 실제 모든 레이어를 전부 디버깅 할 필요 없어진다.
  • 기능 단위 테스트: 문제가 발생하면, 원인을 찾기 쉽다.
  • 재설계 시간 단축: 개발자가 지금 무엇을 해야할지 분명히 정의하고 개발 -> 전반적인 설계가 변경될 일 방지 가
  • 추가 구현이 용이하다. : 유닛 테스팅으로, 테스트 기간을 단축시킬 수 있다.

 

TDD 단점

  • 생산성 저하 : 개발 시간이 늘어난다.

 

일반적인 개발 방식

  • 설계 -> 개발 -> 테스트 -> 배포
  • 여러 요건으로 인해 초기 설계가 완벽하기 힘들다.
  • 따라서 재설계하며 점진적으로 개선할 때, 코드 삽입, 수정, 삭제 과정에서 중복 처리가 되거나, 불필요한 코드가 남을 수 있다.
  • 이러한 코드는 재사용이 어렵고, 관리가 어려워 유지보수가 어려워진다.
  • 또 작은 설계에도 모든 기능을 다시 테스트하는 문제가 생겨, 자체 테스트 비용이 증가한다.

 

 

 

 

 

참고 자료

'boostcamp' 카테고리의 다른 글

Day11 학습 정리  (0) 2023.07.24
Day09 학습 정리  (0) 2023.07.20
Day07 학습정리  (0) 2023.07.18
Day06 학습 정리  (0) 2023.07.18
Day04 학습 정리  (0) 2023.07.13