Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 4.18 KB

SAMPLE.md

File metadata and controls

81 lines (59 loc) · 4.18 KB

📕 오늘 공부한 내용, 이렇게 정리해 봅시다. ✒

TIL(Today I learn) 기록일 : 2022.06.24

오늘 읽은 범위 : 1장 프로그래밍

컴퓨팅 사고 능력을 탑재하다 📑

  • 프로그래밍을 시작하기에 앞서, 구현하고 싶은 것에 대한 명세서를
    명확히 정의할 필요가 있다.
  • 사람이 읽을 수 있고, 기계어로 명령을 전달할 수 있는 수단(번역기) 중에는
    컴파일러와 인터프리터가 있다.
  • 코드는 결국, 해결방안을 구체적으로 명시한 서류이다. 따라서
    문법에 부합함과 동시에, 원하는 바를 정확히 수행하여야 의미가 있다.

책속 한구절 보관함 📖

p text
2 해결 과제를 작은 단위로 분해하고 패턴화해서 추출하며,
프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야 한다.
3 사람이 이해할 수 있는 약속된 구문으로 구성된 "프로그래밍 언어"를 사용해
프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 일종의 기계어로
변환하는 일종의 번역기를 이용하는 것이다.

떠오르는 생각이 있었나요? 나의 사색을 기록해 봅시다 💭

"프로그래머는 반 정도 컴퓨터화 되어있다"
<기획자와 프로그래머가 좋아하는 디자이너> 라는 글에서 발견한 문장이다. 
프로그래머가 하루에도 장시간 컴퓨터 앞에서 일하다 보니, 
어느 정도 컴퓨터와 같은 방식으로 사고하게 되었다는 말이다.

또한, 동시에 다른 디자이너들한테 건네는 충고의 말에는 이렇게 적혀 있었다.
가령, {가전제품 디자인}을 전달한다고 해보자. {진공 청소기}를 만들고 있다.

디자이너: "키가 작은 여성도 간단히 사용할 수 있을 만큼 작았으면 좋겠어요. 
몸체는 세련되고 엘레강스하게, 그리고 흡입구에는 포인트를 넣어주세요."
프로그래머: "...네?"
이런 식으로 말하면 굉장히 불편하고, 곤란해 한다며, 
구체적인 정의를 내리라 충고한다.

"높이는 1.2m 였으면 좋겠어요. 몸체는 #fefefe에서 #fff로 변하도록 
gradient를 넣어주세요. 그리고 흡입구는 몸체보다 진한 다크 그레이로 해주시면 됩니다."

이 글을 읽고 한참을 공감하며 웃었다. 
나 또한 두 번째 글을 읽으며 알 수 없는 편안함을 느꼈기 때문이다.
외국어를 공부하고 습득하다 보면 그 나라의 사람들처럼 사고방식이 
어느 정도 바뀌는 것처럼, 컴퓨터와 한참을 의사소통 하면서 
컴퓨터의 사고방식을 습득하는 듯하다.

궁금한 내용이나, 더 알아보고 싶은 내용을 적어봅시다 🤔

인터프리터와 컴파일러는 둘 다 인간이 쓰는 언어에 가까운 
프로그래밍 언어를 (2진수를 쓰는) 컴퓨터 언어로 번역해 준다는
공통된 특징을 가지고 있다.

하지만, 정확히는 서로 다른 과정을 거쳐 코드를 실행한다.

인터프리터: 프로그래밍 코드(if else...)를 '한 줄씩 즉시 
머신코드로 변경' 후 '실시간으로 실행'한다. 
때문에 자신이 쓴 코드의 결과를 즉시 확인할 수 있으므로, 
개발 속도가 빨라진다. 

&& 더하여, 실행 시 중간 번역 시간이 발생하므로, 
실행 속도가 "비교적" 느려진다. 
(자바스크립트와 파이썬이 이 경우에 해당된다.)

-------------------------------------------------------

컴파일러: 이미 완성된 '전체' 프로그래밍 코드를 '실행 전'에
'미리 머신코드로 변경'한 후에 열어 실행한다.
때문에, 실행 시 중간 번역 시간이 불필요해 지므로,
실행 속도가 빨라진다. 

&& 더하여, 수정된 코드의 결과를 확인하기 위해
컴파일 과정을 '다시' 거친 후에 비로소 실행할 수 있기 때문에
개발 속도가 느려진다.
(C와 자바가 이 경우에 해당된다.)

다른 분이 작성하신 TIL에 대한 소감