20210105 - TIL

Starve·2021년 1월 5일
0

TIL

목록 보기
2/38
post-thumbnail

오늘 한 일

  • git branch 만들어, push 및 코드리뷰 요청하기

    • Shell로 git을 clone 할 때, 기존 폴더에 clone을 하고자 하는 레파지토리와 같은 이름을 가진 폴더명을 가진 파일이 있음을 까먹고 왜 안되는지 잠시동안 고민했다..

    • 원격 저장소에 push 시, 아래와 같은 메세지가 발생하면서 push가 되지않았다.

      fatal: The current branch Starve has no upstream branch.
      To push the current branch and set the remote as upstream, use
      
          git push --set-upstream origin Starve

      현재 로컬에서만 브랜치가 생성 되었으므로, 위의 명령어를 입력하여 upstream으로 만들어 주면 되는 간단한 문제였다.

      $ git push --set-upstream origin Starve

      이걸 모르겠어서 이것 저것 찾아보다가 시간을 많이 소모한 것 같다. 나중에 시간을 내서 git에 대해 더 공부해야겠다.

> 참고 블로그:
> https://ychaeeun.github.io/git/git-branch-1/
  • 코드 리뷰를 받아, 이전에 작성 했던 코드 수정하기:

    int byteSize = 8; // 코드리뷰때, 추가하는 것이 좋을 것 같다고 해서 추가했다.
          // 타인이 봤을 때도 알아볼 수 있도록 명시해주는 것이 클린코딩의 첫 걸음이라고 한다.
    boolean[] answer = new boolean[byteSize+1]; 
    // 원래는 boolean[] answer = new boolean[9]; 였다.
  • 코드스쿼드 - 마스터 클래스 수강
  • [논리 게이트]

    • AND: & (ex: A&B)
      두 입력 값이 모두 true일 때만 true를 반환

    • OR: |(ex: A|B)
      두 입력 값 중, 둘 중 하나라도 true일 때 true를 반환. 둘 다 false라면 false를 반환.

    • NOT(INVERTOR): ~ (ex: ~A)
      입력 상태가 true 상태라면, false. false 상태라면 true를 반환.

    • XOR: ^ (ex: A^B)
      입력 값이 서로 다를 때 true를 반환하고, 같은 경우 0을 반환한다.

  • [확장 게이트]

    • NAND: (ex: !(A & B) , !(A&&B))
      AND 게이트와는 반대로 실행된다.
    • NOR: (ex: !(A | B) , !(A||B))
      OR 게이트와는 반대로 실행된다.
  • 반가산기(half-adder)

    • 1비트 이진수 두개를 합한 값 Sum(S)과, 자리 올림 수 Carry(C)를 구하는 가산기.
  • 전가산기(full-adder)

    • 반가산기 두 개와 OR게이트로 이루어진 가산기.
  • 1월 4일 만들었던 전가산기의 코드를 반가산기를 조합하여 다시한 번 구현해봄.

  • 2진수↔️16진수 구현 방법에 대한 공부 및 구현 방법 고민

    • 2진수 ➡️ 16진수 일 시:
      2진수의 값이 큰 비트가 우측에 두고 있는 경우라고 가정하여, 반복문을 통해 2진수가 담긴 배열을 4개의 단위로 쪼개어서(ex>11001010=> 1100 | 1010) 계산해, 10~15를 제외한 수는 숫자로, 10~15에 포함되는 수는 알파벳 a~f로 표시하는 방식을 사용하는 구조가 될 것 같다.

    • 16진수 ➡️ 2진수 일 시:

      16진수의 값을 배열로 입력 받아 (1C 의 경우, {1,C}와 같이.) 앞자리 수 부터 반복문으로 4개로 이루어진 2진법의 값(1C => 1: 0001 / c:1100)을 정답 배열에 집어넣는방식을 사용하는 구조가 될 것 같다.(위와 같은 경우, 0001100이 된다.)

공식 참고 블로그:
https://m.blog.naver.com/PostView.nhn?blogId=icbanq&logNo=221727893563&proxyReferer=https:%2F%2Fwww.google.com%2F

https://ko.wikihow.com/2%EC%A7%84%EC%88%98%EB%A5%BC-16%EC%A7%84%EC%88%98%EB%A1%9C-%EB%B0%94%EA%BE%B8%EB%8A%94-%EB%B2%95

  • MSB와 LSB의 차이점과, 장점에 대한 공부

    • MSB - Most Signficant Byte. 빅 엔디안이라고도 부른다.
      • 사람이 읽고 쓰기 편하며, 그로인해 디버그를 하기가 쉬우며, 값을 비교할 때 유리하다는 장점이 있다.
    • LSB - Least Significant Byte. 리틀 엔디안이라고도 부른다.
      • 가산기가 덧셈을 하는 방식과 유사해, 가산기 설계가 더욱 쉬우며, 계산에 유리하다는 장점이 있다.

    참고 블로그:
    https://genesis8.tistory.com/37

오늘 느낀 점

  • CS의 어려움을 매우.. 느꼈던 것 같다.. 설명을 들어도 반절은 이해가 가는 듯 싶다가도, 돌아서면 까먹을 것 같은 느낌?
    순식간에 배우는게 더 말도 안된다는 것을 알지만, 이렇게 이해가 안되는 것을 느끼면 괜히 침울해져서 빨리 기분을 전환시킬 무언가를 찾아야 할 것 같다.🥲 절대 포기하지말고 꾸준히! 열심히하자!

  • 코드 리뷰를 해보니, 내가 뭘 놓치고 있는지 확실히 알 수 있어서 너무 좋았다. 아직 내가 많이 부족하여 코드 리뷰를 할 수 있을 정도는 아닌 것 같지만, 더 노력해서 리뷰를 남길 정도가 되고싶다.

내일 할 일

  • 알고리즘 풀기.
  • 풀었던 알고리즘 문서화 하여 정리하기
profile
노력

2개의 댓글

comment-user-thumbnail
2021년 1월 7일

오! 덕분에 빅 엔디안이랑 리틀엔디안 장점에 대해 알게 되었어요ㅎㅎ 저는 그냥 인덱스 계산하기 쉽다고 썼는데 저런 내용이 있었군요👍 정리 감사해요😁

1개의 답글