210216 화 TIL

bongf·2021년 3월 10일
0

지난TIL

목록 보기
1/4
  • 티스토리에있던 TIL을 복사해왔다.
  • 티스토리에서 작성했던 내용을 검색하면, 이 벨로그에 복사한다. ( 나중 검색, 누적학습을 위해)

Done

  • 호눅수 수업 복습
  • 미션 구현하기

git

  • git rebase시 일부러 충돌이 나게끔 설정해 충돌 해결을 해보았다.
    • (1) 지금 원격 upstream 인 깃 레포짓이 있고 거기서 fetch를 받아와 내 원격 origin 이 있는 상황
    • (2) 내가 접근하고 싶은 브랜치인 bong 브랜치를 가져와서 로컬에서 작업하다가
    • (3) upstream에 내가 수정한 내용이 반영 되게 pull request를 보냈고, meerge 되길 기다리면서 난 다른 브랜치 step3를 만들어 작업 중
    • (3) upstream에서 merge가 되었고
    • (4) 이를 내 로컬에서 반영하기 위해 내 로컬의 bong에도 해당 머지 내용을 반영해 주기 위해서
      • git fetch upstream bong 으로 이력을 업데이트 함
      • git rebase upstream/bong 으로 로컬에 있던 bong에 원격에서 merge한 내용을 반영시킴
    • (5) 이를 지금 작업 중인 step3에도 반영해야 함
      • step3는 이전 step2를 기반으로 만들어진 것이라 ( step가 pull request 과정을 거치면서 수정되기 전에)
      • 지금 머지된 내용이 반영이 안되어 있어 이를 반영해야 함
      • 그래서 step3브랜치로 switch해서 git rebase bong을 함 (이미 bong에는 위에서 해당 내용 rebase해서 수정 반영되어잇음)
      • 그러면 충돌이 난다. 나는 수정 전 step2를 기반으로 코드를 작성하고 있었어서
        • git bash에 브랜치 상태도 (step3|REBASE 1/1) 이런 식으로 표시된다.
      • 당황하지 말고 인텔리제이를 열고 코드를 수정해주고
      • git add .
      • 로 변경된 상황을 staged에 올려 주고
      • 다시 git rebase --continue를 해준다. 그럼 끝!

Learned

1. test 때문에 접근 제어자를 수정한 경우 괜찮을까?

  • 아직 초보수준이라 느낌만 이해하고 넘어가기로 했다.

(1-1) test 때문에 접근 제어자를 수정한 경우 괜찮을까?

  • 접근 제어자를 최소한으로 해두고 확장하라는 말을 듣고

  • A클래스 내의 메소드를 private으로 설정해 두었다가 > 해당 메소드를 test하고 싶어 (junit 이용) > default로 변경해 주었다.

  • 팀원 어거스트가 제기한 의문. 테스트 때문에 본 코드를 바꿔도 괜찮을까?

  • 이해되진 않았지만 느낌은 알 수 있었던 해결된 답변

    • private 메소드란 왜 존재하고 목적은 무엇인가? private 도 테스트해야될까? 를 생각해봐야 한다.

    • 접근제어자를 최소한으로만 하기 위해서 했었는데... 흠.. 이것 자체를 고민해야겠다는 생각이 들었다. 과연 private일까?

    • 코드스쿼드 디온님의 빛나는 앤썰

      private인 코드는 보통 테스트 하지 않습니다. 그에 연관된 코드를 테스트할 때, 함께 테스트 되도록 작성해주시거나, 접근제어자를 변경후에 테스트를 수행하는 편이 좋다고 봅니다. (이 메서드는 테스트 되어야하는가?를 생각해보세요.)

(1-2) 그 외 새로 알게 된 것

  • reflection 같은 (단위테스트프레임워크?)를 통해 private 메소드도 test 가능 ( 하지만 배보다 배꼽이 더 큰 느낌)

(1-3) 하지만.. 여전히 감을 잡지 못하겠는 건..

  • 멤버에 대해서 기본적으로 private으로 확장 이 원칙과
  • private 메소드 선언시 이유가 있어야 한다.
  • 그럼.. 난 과연 다음에 메소드를 작성할 때 (test할 것이라고 예상한다면) private은 이유가 있어야 되니 굳이 그럴 필요 없다면 pulbic이나 다른 것으로 선택할 것인가...?
  • 의문 투성이지만, 지금 미션 해결을 위해 일단 접고 넘어간다
  • 출처 https://www.slipp.net/wiki/pages/viewpage.action?pageId=6160426 + 코드스커드 지니어스들 + https://www.slipp.net/questions/253

(1-4) 추가 학습할 내용

  • (#todo) 차분히 어떻게 고쳤나 읽어보자 https://www.slipp.net/wiki/pages/viewpage.action?pageId=6160426
    • 보면, 한 메소드에 종속적인 상태라면 public으로 선언된 메서드만 test해도 해당 private메소드도 test할 수 있다
    • 별도로 클래스로 뺄 수 있는지도 고민해보자

기타

vim

  • q! (저장하지 않고 종료할 때 강제종료)

Good

  • 오늘 잘한 건 무엇이었나..

Bad

  • 낮 시간 동안 집중이 잘 안되고.. 오늘은 좀 힘들었다. 일찍 하루를 마무리해본다.

Feeling

  • 나이가 들어갈 수록 조금씩 욕심을 버리는 법을 배워가는 것 같다. 그래서 얻는 것도 있고... 그래서.. 욕심을..버리고.. 오늘... 잠을... 청해 ... 본다.... ㅎㅎ.... 얻는... 것이...있겠.. 지..

profile
spring, java학습

0개의 댓글