20221017

Snack 남관식·2022년 10월 17일

TIL

목록 보기
1/11
post-thumbnail

Computation Thinking과 컴퓨터 이해

  1. 이진수
  • 컴퓨터는 0과 1 이진수로 작동한다. 숫자, 문자, 색상, 이미지, 소리, 심지어 동영상까지.
  • 이러한 이진수 코드들을 우리가 이해할 수 있는 데이터의 형태로 변환하는 약속들이 존재한다.(ex. ASCII, UTF-8, …)
  • 이전에 웹 코딩을 할 때 문서 속성을 'UTF-8’로 설정한 경험이 있는데 이것의 개념을 오늘 이해했다.
  1. 알고리즘
  • 어떠한 문제를 해결할 수 있는 방법(알고리즘)에는 여러가지가 있다.
  • 효율성(문제의 양 대비 문제를 해결하는 시간)이 더 높은 알고리즘이 더 좋은 알고리즘인듯 하다.(막연하지만 경우에 따라 아닌 경우도 있을듯 하다.)
  • 알고리즘은 함수, 조건, 판단, 반복, 변수 등 여러 요소들로 구성되어있고, 이것들이 논리적인 순서에 따라 작동한다.
  • 중복된 코드를 제거하는 것은 관리적인 측면에서 유리하다.
  • 일련의 코드 블럭을 함수화하여 추상화된 개념으로 정리할 수 있고, 이를 다른 알고리즘에서 간편하게 사용할 수 있다.
  • 창의적인 사고를 가능하게 하는 Design Thinking과 다르게 Computation Thinking은 논리적인 사고를 가능하게 하는것 같다.(디자이너와 개발자의 사고방식이 조금 다른 이유인것 같다.)
  1. 컴퓨터
  • 컴퓨터는 이진수 연산을 처리할 수 있는 장치들을 소형화시키는 방향으로 발전해왔다.(진공관에서 비롯된 '버그’의 유래가 인상적이었다.)
  • 컴퓨터의 구조에는 하버드 구조와 폰 노이만 구조가 있고 최근 컴퓨터 아키텍쳐는 두 구조가 결합된 형태로 구성되어있다.
  • CPU가 한 번에 처리할 수 있는 정보의 양에 따라 32비트와 64비트로 나뉘는데 최근에 64비트로 발전함에 따라 IP주소 등 관련 데이터를 표현하는 방식의 변화가 있다.
  • 이진수 데이터를 표현하는 방식과 연산하는 방법에는 여러가지가 존재한다.(추후에 자세하게 공부해야할 것 같다.)

Git

  • Git은 파일의 버전을 관리할 수 있는 도구이다. 터미널을 통해 Git을 관리할 수 있다.
  • 작업 내용을 Staging Area에 추가할 수 있고, 작업이 완료되면 변경 사항들을 버전으로 Commit할 수 있다.
  • 여러가지 버전을 관리하기 위해 Branch를 생성할 수 있는데 주로 협업에 사용된다. 이때 여러 Branch를 병합(Merge)하는 과정에서 충돌(Conflict)가 일어날 수 있는데 이를 주의해야한다.
  • 이전에 웹 코딩을 하며 Github Desktop을 통해 버전관리를 한 경험이 있어 Git과 Github, Push와 Pull에 대한 대략적인 개념은 알고 있었으나 이번 기회에 정확히 정리할 수 있었다.
profile
iOS Developer | Product Designer @snacknam

1개의 댓글

comment-user-thumbnail
2023년 8월 5일

마이크로소프트의 시작과도 같네여. 항상 파이팅이에요. snack.

답글 달기