IT 5분 잡학사전 #2

Noah·2023년 1월 18일
0

개발 도서

목록 보기
2/9
post-thumbnail

TIL 날짜 및 읽은 범위

  • 2023.01.15
  • Ep.6(왜 나만 오류가 자주 생길까?) ~ Ep.10(코틀린은 정말로 자바와 100% 호환될까?)

에피소드 6 : 왜 나만 오류가 자주 생길까 ?

오류를 통해 훌륭한 개발자가 되는 방법

코드를 처음부터 완벽하게 쓰는 개발자는 이 세상에 없어. 물론 여러분이 지금 막 프로그래밍을 배우는 단계라면 다른 사람보다 좀 더 많이 실수할 수도 있어

훌륭한 개발자도 실수를 해. 다만 그들은 실수를 그냥 넘기지 않고 성장을 위한 발판으로 사용하지

우리도 그렇게 하자고!

방법 1. 문제가 생겼을 때 나 자신을 문제에서 빼지 말 것

인터넷에서 찾은 문서나 책을 보고 똑같이 코드를 입력했는데도 오류가 발생할 수 있어

이때 책이나 인터넷 문서 탓만 하면 안돼

생각을 바꾸는 거야. 코드가 작동하지 않는 이유는 ‘코드를 입력한 나 자신 때문이다’ 라고

그때부터 실수가 다르게 보일거야. 그리고 시야를 더 넓게 가질 수도 있겠지!

방법 2. 오류부터 고치려고 무작정 달려들지 말 것

오류를 고치기 전에 오류가 왜 생겼는지를 알아야 한다는 거야

왜 오류가 났는지 원인을 찾고 이해해야 나중에 비슷한 상황에서 같은 실수를 반복하지 않겠지?

방법 3. 오류 메시지를 읽을 것

초보가 절대 안 하는 것이 하나 있어. 그건 바로 오류 메시지 읽기야

그러면 안돼! 오류 메시지에는 대부분 오류가 발생한 위치와 원인, 오류를 고치는 방법이 친절하게 적혀 있어

오류가 나서 화난 그 마음은 잘 알지만 코드로 돌아가지 말고 오류 메시지부터 읽는 습관을 기르도록 해

프로그래밍 초보자가 하기 쉬운 실수

실수 1. 공부만 하고 실제로 무언가 만들어 보지 않는다

프로그래밍은 손으로 직접 해야해. 프로그래밍은 동사라고!

프로그래밍을 공부한다면 나만의 코드로 프로젝트를 완성하는 것을 목표로 해야 해

선생님이 칠판에 적어 준 것처럼 코드를 따라 적고, 책에 있는 코드를 베끼기만 해서도 안돼

너 자신의 힘으로 프로그램을 만들어야 해

초보자에게 맞는 현실적인 목표를 세워야 해

실수 2. 항상 프로그래밍을 할 준비를 더 해야 한다고 생각한다

왜냐하면 프로그래밍을 할 기회를 그만큼 잃어버리는 것이거든

계속 말로만 코딩하고, 강의를 사재기하고, 책만 모으는 사람

그렇게 눈으로만 보고 말하는 사람은 사실 무언가를 만들지 않아 이런 사람은 자신의 실력을 확인할 수 없기 때문에 자신에 대한 믿음이 생길 수가 없지

그래서 더 준비해야 한다고 하는 거야

자신의 성과를 측정하고 싶다면 일단 뭐든지 좋으니까 만들어 봐

“뜨금하는 내용이 참 많았다.”


에피소드 7 : 파이썬은 왜 이렇게 인기가 많을까 ?

개발자들은 파이썬을 정말로 좋아할까 ?

인기 이유 1. 파이썬은 영어와 매우 비슷해서 친숙하다

우리가 일상에서 사용하는 언어의 구조와 비슷한 거지

심지어 어떤 코드는 ‘무슨 일을 하기 위한 코드인 것 같다’ 라고 짐작할 수 있을 정도야

인기 이유 2. 파이썬은 활용 범위가 매우 넓다

만능 도구인거지

인공지능 & 데이터 분야 : 케라스, 텐서플로, 판다스 등

웹 개발 분야 : 장고, 플라스크 등

업무 자동화 분야 : 엑셀, 메일 보내기 등

이미지 처리 분야

게임 분야

GUI 분야 등

인기 이유 3. 파이썬의 커뮤니티가 어마어마하게 크다

파이썬의 활용 범위는 아주 넓으니까 개발자도 다양한 분야에서 모이기도 쉽거든

머신 러닝, 웹 개발, 해킹, 데이터 분석, 수학자, 금융 전문가 등 다양한 분야에서 자신이 만든 프로그램 (오픈소스)을 들고 커뮤니티를 이뤄 활동해

인기 이유 4. 파이썬의 업무 자동화에 완전 찰떡

스크립팅 (scripting) 이라고 하는데, 지루한 반복 작업을 자동화해 주는 것을 말해

회계사, 법조인, 학생, 공무원 등 누구든지 조금만 공부하면 파이썬으로 스크립팅 정도는 할 수 있어


에피소드 8 : 파이썬이 C 언어보다 느린 이유는 ?

2가지 방법으로 번역되는 프로그래밍 언어

인터프리트 언어 (interpreted language)컴파일 언어 (compiled language)
직역해석하다편집하다
대표적인 언어파이썬, 자바스크립트C 언어
예시동시 통역사, 실시간으로 번역번역가, 통째로 번역한 다음 전달

인터프리트 언어와 컴파일의 차이는 실시간 여부에 달려 있어

프로그래밍 언어에 속도 차이가 나는 이유

파이썬은 컴퓨터에게 실시간으로 0과 1로 이뤄진 문장을 주절 주절 실시간으로 통역해 줄 거야

인터프리터가 매 순간 파이썬 언어를 0과 1로 통역해야 하는 것이지

그러므로 인터프리터가 작업해야 하는 횟수는 코드가 많을수록 늘어나는 거야

C 언어는 반대야. 완성된 코드를 한꺼번에 묶어서 통번역하므로 작업 횟수가 한정되어 있어

그러니 C 언어가 더 빠른거야. 중간 과정이 매우 단순하잖아

인터프리트 언어는 오류를 제때 알기 힘들다

코드를 100줄로 프로그램을 작성했는데 97번째 줄까지 잘 실행되다가 98번째 줄에서 오류가 발생한 셈이니까. 그러면 97번째 줄까지 실행한 시간은 다 버린 셈이 되거든

반면 컴파일 언어에서는 종이에 적힌 단어를 다 번역할 때까지 대화를 시작하지 않아


에피소드 9 : 자바스크립트는 웹 개발에만 쓰는 언어 일까 ?

자바스크립트로 만든 50억 개가 넘는 웹사이트

현재 세상에서 가장 유명한 프로그래밍 언어는 바로 자바스크립트야

웹 사이트는 어마무시하게 많아. 그 사이트들이 모두 자바스크립트를 사용한다고 생각하면 아마 내 말을 이해할 수 있을 거야

뿐만 아니라 웹사이트 말고도 무궁무진하게 많은 곳에서 쓰여

자바스크립트로 할 수 있는 무궁무진한 것들

하이브리드 앱, 크로스 플랫폼 앱을 만들 수 있다

모바일 애플리케이션 용어야. 쉽게 말해 한번의 개발로 아이폰, 안드로이드폰 양쪽 모두에서 사용할 수 있는 애플리케이션을 의미해

특징은 같지만 만드는 방식은 달라. 예를 들어 하이브리드 앱을 만들고 싶다면 아이오닉(Ionic), 크로스 플랫폼 앱을 만들고 싶다면 리액트 네이티브 (React Native) 라는 도구를 사용해야 해

다만 그 도구들은 모두 자바스크립트를 사용하지

윈도우, 맥, 리눅스를 위한 데스크톱 소프트웨어를 만들 수 있다

일렉트론 (Electron) 을 활용하면 돼

일렉트론은 HTML, CSS, Javascript 를 가져다 컴파일해서 윈도우, 맥, 리눅스에 설치 할 수 있는 소프트웨어를 만들어 주는 도구야

게임을 만들 수 있다

phaser.js, impact.js 라는 도구를 사용하면 게임을 만들 수 있어

node.js 나 socket.io 와 같은 자바스크립트에 기반한 네트워크 관련 도구를 섞어서 멀티플레이 게임도 만들 수 있어

3D, 가상 현실, 증강 현실 개발도 할 수 있다

three.js 라는 자바스크립트에 기반한 도구가 있는데, 이 녀석을 활용하면 무려 3D 개발까지 할 수 있어

또한 이 도구를 응용하면 브라우저에서 실행할 수 있는 3D게임, 인터랙티브 웹 사이트를 만들 수도 있지

머신러닝도 할 수 있다

tensorflow.js 라는 도구를 사용하면 인공지능을 만들 수도 있는 거지

“자바스크립트, 그의 매력의 끝은 어디인가 … “


에피소드 10 : 코틀린은 정말로 자바와 100% 호환될까 ?

코틀린이 자바와 정말 100% 호환된다고 ?

여러분이 자바로 개발한 시스템을 유지. 보수하는 사람이라고 생각해보자. 그런데 이미 개발한 시스템에 코틀린을 사용해 보고 싶다면 바로 가능하다는 소리야

코틀린이 자바와 99%도, 99.9%도 아닌 100% 호환되기 때문이야

코틀린의 탄생 비화

코틀린은 젯브레인즈 (JetBrains) 라는 곳에서 만들었어. 인텔리제이 (IntelliJ) 라는 IDE 를 개발한 체코회사야

이 화사에서 개발한 IDE 는 코드의 70%가 자바였어. 자바보다 더 좋고 멋진 프로그래밍 언어로 개선하고 싶었던거야 그래서 자바와 호환되는 언어가 필요했던 건데, 그냥 코틀린이라는 언어를 만들어 버린거지

2017년에 엄청난 인기를 끌었지. 왜냐고 ? 구글이 안드로이드 앱 개발에 사용하면 좋을 언어로 코틀린을 강력 추천했거든

대체 자바와 어떻게 완벽하게 호환 될 수 있냐고?

자바 가상 머신 때문이야

컴필레이션과 인터프리테이션을 다 활용하는 자바

컴파일 해서 얻는 결과물은 자바 바이트라는 것이지

그리고 이 자바 바이트 코드는 다시 윈도우, 리눅스, 맥OS에서 실행될 때 자바 가상 머신이라는 녀석이 해석해서 각각의 기계어로 번역해줘

코틀린을 굳이 써야 하는 이유는?

장점 1. 코틀린은 null 에서 안전한 언어다

널이란 값이 아예 없다는 뜻인데, 숫자 0과 완전히 다른 개념이야

자바로 프로그램을 만들면 프로그램을 실행하는 도중에 널이 생길 수 있는데, 프로그램으로서는 처리할 값이 없으니 오류가 발생하는 거지

코틀린은 코드를 실행하기 전에 널이 있을 것 같으면 미리 개발자에게 알려줘

장점 2. 코틀린은 코루틴을 지원하는 언어이다

이 문법은 많은 일을 한번에 실행할 수 있게 해줘

코틀린을 활용할 수 있는 방법은?

안드로이드 앱 개발, 자바스크립트로 컴파일해서 리액트나 노드제이에스에 활용할 수도 있어

데이터 과학에도 사용할 수 있어

profile
프론트엔드가 꿈인 코린이

0개의 댓글