본문 바로가기
Programming/6. Elice AI Track

005_git & Clean Code(6/24)

by @sangseophwang 2021. 6. 25.

@behance

첫 온라인 실시간 강의, 그리고 전설의 이고잉님 등장..!

드디어 혼자 영상 보며 공부하는 것을 벗어나 처음으로 다같이 (영상을 보며) 수업을 듣는 날! 그것도 첫 수업 선생님은 다름아닌 생활코딩의 '이고잉' 님이셨다!! 항상 영상에서 보던 모습답게 굉장히 친전하고 쉽게 설명해주셨다. 받아들이는 내가 컨디션이 좋지 않아 지금 이렇게 다시 정리하려 하고 있긴 하지만 😅  오늘은 부디 일찍 자고 내일 컨디션을 최상으로 끌어올려야겠다!


  git  

> 제일 먼저 해야할 것

  • pwd : 현재 위치 파악
  • ls : 내가 있는 곳엔 뭐가 있는가

> master

  • 내가 만든 깃 버전 중 가장 최근 버전

> HEAD

  • 지금 내가 보고 있는 버전
  • 현재 Working Directory

> git checkout

  • 내가 보고자 하는 버전으로 이동
  • HEAD가 따라온다.
  • 다시 최신 버전으로 돌아가고자 할 때 (시간여행을 끝내고자할 때) git checkout master 로 돌아가야 한다.
  • 그래야 HEAD → Master 의 표시가 나오며 다시 원래대로 버전을 만들어나갈 수 있다.
  • 이 방식대로 하지 않으면 detached HEAD 가 되는데...

> Detached HEAD

  • Detach = 떼다, 분리하다.
  • Attach = 붙다.
  • 특정 Branch가 아닌 특정 Commit을 직접 참조하고 있는 상태, 즉 잠깐 떨어져나온 상태라고 이해하면 좋다.
  • 만약 이전 버전으로 Checkout을 했다가 다시 최신 버전을 돌아가려할 때 git checkout master 가 아닌 git checkout [최근 버전 commit] 으로 가면 이 또한 Detached 상태가 된다.  (HEAD → MASTER 가 아닌 HEAD, MASTER)
  • HEAD, MASTER 상태는 HEAD 따로 MASTER 따로 최근 commit을 가리키는 상태로써, 이대로 commit을 하면 MASTER와는 다른 버전의 commit이 탄생한다. (집 나온 자식..이랄까?)
  • 그래서 이렇게 새 commit을 만들고 다시 master 브랜치로 돌아오면 새로 만든 commit은 부모 commit이 없어 사라진다.
  • 다만 이 때 사라질 뿐 삭제되는건 아니기 때문에 commit명만 기록해두면 언제든 다시 찾아갈 수 있다. (화면상에만 안 보일 뿐!)

> 그 외

  • git은 어떤 버전도 지우지도, 수정하지도 않는다!!  (Immutability)
  • 과거의 버전을 수정해 현재의 버전까지 다 바꾸는 것은 불가능하다!
  • 현재 버전에 버그가 있다면 과거의 버전들로 돌아가면서 버그가 처음 나온 버전의 문제점을 확인하고 현재로 돌아와 수정하면 된다.

  파이썬 클린 코드 실습 중 헷갈렸던 부분 정리  

> 클래스의 캡슐화

  • 캡슐화가 무슨 말인지 이해가 안가서 영어 단어를 찾아봤다. 'Encapsulation' 이라는 단어인데, 그 뜻이 '캡슐에 넣음, 소중히 보관함' 이라고 한다. (캡슐화라고 하면 어떻게 알아들으라는걸까..)
  • 즉 클래스가 캡슐이고 그 안에 들어있는 정보(필드, 메서드)들이 외부로부터 영향을 받지 않게 하기 위한 프로그래밍 기법 중의 하나이다. 
  • 객체라는 기능 안의 부품을 건드리지 못하게 해서 고장나지 않게 하는 것, 이것이 캡슐화 (인것 같) 다.

> 클래스의 다형성

  • 다형성, 즉 다양한 형태를 가지는 성질을 뜻한다. 같은 방식이지만 내가 원하는대로 다른 결과가 나올 수 있도록 하는 것이 다형성이다.
  • 이 개념은 코드의 재사용성과도 관련이 있다.
    • 예를 들어 '변수 + "입니다"' 라고 말하는 클래스를 만들었다고 가정하자.
    • 이를 상속받는 자식 클래스들은 변수 값만 바꿔주면 된다.
    • Dog라는 클래스 변수가 '강아지' 이면 '강아지입니다' 가 나오고, Cat이라는 클래스 변수에 '고양이'라고 넣으면 '고양이입니다' 가 된다.
    • 이처럼 행동은 같지만 나오는 결과가 다른 것을 다형성이라고 한다.

> 클래스의 컴포지션

  • 클래스의 재사용 방법 중 필요한 메서드만 가져오는 것을 컴포지션(Composition) 이라고 한다.
  • 이를 안티 패턴(문제 해결을 위해 자주 사용되지만 안 좋은 결과를 가져오는 것)을 방지할 수 있다.

 

일단은 이렇게 정리하긴 했는데, 클래스는 좀 더 써봐야 이 개념들을 좀 더 이해할 수 있을 것 같다. 🥲

반응형

'Programming > 6. Elice AI Track' 카테고리의 다른 글

007_HTML, CSS (7/5 - 6)  (0) 2021.07.06
006_git_the final (6/25)  (0) 2021.06.27
004_gitlab & Clean Code(6/23)  (0) 2021.06.23
003_git(6/22)  (2) 2021.06.23
002_리눅스(6/21)  (0) 2021.06.23

댓글