티스토리 뷰

기타/TIL

210217 수 TIL

bong-f 2021. 2. 17. 09:45

Done

  • 미션 3 완료하고 PR보내기
  • 자바의 정석 5복습

Learned

1. StringBuffer_ char가 들어갈 때마다 capacity에 변화가 생긴다

(1-1) 왜 학습?

  • StringBuffer의 capacity로 for문을 돌면서 하나씩 내용물을 채우고 싶었다. 그러나 그것이 불가하다는 것을 알았다.

(1-2) 학습내용

  • length와 capacity차이

    • StringBuffer에 내용을 채우지 않았을 때 StringBuffer의 length로 찾지 말고 capacity로 길이 구하기. 이 용량을 구할 때.
    • length는 내용물이 들어간 크기
  • capacity는 char을 buffer에 넣을 때 크기가 변한다.

    • 아직 왜 이러는지 찾지 못했지만 ( for (int i=0; i<sb.capacity(); i++){
      sb.append("\*");
      System.out.println(sb.capacity());

    }
    이렇게 하면, 계속 capcity의 크기가 늘어나면서 for문이 계속 추가된다. 왜 이럴까?

2. Git - 갓파이로 조교님 덕에 해결한 깃문제

(2-1) 왜 학습?

  • 조원 한 분이 git과 풀리퀘의 과정 중에 문제가 있었다. 파이로님이 해결해 주어 이 같은 문제가 생겼을 때 대처법을 알게 되었다.

(2-2) 상황

  • upstream (원격의 원래 레포짓 ) - 여기서 fork 해서 내 깃헙에도 같은 내용 만든 다음에(oirgin), 내 깃헙에 올린 후 -> upstream에 풀 리퀘해서 merge 하는 내용의 반복 작업중, (step1 step2 같은 단계별로 pull request를 날리고 있다)
  • 그런데 문제 발생.
  • step2단계를 원격의 upstream에 pr 보낸 상황 - > 잘못된 브랜치로 pr보내서 closed
  • stpe3단계 브랜치를 만들고 해당 브랜치로 작업을 한 상황
  • step2에 잘못 step3까지 머지된 상황

(2-3) 문제 1. step2에 step3가 섞여 새로운 pr 생성시 step3 커밋 내용이 올라간다.

  • 갓 파이로님의 해결
  • 1) step2에서 step2_recover 로 브랜치를 체크아웃하고 생성한다. (혹시 모를 보존용) : git checkout -b step2_recover
  • 2) step2로 다시 switch
  • 3) step2의 마지막 커밋 id를 복사
  • 4) git reset --hard 마지막커밋id (해당 커밋으로 git을 되돌린다, step2 브랜치를)
  • 5) git log로 제대로 되었는지 확인!
    • 6) git push --force (하면 해당 내용이 강제로 원격에 push 된다. 충돌되어도 덮어버린다)
    • 7) 그 다음에 다시 내 원격의(origin)의 step 브랜치에 가보면 거기까지만 올라와있고 그걸 풀리퀘하면 된다 !! 해결

(2-4) 문제 2. 잘못된 브랜치로 PR을 보내서 -> closed 된 상태 -> 나에게 reopen 권한 없는데 -> 이걸 다시 upstream의 다른 브랜치로 PR을 보내려고 하면 -> 바뀐 내용이 없다면서 자꾸만 closed 된 PR을 보여주는 깃헙

  • 풀리퀘를 다른 브랜치로 보내고 싶은데, 내가 이미 pr을 보낸 것이 closed 된 상솽이다
  • 보통 이런 경우, re-open을 하고 브랜치를 바꿔서 다시 pr을 보내면 되지만
  • 문제는 re-open의 권한이 없다
  • 그러면 갓파이로의 해결
    1) 새로운 브랜치를 만들어서 거기서 pr을 보내라
    2) 코드를 수정 (엔터 등) 하고 다시 pr을 보내기

(2-5) 배운점

  • 갓파이로 조교님 능력은 역시다..
  • 브랜치는 많이 만들어도 전혀 상관 없다
    • 생각해보니 이 sanpshot 이기 때문에 많이 만들어도 삭제하면 된다
  • 하나의 브랜치당 하나의 PR만 날릴 수 있으며 이는 closed된 PR도 포함한다. (단, Closed 된 pr에서 코드 수정 후 다시 commit 후에 원격으로 pr을 보내는 것은 허용된다)

(2-6) 더 학습할 점

  • reset --hard와 -f(호눅스가 알려줬던 해결 책)은 어떤 차이가 있을까?

3.기타

(3-1) vim

  • j 하면 쭉 내려간다 (터미널에서 길어서 안보이던 내용, git log 라든지...)

(3-2) int[] arr; 과 int arr[];은 같다.

(3-3) Arrays.copyOf(arr, 복사할사이즈), System.arraysCopy(원본배열, 복사시작위치, 복사값넣을배열, 복사값입력시작index, 가져올길이)

  • 둘이 기능은 같다. Arrays.copyOf(arr, 복사시작, 복사끝) 이것도
  • Arrays..는 System.. 얘를 래핑한 것이다.https://nhj12311.tistory.com/62
  • 하드 카피보다 훨씬 성능이 빠르다.

Good

  • 컨디션이 너무 좋았다. 먹었던 밤양갱 때문인지 수면시간을 늘렸기 때문인지, 공부할 때 머리가 맑아서 앞으로 이 정도의 수면시간은 유지할 것 같다.

  • 미션을 풀다가 다른 사람은 이렇게 하지 않을 것을 알고 있었지만, 왜 안됐을까 궁금해서 삽질을 했다. 틀린 것을 알고 있으면서 삽질을했다. 그러니까 오히려 코딩할 때 재미를 느꼈다. 정답이 없는 문제를 이렇게도 풀어보고 저렇게도 풀어보고. 삽질을 해보니까 사람들이 왜 안했는지 알았다.

Bad

  • 생각보다 미션 해결에 시간이 많이 걸렸다. 자바로 기초 코드를 짜는 연습을 더 해야겠다.

Feeling

  • 밤 양갱 같은 하루다. 오늘 밤양갱을 먹어서 그런가. 따뜻한 차와 먹은 밤양갱이 초콜릿보다 덜 달고 그러면서 당은 꽉꽉 채워주는 느낌.. 늙어가는 건가. 옛날엔 진짜 먹지 않았던 밤양갱이 참 맛있다. 사람도 옛날에는 초콜렛 같은 사람이 좋았다면 이제는 밤양갱 같은 사람이 좋은 것 같다. 아니다. 사실 이건 말을 적기 위한 말이었다. 난 원래 초콜릿보다 밤양갱 같은 사람을 더 좋아했다. 초콜릿 먹는 것을 워낙 좋아해서 그렇지. 내일은 한 번 초콜릿을 먹어볼까?...ok 운동할게

'기타 > TIL' 카테고리의 다른 글

210219 금 TIL  (0) 2021.02.19
210218 목 TIL  (0) 2021.02.18
210216 화 TIL  (0) 2021.02.16
210215 월 TIL  (0) 2021.02.15
210214 일 TIL  (0) 2021.02.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함