저는 IT출판사를 다니고 있어요.(보시다시피, 아시다시피 ㅋㅋ)
편집자도 아니고 개발자도 아니고 웹디자인, HTML 코딩과 웹을 전반적으로 관리하는 개발 쌩초보입니다.
매월 출간되는 도서들을 보면서 IT 트랜드를 하나씩 알아가고 있지만... 당최(약간 욱함ㅋ) 파이썬이 무엇이며, 딥러닝이 무엇인지 도서 상세 페이지를 봐도 모르겠다는 생각만 드는데요.
그렇다고... 겉핥기 식으로 IT콘텐츠를 만들고 싶지는 않고(어쭙잖은 자존심임) 매번 모르니까 못한다고 할 수도 없고(돈을 벌어야.. 밥을 먹을 수 있음ㅋㅋㅋ) 그래서 IT출판부 마케팅에 조OO 과장님을 찾아갔습니다.
개발 쌩초보 : 과장님............ IT에 대한 콘텐츠를 어떻게 만드는 게 좋을지 너무 고민이에요.
조OO 과장님 :
대리님, 이번에 나온 책 중에 쉽게 프로그래밍 언어를 접해볼 수 있는 책이 있어요. 직접 해보면서 개발에 대해 겪어보면 좋을 것 같아요.
여기요. ↓
개발 쌩초보 :
'(속마음) 부엉이다. 근데 줄리아를 생각하라고 하네, 왜... 줄리아 로버츠가 생각나지...줄리아가 무슨 뜻이지...' (이해부탁드려요. 저는 개발은 전혀 몰라요....)
조OO 과장님 :
쉽게 프로그래밍을 배울 수 있도록 만들었으니 차근차근해보세요 ^^
그리고.... 조과장님은 슝.............가셨어요. (쿨하게 가심 ㅋㅋ)
먼저.. 난 아무것도 모르기 때문에 옮긴이의 말부터 차근차근 읽어내려갔습니다.
일단 줄리아에 대한 궁금증이 한 번에 풀렸는데요.
"줄리아를 위키백과에서 찾아보면, 고성능의 수치해석 및 계산과학을 위한 고급 동적 프로그래밍 언어라고 되어 있습니다"
프로그래밍 언어였군. 그렇군. 인물이 아니였어ㅋㅋ (사람이 아는 만큼 보이는게 맞는 듯...함..)
------- <줄리아 위키백과 바로가기>
그리고 눈에 들어온 내용은 (↓ 책 내용)
줄리아는 다중 디스패치를 통해서 이런 문제를 해결하는데, 객체지향에 익숙하다면 이런 접근이 참신하게 느껴질 것입니다. 그러면 줄리아는 대체 얼마나 빠른 걸까요? 쉽게 믿기진 않겠지만 C와 포트란 수준으로 빠릅니다. 요즘에는 하드웨어 성능이 좋아졌기 때문에 실행 속도가 그렇게까지 중요하진 않은데, 딥러닝이나 데이터 과학 같은 분야에서는 여전히 무척 중요한 요소입니다. 다른 언어로도 못할 건 없지만, 특별한 라이브러리나 최적화 작업 없이도 충분히 빠르다는 것은 큰 장점입니다. 또 한 가지 무시할 수 없는 장점은 표현력이 좋다는 것입니다. 일단 줄리아 코드에는 불필요한 요소가 최소화되고 익숙한 수학적 표현을 거의 그대로 쓸 수 있어서, 작성된 줄리아 프로그램의 코드를 보면, 거의 의사 코드처럼 보입니다. 그렇게 쉬우면서도 한편으로는 LISP 수준의 강력한 메타프로그래밍이 가능하기 때문에 높은 수준의 추상화를 달성할 수 있습니다. 한마디로 쉽게 배워서 잘 써먹을 수 있는 언어라는 말입니다. 상대적으로 역사가 짧고, 주로 과학, 공학, 투자 분야에서 활용되기 때문에 전문 개발자가 반드시 배워야 할 언어라고 말하기는 어렵습니다만,
도구로서의 컴퓨팅이 필요하다면 줄리아가 거의 최고의 선택일 거라고 감히 말할 수 있습니다. 프로그래밍의 재미에 대해서 이제 알아가기 시작할 후배들에게 작게나마 도움이 되길 바랍니다.
그리고 더 용기를 얻은 한마디가 적혀있었는데 바로,
------- "이 책은 고등학교나 대학교 수준의 한 학기 과정에 사용될 수 있습니다."
그래서 용기 내서
줄리아를 깔아보고 아주아주 기본 CHAPTER 1 프로그램의 길을 시도해보았습니다.
먼저 25페이지에 내용을 차근차근 읽어보았어요. (↓ 책 내용)
줄리아를 시작할 때 처음 겪는 문제가 줄리아 관련 소프트웨어를 컴퓨터에 설치하는 것일 수 있습니다. 운영체제를 잘 알고, 특히 명령행 인터페이스command-line interface에 익숙하다면 문제가 없습니다만, 초심자라면 프로그래밍과 시스템 관리를 동시에 배워야 하는 것은 좀 괴로울수 있습니다.
그런 문제를 피하고 싶다면, 웹 브라우저에서 줄리아를 실행해보기를 추천합니다. 나중에 좀 더 줄리아에 익숙해지면, 그때 컴퓨터에 설치하기로 하고요. JuliaBox 사이트(https://www.juliabox.com)에 가면 웹 브라우저에서 줄리아를 실행할수 있습니다. 설치는 필요없고, 가서 로그인하기만 하면, 줄리아 프로그래밍을 해볼 수 있습니다.
근데.............
JuliaBox 사이트(https://www.juliabox.com)가...5월 말에 폐쇄한다고 하네요. 헉 ㅠ 그렇다면 다른 방법으로 줄리아를 만나봅니다.
https://julialang.org/downloads/ 요기서 다운을 받는 방법이 있지요. ㅋㅋ
여기서 잠깐!
담당 편집자에 따르면, 3월 21일에 올라인 최신 버전 v1.4.0에서도 실습 패키지가 설치되는 것을 확인했다고 합니다. 하지만 최신 버전은 어떤 변경 사항이 있을지 몰라 초보자에게는 권장하지 않는다고 하므로, 안정적인 장기 지원(LTS) 버전인 v1.0.5를 설치하겠습니다.
(줄리아를 내 것으로 만들기 위해 담당 편집자분을 자주 모셔서 자주 물어보고 자주 찾아뵐 예정입니다.ㅋㅋ 저...잘하고 있는것 같습니다.ㅋㅋㅋ 자뻑임 ^^ )
여기 아래에 보이는 v.1.0.5버전을 설치 중...(나 잘 깔고 있는거니..그런거니...괜히 모르는 프로그램이라 괜히 떨림)ㅋㅋㅋ
이때 또 하나! 또 둘! (총 두 개의) 주의점이 있어요!
(최적화된 환경 속에서 공부하기 위해 조금이라도 불편을 주는 요소는 샥샥 없애고자. 주의점이 알려드리니 참고해 주세용~)
복잡하죠.................. 그래도 이왕이면 한번 깔 때 제대로 깔아놓아야 평생 내 속이 편하니..
열심히 깔아봅니다.
자, 그럼 깔았으니 열어서 맛보기를 시작해보겠습니다. ㄷㄷㄷ (나 떨고 있니...)
출력하는 방법부터 시작!!!!
줄리아가 단어 스펠링... 빼먹고 틀리는 나의 실수를 잡아주다니 다행...(정확한 에러 문구가..전 참 좋아요. )
Hello, World!가 3번의 노력 끝에 잘나오네요,.ㅋㅋㅋ 푸하하하 보람~~됨 ㅋㅋㅋ(너무 작은 것에 좋아하나요..)
전....... 완전 초초초초초 초보입니다. ㅋㅋㅋ
다음으로 26장에 있는 산술 연사자를 배워봅니다.
더하기, 뺴기, 곱하기, 나누기, 거듭제곱을 해봅니다. (완전 신기!~!!! 자동으로 합계가 나오네요!!!)
84/2의 42.0이 의아하다고 생각하고 있는데
마침 책에서 이 부분이 의아할 수 있다고 하니..괜히 마음이 흐뭇합니다.(머지,,,나 왜이러지)ㅋㅋㅋ
이 부분은 다음절에서 설명해준다고 하니 일단 쿨하게 넘어가고
연산자 "^" 이 부분(6^2+6 에서 나온 것)은 거듭제곱이라고 해요. 주어진 수를 횟수만큼 곱하는 연산이라고 합니다.
정말 몇 개 안 해봤는데...나 왠지 똑똑해진 기분은 뭘까요.(겸손할께요..☞☜)
다음으로 27페이지에 값과 자료형에 대해서 알아봅니다. (↓ 책 내용)
값value이라는 건 문자나 숫자처럼 프로그램이 다루는 가장 기본적인 것입니다. 지금까지 나온
값들 중에서 몇 개만 골라보면 2, 42.0, "Hello, World!"가 있습니다.
이 값들은 각기 다른 자료형type에 속하는데요, 2는 정수integer이고, 42.0은 부동소수점 수floatingpoint
number이고, "Hello, World!"는 문자열string입니다. 문자열이 영어로 string (끈)인 이유는
각 문자character가 끈에 꿰어져 있는 것처럼 보여서 그렇습니다. 우리말로는 문자의 나열이죠.
어떤 값의 자료형이 궁금하면, REPL에 typeof()를 써서 알 수 있습니다.
정수와 부동소수점, 문자열이 진짜 나오는지 확인해봅니다. (오타로 인한 에러가 있었지만... 이해해주실꺼죠?^_____^;;;;)
잘나오네요. 오오오오오~~~
그렇다면 숫자인 "2", "42.0"은 어떨까요? 숫자이지만 따옴표가 있기 때문에 문자열이라고합니다.
이것도 해봐야죠. (무조건 경험이 짱)
큰 수를 입력할 때는 어떻게 입력해야 되나 보니
수를 입력할 때 1,000,000처럼 세 자리마다 쉼표를 넣고 싶을 수도 있습니다. 그런데 줄리아에서 이렇게 하면, 문제없이 입력은 되는데 자료형이 정수가 아니게 됩니다.
줄리아는 1,000,000을 쉼표로 구분된 정수의 나열로 해석했습니다. 이런 나열에 대해서는 나중에 배워보지요.
제대로 입력하는 방법은 밑줄 문자underscore를 써서 1_000_000으로 입력하는 것입니다.
쉼표 말고 아래 하이픈을 써야 되네요. 오오
마지막으로 쉽고 간단한 용어를 쭉 읽어봅니다.
문제 해결problem solving
문제를 정의하고, 해결책을 찾고, 표현하는 과정.
프로그램program
어떤 연산을 하는 명령문의 나열.
REPL
반복적으로 입력을 읽고, 실행한 후, 결과를 출력하는 프로그램.
프롬프트prompt
REPL 프로그램이 사용자로부터 입력받을 준비가 되었음을 표시하는 문자열.
출력문print statement
줄리아 REPL이 어떤 값을 화면에 출력하도록 하는 명령.
연산자operator
덧셈, 곱셈, 문자열 결합과 같은 단순 연산을 표현하는 기호.
값value
숫자나 문자열같이 프로그램이 다루는 자료의 기본 단위.
자료형type
값의 범주. 지금까지 살펴본 자료형은 정수(Int64), 부동소수점 수(Float64), 문자열
(String)이 있음.
정수integer
정수를 표현하는 자료형.
부동소숫점floating-point
소수점이 있는 수를 표현하는 자료형.
문자열string
문자의 나열을 표시하는 자료형.
자연언어natural language
사람들이 사용하는 자연적으로 발생한 언어.
형식언어formal language
수학적 아이디어나, 컴퓨터 프로그램처럼 특정한 목적을 가지고, 사람이 설계한 언어. 모든 프로그래밍 언어는 형식언어임.
구문syntax
프로그램의 구조를 정하는 규칙.
토큰token
프로그램의 구문 구조를 이루는 기본 단위. 자연언어의 단어에 대응.
구조structure
토큰이 결합되는 방식.
구문 분석parse
프로그램을 읽어서 구문 구조를 분석하는 행위.
버그bug
프로그램의 오류.
디버깅debugging
버그를 찾고, 고치는 행위.
개발은 엄청 복잡하고 어려운 건 사실인 것 같지만
그래도 하나하나 차근차근해가니 이해가 되네요.
내가 똑똑한 것인가...개발 언어가 나를 이해해 주는 것인가...ㅋㅋㅋ
다음 주에는 변수, 표현식, 문장을 해봐야겠어요. 다음 주에 다시 만나용!!~~~~~^_^
데이터 과학자를 위한 최적의 프로그래밍 언어 "줄리아를 생각하다"
이전 글 : 책의 숲에서 안녕을 바랍니다.
최신 콘텐츠