IT 독서 첫 걸음 떼기 #1-1.

김지호·2023년 3월 21일
0

독서

목록 보기
2/2
post-thumbnail

리눅스..우분투..API 호출..JSON..DB..프레임워크..?
IT 회사의 인턴으로 지내면서 매일 접하는 용어지만 "그래서 정확히 뭐지?"라는 의문이 머릿속에서 떠나지 않았다. 이렇게 혼란을 겪고 있던 나에게 빛 한 줄기가 되어준 책을 발견하였다.

위 책은 그야말로 'IT 기초 용어 101'마냥 내 질문을 시원하게, 쉽게, 그리고 무엇보다 재미있게 해결해주었다.
따라서 책 내용을 기억하기 위해 챕터마다 정리해보기로 결심했다.
1장부터 마지막 장까지 진득하게 되새김질 하며 학습 내용을 업로드할 예정이다.

1. 오리엔테이션

왜 자꾸 파이썬을 배우라고 하는거죠?

“파이썬 배워봐. 그게 쉬워”, “JAVA부터 시작해. 써먹을 곳이 많아”...
세상은 IT 산업에 종사하는 비전공자들에게 개발 공부를 강요한다.

가장 먼저 알아야 할 지식은 ‘프로그래밍 언어’가 아닙니다.

IT 산업은 다른 산업과 다르게 변화의 사이클이 엄청나게 빠르다. 변화의 속도가 빠르기 때문에 처음부터 완성된 형태를 정해놓고 (프로그램이든, 프로젝트든 무언가를) 만드는 것은 위험한 일이다.
따라서 IT 서비스는 완벽한 프로세스가 없고, 고객의 니즈와 회사의 사정에 맞춰 그때그때 서비스가 계속 ‘발전’되어 나간다.
결국, IT 산업에서 일하는 기획자는 프로그래밍 언어가 먼저 필요하지 않다. “커뮤니케이션을 위한 IT지식”을 공부해야 한다. 대화를 하지 못하면 판단할 수 없고, 서비스를 발전시킬 수 없기 때문이다.

2. 프로그래밍 언어 & 운영체제 (OS)

프로그래밍 언어가 ‘언어’라고?

인간 → 컴파일러 → 컴퓨터

컴파일러는 컴퓨터가 해야 하는 일을 개발자가 작성한 문서다.

비유: 컴파일러는 인간의 요구를 컴퓨터가 이해할 수 있게끔 일하는 “번역가” 역할이다.

현실: 프로그래밍 언어를 사용해 컴파일러에게 명령 전달하면 컴파일러가 그 명령을 기계어인 0과 1로 변환해 컴퓨터에게 전달한다.

개발자는 앉아서 뭐 하는 건지

IDE(Integrated Development Environment, 통합 개발 환경) - 개발을 하기 위한 모든 것들(코딩에 필요한 기능 등)을 제공해주는 환경
ex. AndroidStudio, Xcode, PyCharm…

뭐가 이렇게 많아?

개발자들은 다양한 프로그래밍 언어를 만들었고, 그중에서 많은 사람이 선택한 언어가 살아남는다.

-프로그래밍 언어의 장단점-

그럼 저수준 언어를 사용하는 이유는 무엇일까?
컴퓨터 사양을 낮춰서 컴퓨터를 싸게 만들고 싶기 때문이다.

컴퓨터 구매해보셨나요?

하드웨어?
CPU : 컴퓨터의 머리, 데이터를 저장하지 않음
메모리 (RAM) : CPU의 개인 작업 공간
보조기억장치 - HDD/SSD : 컴퓨터의 창고

CPU와 보조기억 장치가 같이 일을 하면 속도가 하향 평준화가 된다.
따라서 속도 향상을 위해 메모리가 만들어졌다.
큰 데이터 뭉치를 보조기억장치에서 메모리로 한 번 옮겨놓고 메모리 안에서만 작업하면 되기 때문에 CPU는 데이터를 필요할 때마다 요청하지 않아도 된다.
다시 말하면, CPU가 메모리 위에서 빠르게 작업 수행한다.

그럼 앱 로딩 과정에서 무슨 일이 일어날까?
보조기억장치에서 ‘실행에 필요한 데이터’가 메모리로 올라가고 있다.

우린 왜 이 이야기들이 낯설까?

이 이야기들이라 하면 하드웨어의 부품과 해당 부품들이 어떻게 컴퓨터 내부에서 작동하는지를 가리킨다.

왜 낯설까?

  • 프로그램 실행할 때의 과정을 몰라도 프로그램을 사용하는 데에 아무 문제가 없기 때문이다.

왜 문제가 없을까?

  • 왜냐면 운영체제 (OPERATING SYSTEM)라는 소프트웨어가 모든 과정을 대신해주기 때문이다. 운영체제는 우리 대신 하드웨어 관리를 해준다.

여기서 개발자들은 특정 운영체제 위에 돌아가는 프로그램을 만드려면 특정 언어를 사용해야 한다.
ex.
애플의 운영체제 (mac os, ios) - objective-C, 스위프트
구글의 운영체제 (android) - 자바, 코틀린

우리가 자바 최신 버전을 설치해야 하는 이유

과거에는…

  • 운영체제 종류가 훨씬 다양했기 때문에 개발자가 배워야 하는 프로그래밍 언어도 많았다. 따라서 프로그램 버그를 수정하거나 새로운 기능을 추가할 때 같은 작업을 여러 언어로 수행해야 하는 문제점이 있었다.

현재에는…

  • JVM(Java Virtual Machine 이라는 소프트웨어)을 설치한 후 자바로만 프로그램을 만들어도 모든 운영체제에서 사용할 수 있게 된다.
  • 파이썬도 마찬가지로 모든 운영체제 위에서 프로그램을 설치 및 실행 할 수 있다.

JVM 같은 소프트웨어의 장점

profile
험난한 길을 택해버린 비전공자 데이터 분석가

0개의 댓글