Today I Learned
2023.11.13
오늘 읽은 범위
에피소드 06. 왜 나만 오류가 자주 생길까?
✅오류를 대응하는 방법
- 코드를 입력한 건 나 자신이다. 책이나 인터넷을 탓하지 말것
- 오류에 무작정 달려들지 말고 오류가 '왜' 생겼는지 생각할 것
- 오류 메세지를 읽을 것
✅프로그래밍 초보자가 하기 쉬운 실수
-
실수 1. 공부만 하고 실제로 무언가 만들어 보지 않는다.
프로그래밍 공부는 코드를 시험 준비하듯이 필기하고 암기하는 것이 아니라 나만의 코드로 프로젝트를 완성해보는 것
-
실수 2. 아직 프로그래밍을 할 준비가 되지 않았다고 스스로를 낮추는 자세.
뭐든 만들기 시작하면 완성된 결과물이 눈에 보일 것이고, 그 결과물을 보면 뇌는 '난 준비됐다'고 자신을 믿게 될 것이다.
에피소드 07. 파이썬은 왜 이렇게 인기가 많을까?
✅스택오버플로
- 컴퓨터 프로그래밍에 대한 질문&답변 사이트로 개발자들에 의해, 개발자들을 개발자 커뮤니티
- 스택오버플로의 매년 가장 인기 있는 언어 순위를 보면 파이썬이 3-4위로 매년 상위권을 차지 한다.
✅파이썬은 왜 인기가 많아?
- 영어와 비슷하다
- 활용 범위가 넓다
- 웹 개발: 장고, 플라스크
- 인공지능 & 데이터: 케라스, 텐서플로, 판다스
- 업무 자동화: 엑셀, 메일
- 이미지 처리
- 게임
- GUI
- 파이썬의 커뮤니티가 어마어마하게 크다
- 파이썬이 업무 자동화에 완전 찰떡 = 스크립팅(scripting)
- 지루한 반복 작업을 스르립팅으로 자동화한다.
- ex) 수백개의 pdf 파일의 이름을 몇 초 만에 변경
에피소드 08. 파이썬이 C언어 보다 느린 이유는?
✅인터프리트 언어
- 실시간 주절주절 동시 통역 느낌
- 우리가 파이썬이나 자바스크립트 코드를 치면 동시 통역사인 '인터프리터'가 0과 1로 번역해서 컴퓨터에게 전달.
- 컴파일 언어보다 느리다.
- 주절주절 실시간으로 해석하기 때문
- 오류를 발견하는데 시간이 더 걸린다.
100줄의 코드 중 98번째 줄에서 오류가 발생하면 97번째 줄까지 실행한 시간은 어쩔..? 98번째 줄에서 갑자기 "나 모르겠어." 시전.
- 인터프리트 대표 언어: 파이썬, 자바스크립트
✅컴파일 언어
- 번역가가 원고를 통째로 번역해주는 느낌.
- 인터프리트 언어보다 빠르다.
- 완성된 코드를 통번역하니까.
- 오류를 발견하면 아예 번역을 시작하지 않음. "번역할 수 없는 부분이 발견했어. 완벽히 이해한 다음 나중에 할게."
- 컴파일 대표 언어: C언어
에피소드 09. 자바스크립트는 웹 개발에만 쓰는 언어일까?
- 자바스크립트는 세상에서 가장 유명한 프로그래밍 언어
- 하이브리드 앱 (아이오닉Ionic 이용), 크로스 플랫폼 앱 (React Native 이용)을 만들 수 있음. 즉, 한번의 개발로 아이폰, 안드로이드 폰 양쪽에서 사용할 수 있는 모바일 앱을 만들 수 있음
- 자바스크립트와 일렉트론을 이용해서 윈도우, 맥, 리눅스를 위한 데스크톱 소프트웨어를 만들 수 있음
- 일렉트론: HTML, CSS, 자바스크립트를 컴파일해서 윈도우, 맥, 리눅스에 설치할 수 있는 소프트웨어를 만들어 주는 도구
- phaser.js, impact.js라는 도구로 게임을 만들 수 있다.
- 3D, 가상 현실(VR), 증강 현실(AR) 개발을 할 수 있다. three.js를 이용해서 3D 게임, 인터랙티브 웹사이트를 만들 수 있다.
three.js로 개발한 3D 게임 <헤라클로스>
- tensorflow.js라는 도구로 인공지능, 머신러닝을 할 수 있다.
참고) HTML
- 프로그래밍 언어 아님
- 하이퍼 텍스트 마크업 언어
- 인터넷에서 사용자와 서버가 정보를 주고받기 위한 일종의 규칙
에피소드 10. 코틀린은 정말로 자바와 100% 호환될까?
- 코틀린은 자바 개발자에게 꼭 추천되는 언어
- 구글이 안드로이드 앱 개발에 사용하면 좋은 언어로 추천했음.
- 코틀린은 자바와 100% 호환됨
여기서 '100% 호환'은 무슨 의미? 자바 코드에서 코틀린 코드를 부를 수도 있고, 반대로 코틀린 코드에서 자바 코드를 부를 수도 있어야 한다.
✅원리가 뭐야?
컴필레이션(compilation)과 인터프리테이션(interpretation)
-
컴필레이션: 코드 전체를 받아서 기계어로 통번역 하는 것
-
인터프리테이션: 코드를 한 줄, 한 줄 실시간으로 기계어로 해석
-
자바는 컴필레이션과 인터프리테이션을 다 활용한다.
자바는 컴파일 과정에서 자바 바이트 코드로 변형된 다음, 가바 가상 머신이 해석해서 윈도우, 리눅스, 맥OS용 기계어로 변역한다.
<자바의 원리>
코틀린을 자바 바이트로 컴파일하기만 하면 되기 때문에 코틀린을 자바로 100% 호환할 수 있다.
✅코틀린을 써야하는 이유는?
장점 1. 코틀린은 null safety(널에서 안전한) 언어다.
- null이 있는 자바 같은 경우에서는 프로그램에서 처리할 값이 없으니 오류가 생길 수 있다. 코틀린은 null이 있을 것 같으면 미리 개발자에게 알려주기 때문에 오류의 발생 가능성을 줄여준다.
장점 2. 코틀린은 코루틴(coroutine)을 지원하는 문법이기 때문에 한 번에 많은 일을 실행할 수 있게 해준다.
장점 3. 코틀린으로 안드로이드 앱을 개발할 수 있다.
장점 4. 코틀린은 자바스크립으로 컴파일해서 React나 Node.js에서 사용할 수 있다.
오늘 TIL 요약
- 실제 프로젝트를 만들어보는 것이 진정한 프로그래밍 공부다!
- 인터프리트 언어는 동시 번역이고 컴파일 언어는 원서 통번역이다!
- 자바스크립트로 크로스 플랫폼 앱과 데스크 톱 앱을 만들 수 있다!
- 코틀린은 자바와 100% 호환된다!
오늘 읽은 소감 및 떠오르는 생각
장고를 이용한 웹개발과 자바스크립트를 이용한 하이브리드 앱이나 크로스 플랫폼 앱 같은 모바일 앱을 만들어보고 싶다.
그럼 나는 자바스크립트와 파이썬을 배우면 되겠네? 지금 바닐라JS를 배우고 있으니 더욱 이 과정에 집중해야겠다!
슬랙 사용해 보기