리눅스..우분투..API 호출..JSON..DB..프레임워크..?
IT 회사의 인턴으로 지내면서 매일 접하는 용어지만 "그래서 정확히 뭐지?"라는 의문이 머릿속에서 떠나지 않았다. 이렇게 혼란을 겪고 있던 나에게 빛 한 줄기가 되어준 책을 발견하였다.
위 책은 그야말로 'IT 기초 용어 101'마냥 내 질문을 시원하게, 쉽게, 그리고 무엇보다 재미있게 해결해주었다.
따라서 책 내용을 기억하기 위해 챕터마다 정리해보기로 결심했다.
1장부터 마지막 장까지 진득하게 되새김질 하며 학습 내용을 업로드할 예정이다.
“파이썬 배워봐. 그게 쉬워”, “JAVA부터 시작해. 써먹을 곳이 많아”...
세상은 IT 산업에 종사하는 비전공자들에게 개발 공부를 강요한다.
IT 산업은 다른 산업과 다르게 변화의 사이클이 엄청나게 빠르다. 변화의 속도가 빠르기 때문에 처음부터 완성된 형태를 정해놓고 (프로그램이든, 프로젝트든 무언가를) 만드는 것은 위험한 일이다.
따라서 IT 서비스는 완벽한 프로세스가 없고, 고객의 니즈와 회사의 사정에 맞춰 그때그때 서비스가 계속 ‘발전’되어 나간다.
결국, IT 산업에서 일하는 기획자는 프로그래밍 언어가 먼저 필요하지 않다. “커뮤니케이션을 위한 IT지식”을 공부해야 한다. 대화를 하지 못하면 판단할 수 없고, 서비스를 발전시킬 수 없기 때문이다.
인간 → 컴파일러 → 컴퓨터
컴파일러는 컴퓨터가 해야 하는 일을 개발자가 작성한 문서다.
비유: 컴파일러는 인간의 요구를 컴퓨터가 이해할 수 있게끔 일하는 “번역가” 역할이다.
현실: 프로그래밍 언어를 사용해 컴파일러에게 명령 전달하면 컴파일러가 그 명령을 기계어인 0과 1로 변환해 컴퓨터에게 전달한다.
IDE(Integrated Development Environment, 통합 개발 환경) - 개발을 하기 위한 모든 것들(코딩에 필요한 기능 등)을 제공해주는 환경
ex. AndroidStudio, Xcode, PyCharm…
개발자들은 다양한 프로그래밍 언어를 만들었고, 그중에서 많은 사람이 선택한 언어가 살아남는다.
-프로그래밍 언어의 장단점-
그럼 저수준 언어를 사용하는 이유는 무엇일까?
컴퓨터 사양을 낮춰서 컴퓨터를 싸게 만들고 싶기 때문이다.
하드웨어?
CPU : 컴퓨터의 머리, 데이터를 저장하지 않음
메모리 (RAM) : CPU의 개인 작업 공간
보조기억장치 - HDD/SSD : 컴퓨터의 창고
CPU와 보조기억 장치가 같이 일을 하면 속도가 하향 평준화가 된다.
따라서 속도 향상을 위해 메모리가 만들어졌다.
큰 데이터 뭉치를 보조기억장치에서 메모리로 한 번 옮겨놓고 메모리 안에서만 작업하면 되기 때문에 CPU는 데이터를 필요할 때마다 요청하지 않아도 된다.
다시 말하면, CPU가 메모리 위에서 빠르게 작업 수행한다.
그럼 앱 로딩 과정에서 무슨 일이 일어날까?
보조기억장치에서 ‘실행에 필요한 데이터’가 메모리로 올라가고 있다.
이 이야기들이라 하면 하드웨어의 부품과 해당 부품들이 어떻게 컴퓨터 내부에서 작동하는지를 가리킨다.
왜 낯설까?
왜 문제가 없을까?
여기서 개발자들은 특정 운영체제 위에 돌아가는 프로그램을 만드려면 특정 언어를 사용해야 한다.
ex.
애플의 운영체제 (mac os, ios) - objective-C, 스위프트
구글의 운영체제 (android) - 자바, 코틀린
과거에는…
현재에는…
JVM 같은 소프트웨어의 장점