노마드 코더에서 진행하는 챌린지 기록들
노개북 챌린지 2일차
오늘의 범위
- episode 6: 왜 나만 오류가 자주 생길까?
- episode 7: 파이썬은 왜 이렇게 인기가 많을까?
- episode 8: 파이썬이 C 언어보다 느린 이유는?
- episode 9: 자바스크립트는 웹 개발에만 쓰는 언어일까?
- episode 10: 코틀린은 정말로 자바와 100% 호환될까?
Ep 6 왜 나만 오류가 자주 생길까?
훌륭한 개발자는 실수 없이 코드를 줄줄 완벽하게 쓸 줄 아는 사람이 아니다. 실수를 넘기지 않고 성장의 발판으로 삼는 사람이다.
1. 문제가 생겼을 때 나 자신을 빼지 말 것
코드에서 자꾸만 오류가 날 때 나 자신을 한 번 되돌아보자. 책이나 인터넷에서 가져온 코드를 제대로 입력했는지, 문서 탓만 하지 말고 나에게서 문제를 찾아보자.
아니 해달라고 하는대로 다 해줬는데 왜 안되냐고!!
2. 오류부터 고치려고 달려들지 말 것
오류가 생겼을 때 무작정 고치려고만 들지 말고 왜 오류가 발생했는가에 대해 생각해보자. 오류 났다고 바로 구글, 스택오버플로우 등 질문부터 할 게 아니라 스스로 생각해보고 원인을 찾아 이해해야지 다음에 똑같은 실수를 반복하지 않는다.
3. 오류 메시지를 읽을 것
오류 메시지에는 오류가 발생한 위치와 원인, 고치는 방법이 적혀 있으니 잘 읽어보고 해결하자.
훌륭한 개발자도 실수를 해. 다만 그들은 실수를 그냥 넘기지 않고 성장을 위한 발판으로 사용하지.(p.40)
Ep 7 파이썬은 왜 인기가 많을까?
스택오버플로우 2022 설문조사 결과 가장 인기 있는 프로그래밍 언어로 자바스크립트, HTML/CSS, SQL, 파이썬이 순서대로 줄을 이었다.
2018년 기준 파이썬은 자바보다도 순위가 낮았지만 해가 지날수록 인기가 점점 높아져 Top 5까지 들게 되었다. 파이썬이 인기가 많아지는 이유가 뭘까.
영어와 비슷해 친숙하다
파이썬 자체로 영어와 비슷하기 때문에 프로그래밍을 처음 시작하는 사람도 거부감 없이 배울 수 있다. 코드만 보고도 어떤 동작을 하게 하는 코드인지 예상할 수 있을 정도니까.
다른 언어를 하다가 파이썬을 쓸 때 코드가 쉽고 간결해서 가끔 너무 어색하다..
활용 범위가 매우 넓다
파이썬으로 할 수 있는 개발 분야가 다른 언어에 비해 다양하기 때문에 범용성이 좋다는 장점이 있다. 인공지능, 웹 개발, 업무 자동화, 게임 등등 하나만 배워도 여러 분야에서 쓸모 있으니 매우 이득!
커뮤니티가 크다
파이썬의 활용 분야가 넓기 때문에 개발자도 다양한 분야에서 자신이 만든 프로그램을 공유한다. 그래서 다른 언어에 비해 강의나 영상이 많고 질의응답을 쉽게 찾을 수 있다.
업무 자동화에 유용하다
지루한 반복 작업을 자동화할 때 파이썬의 도움을 받을 수 있다. 몇 시간 걸릴 일을 단 몇 초 만에도 이뤄낼 수 있으니 인기가 많을 수밖에.
🎯 파이썬이 인기가 많은 이유
- 일상 언어와 비슷해 친숙함
- 활용 범위 넓음
- 큰 커뮤니티
- 업무 자동화 가능
Ep 8 파이썬이 C 언어보다 느린 이유는?
컴퓨터는 0과 1만 이해할 수 있다. 그래서 프로그래밍 언어는 우리가 작성한 코드를 반드시 0, 1로 해석해주는 과정을 거쳐야만 하는데, 여기서 속도가 결정된다.
인터프리터 언어(Interpreted Language)
인터프리터 언어는 작성된 코드를 실시간으로 0과 1로 번역해 컴퓨터에 전달한다. 대표적으로 자바스크립트와 파이썬이 이에 해당한다.
컴파일 언어(Compiled Language)
컴파일 언어는 코드를 통째로 번역해 컴퓨터에 전달한다(실시간 ✕). C 언어는 컴파일 언어이다.
인터프리터 언어는 실시간으로 매 순간 코드를 번역해야 하므로 한꺼번에 번역하는 컴파일 언어에 비해 속도가 느리다. 또한, 코드를 번역하는 도중에 오류가 발생하면 이전까지의 소요된 시간은 버린 셈이 되기 때문에 오류를 제때 알기 힘들다.
Ep 9 자바스크립트는 웹 개발에만 쓰는 언어일까?
자바스크립트는 웹 개발 이외에도 많은 곳에 쓰일 수 있다.
하이브리드 앱, 크로스 플랫폼 앱
하이브리드 앱과 크로스 플랫폼 앱은 모바일 애플리케이션 용어로, 한 번의 개발로 아이폰, 안드로이드폰 모두에서 사용할 수 있는 앱을 의미한다. 아이오닉(Ionic)
으로 하이브리드 앱을, 리액트 네이티브(React Native)
로 크로스 플랫폼 앱을 만들 수 있는데 이 도구들은 모두 자바스크립트를 사용한다.
데스크톱 소프트웨어
HTML, CSS, 자바스크립트를 가져다 컴파일하여 데스크톱 소프트웨어를 만들어주는 도구인 일렉트론(Electron)
을 활용하면 윈도우, 맥, 리눅스에 설치할 수 있다.
비주얼 스튜디오 코드(VSCode), 슬랙(Slack), 깃허브(Github), 아톰(Atom)과 같은 도구도 일렉트론으로 만들었다.
게임, 3D, 가상현실
phaser.js
, impact.js
라는 도구를 사용하여 자바스크립트로 게임을 만들 수도 있고 three.js
를 사용해서 3D 개발도 가능하다.
머신러닝
tensorflow.js
로 인공지능을 만드는 것도 가능하다.
Ep 10 코틀린은 정말로 자바와 100% 호환될까?
자바를 대체할 수 있는 언어로 코틀린의 이야기가 많이 대두되고 있다. 실제로 코틀린은 자바와 100% 호환되는 프로그래밍 언어이다.
100% 호환된다는 것은 자바로 개발한 시스템에 코틀린을 사용해 보고 싶으면 뭔가를 바꾸거나 하지 않아도 바로 사용할 수 있다는 것이다!
코틀린의 탄생 비화
코틀린은 JetBrains사에서 만들어졌는데, 자사가 개발한 IDE 코드의 상당 부분을 차지하고 있던 자바를 더 좋은 프로그래밍 언어로 개선하기 위함이었다. 대부분의 코드가 자바로 이루어져 있었기 때문에 호환되는 언어가 필요했었던 것이다.
구글이 안드로이드 앱 개발에 사용하면 좋을 언어로 코틀린을 추천한 후 이는 엄청난 인기를 끌었다.
자바는 코드를 자바 바이트 코드로 변형한 후에 자바 가상 머신이 해석해 기계어로 번역한다. 컴필레이션 방식과 인터프리테이션 방식을 둘 다 활용한다는 특징이 있다.
- 컴필레이션: 코드 전체를 받아 한 번에 기계어로 해석하는 것(운영체제마다 다른 기계어를 쓰기 때문에 실행 환경이 바뀔 때마다 컴파일 과정을 한 번씩 실행해 주어야 한다.)
- 인터프리테이션: 코드를 실시간으로 기계어로 해석하는 것
그래서 코틀린을 자바 바이트 코드로 컴파일하기만 하면 코틀린과 자바 사이에는 아무런 문제가 없다는 것이다. 이게 100% 호환의 의미이다.
코틀린을 사용해야 하는 이유
왜 자바를 놔두고 코틀린을 쓰는가?
첫 번째로 코틀린은 null에서 안전한 언어이기 때문이다. 코드를 실행하기 전에 null 값이 있으면 개발자에게 미리 알려준다. 자바와 달리 널 발생의 가능성을 미리 검사하는 언어인 것이다.
두 번째는 코루틴(coroutine)이라는 문법을 지원하기 때문이다. 코루틴은 한 번에 많은 일을 실행할 수 있게 해줘 개발자에게 유용하다.
느낀 점
파이썬, 자바, 코틀린 모두 조금씩은 접해봤지만, 자세히 다루거나 정보는 잘 몰랐었는데 왜 인기가 많은지, 속도는 왜 느린지 알게 되었다. 자바스크립트가 제일 익숙해서 기존에 관심을 두고 있던 리액트 네이티브, three.js, tensorflow.js뿐만 아니라 파이썬이나 코틀린 같은 다른 언어도 더 자세히 알고 싶어졌다.
처음에는 웹 개발로 시작했지만, 요즘은 앱도, 게임도 모두 만들고 싶다는 생각이 들어 나중에 하나씩 경험해보고 다 잘 다룰 수 있게 되었으면 좋겠다.
References
book - IT 5분 잡학사전