녕녀기의 실험일지

[ IT ] IT 용어 정리 1탄(2장) 본문

-- Data --

[ IT ] IT 용어 정리 1탄(2장)

녕녀기 2023. 4. 5. 19:02

안녕하세요. 녀기입니다!

 

정말 저같은 비전공자에게 있어 IT 용어는 마치 마법 주문과 같아요ㅠㅠ😱

 

일평생을 컴맹처럼 살아가던 사람이 용어를 받아들이자니 쉽지 않고....

 

(과학이나 공학 용어는 왠만해서는 쉽게 받아들였던 것 같은데...ㅋㅋ)

 

어떤 회사가 있던지 살펴 보던 중에

 

한 스타트업에서 일하고 계시던 분이 소개시켜 준 책이 있습니다.

 

바로!!

 

http://www.yes24.com/Product/Goods/91165789

 

비전공자를 위한 이해할 수 있는 IT 지식 - YES24

우리는 매일 스마트폰으로 메시지를 보내고, 컴퓨터로 일을 한다. 또 음식점에서 키오스크로 주문하고, 가상현실에서 게임을 즐긴다. IT는 더 이상 전문가들만의 이야기가 아니다. 우리의 삶 곳

www.yes24.com

이 책인데요.

 

저는 도서관에서 빌려 읽고 있지만 

 

사서 하나 비치해 놓으면 좋을 것이라는 생각이 강렬하게 듭니다!!

 

(물론 저는 영업 사원이 아니구요😊)

 

이 책의 장점이라면 물론

 

비전공자라도 쉽게 이해할 수 있도록 현실에 있을 법한 일에 빗대어서 설명해 준다는 것 입니다.

 

원래 아무 것도 모르는 사람을 이해시킬 수 있는 사람이 진정으로 그것을 이해한 사람이다!

 

라는 말이 있듯이

 

저자는 최대한 쉽게 설명해 주고 있습니다.

 

저는 이것을 떠받아 먹기만 하면 되는 것이지요~

 

평소에는 제 사담 때문에 본문으로 가기 위한 링크를 달아 놓지만

 

이번에는 달지 않을 것 입니다!!

 

본문 구성은 사전적 의미와 

 

이 책에서 설명하는 내용을 모두 적어 놓을 것이니

 

누군가에게는 도움이 됐으면 좋겠어요💕


목차

  1. 컴파일러(Compiler)
  2. 프로그래밍(Programming)
  3. 코딩(Coding)
  4. IDE(Intergrated Development Environment, 통합 개발 환경)
  5. 저수준 언어(저급 프로그래밍 언어, Low-Level Programming Language)
  6. 고수준 언어(고급 프로그래밍 언어, High-Level Programming Language)
  7. CPU(Central Processing Unit, 중앙처리장치)
  8. 랜덤 엑세스 메모리(Random-Access Memory, RAM)
  9. 하드 디스크 드라이브(Hard Disk Drive, HDD)
  10. 솔리드 스테이트 드라이브(Solid-State Drive, SSE)
  11. 운영 체제(Operating System)
  12. 자바 가상 머신(Java Virtual Machine, JVM)

 

(안 하려고 했는데 너무 많아서 제가 찾기 힘드네요🫡)


1. 컴파일러(Compiler) : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말함

출처 : 위키백과

 

이 책에서는 컴파일러에 대해 '번역가'와 같은 일을 한다고 나와 있습니다.

 

 

만약 내가 외국인과 대화하는 상황에서, 그 나라 언어를 할 수가 없다면?

 

나의 언어를 번역해 줄 누군가가 필요하다.

 

여기서 '나'는 개발자 입니다. 자바나 파이썬, 루비, 스위프트와 같은 프로그래밍 언어로 명령을 전달하는 사람.

 

번역가는 컴파일러 입니다. 프로그래밍 언어로 전달 받은 내용을 기계어인 0과 1로 변환합니다.

 

외국인은 컴퓨터 입니다. 번역된 기계어를 통해 명령을 수행합니다.

 

(위에서 언급한 설정을 다음 내용에서도 그대로 가져간다고 생각해 보아요~)


2. 프로그래밍(Programming) : 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터
프로그램으로 구현하는 기술

3. 코딩(Coding) : 작업의 흐름에 따라 프로그램 언어의 명령문을 써서 프로그램을 작성하는 일 또는, 프로그램의 코드를

작성하는 일

출처 : 위키백과

 

코딩은 프로그래밍의 하위 개념이라고 합니다만, 실제 현업에서는 둘을 구분하지 않고 사용하고 있다고 합니다.

 

저는 코딩이 편하므로 프로그래밍과 코딩을 말할 때 전부 코딩이라고 말할게요.

 

코딩을 하는 과정은 새로 온 아르바이트 생에게 업무 지시서를 만들어서 주는 것과 같다고 보시면 됩니다.

 

손님이 왔을 때 --> 어서 오세요!

카운터에 도달했을 때 --> 주문 도와드리겠습니다!

주문을 했을 때 --> 결제 도와드릴게요.

    1. 카드일 때 --> 카드 결제를 누른다

    2. 현금일 때 --> 현금 결제를 누른다

        1) 현금 영수증 여부를 물어본다

............................

 

와 같이 업무에 대한 내용을 프로그래밍 언어로 정리하는 작업을 코딩이라고 하는 것이지요.

 

 

보통 개발 업무는 다음과 같을 수 있습니다.

 

"사용자가 들어왔다면, 스플래쉬 스크린을 띄워서 인사"

"사용자가 로그인을 안 했다면, 로그인 페이지로"

"로그인을 했다면 메인 페이지로"

"만약 사용자가 A 버튼을 누르면 이렇게 하고, 메세지가 오면 저렇게 하고....."

 

같은 일이 진행됩니다.


4. IDE(Intergrated Development Environment, 통합 개발 환경) : 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어

출처 : 위키백과

 

IDE는 개발을 위한 모든 환경을 제공해 줍니다.

 

0과 1로 이뤄진 기계어를 하나하나 직접 입력할 수는 없으니 프로그래밍 언어가 있을텐데

 

개발자들도 프로그래밍 언어에 모든 것을 알 수는 없을 것 입니다.

 

그래서 코딩에 적합한 기능을 모아 놓은 것이 IDE이고

 

보통 앞 몇 글자만 쳐도 자주 쓰이는 문장을 추천해 주거나, 코드가 아닌 그림으로 작업할 수 있게 해 주는 등

 

여러 기능이 있습니다.

 

마치 '워드 프로세서'나 '한글'과 같은 문서 작성 프로그램에서

 

표를 만들고, 단을 나누고 할 수 있는 것처럼 필요한 기능을 제공해 줍니다.

 

 IDE에는 어떤 것들이 있을까요?

 

책에서는

 

안드로이드 애플리케이션 개발 용도로 쓰이는 Android Studio

 

애플 기기의 앱을 만드는 Xcode

 

C/C++, Java, 웹 개발 용도의 Eclipse

 

등이 소개돼 있습니다.


5. 저수준 언어(저급 프로그래밍 언어, Low-Level Programming Language) : 컴퓨터가 이해하기 쉽게 작성된 프로그래밍

언어, 일반적으로 기계어와 어셈블리어를 일컬음

6. 고수준 언어(급 프로그래밍 언어, High-Level Programming Language) : 사람이 이해하기 쉽게 작성된 프로그래밍 언어,

저급 프로그래밍 언어보다 가독성이 높고 다루기 간단함

출처 : 위키백과

 

저수준과 고수준의 차이는 누구한테 더 가깝냐?의 차이입니다.

 

저수준 언어는 기계 친화적이기 때문에, 해야 할 일을 자세하게 적어줘야 한다는 번거로움이 있지만,

컴퓨터가 일하기 쉽고, 낮은 사양의 컴퓨터에서도 잘 돌아갑니다.

고급 컴퓨팅 능력이 필요하지 않은 IPTV나 복합기, 라디오 같은 곳을 위해 사용합니다.

 

고수준 언어는 인간 친화적이기 때문에, 사람들이 학습하기 쉽죠. 쓰기 편리하고 유지 보수가 저수준보다 편리합니다.

그러나 저수준 언어에 비해 컴퓨터가 더 많이 고민하기 때문에 속도라 느립니다. 사양에 따라 잘 작동할 수도 아닐 수도
있습니다.


7. CPU(Central Processing Unit, 중앙처리장치) : 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행 / 처리하는,

가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩

8. 랜덤 엑세스 메모리(Random-Access Memory, RAM) : 임의의 영역에 접근하여 읽고 쓰기가 가능한 주기억 장치, 반도체

회로로 구성돼 있으며 휘발성 메모리

9. 하드 디스크 드라이브(Hard Disk Drive, HDD) : 비휘발성, 순차 접근이 가능한 컴퓨터의 보조 기억 장치

10. 솔리드 스테이트 드라이브(Solid-State Drive, SSE) : 반도체를 이용해 정보를 저장하는 장치

출처 : 위키백과

 

CPU는 컴퓨터의 머리, HDD와 SDD 같은 보조 기억 장치는 컴퓨터의 창고입니다.

 

CPU가 연산을 하기 위해 보조 기억 장치에 데이터를 요청합니다.

 

그러나 보조 기억 장치는 CPU보다 속도가 매우 느려, CPU가 보조 기억 장치를 기다려야 하는 상황이 발생합니다.

 

이건 매우 비효율적이죠.

 

그래서 RAM과 같은 '메모리'를 두었습니다.

 

메모리는 CPU의 개인 작업 공간으로, 보조 기억 장치에 필요한 데이터를 그때그때 요청하지 않고

 

작업이 필요한 데이터 뭉치를 한 번에 메모리로 옮겨 놓고 작업하게 됩니다. 이러면 시간이 줄어들게 되죠!

 

책에서는 포토샵(Photoshop)을 예로 듭니다.

 

보조 기억 장치에 저장돼 있는 포토샵을 실행하면 CPU가 일을 한다는 의미입니다.

 

이 때 실행에 필요한 데이터를 보조 기억 장치에서 메모리로 가져오게 됩니다.

 

이 과정이 완료되면 포토샵이 실행됩니다.


11. 운영 체제(Operating System) : 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는

시스템 소프트웨어

출처 : 위키백과

 

운영 체제는 포토샵과 같은 프로그램이 설치되고 실행되는 과정을 대신해 줍니다.

 

또한 우리 대신 하드웨어를 관리해 줍니다. 하드웨어의 용량이 얼만큼 남았는지 알 수 있는 것도 

 

운영 체제가 보조 기억 장치를 관리하고 있기 때문이죠.

 

 

개발자들은 애플리케이션을 개발하기 위해, 각 운영 체제에 맞는 언어로 앱을 개발해야 합니다.

 

그렇지 않으면 특정 운영 체제에서 애플리케이션이 작동하지 않을 수 있기 때문입니다.

 

 

운영 체제를 제공하는 회사에서 

 

보안 정책을 바꾸거나 혹은 가격이 변동된다면 우리 삶에 큰 영향을 끼칠 것 입니다.


12. 자바 가상 머신(Java Virtual Machine, JVM) : 자바 바이트 코드를 실행할 수 있는 주체, 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 컴퓨터 위에서 바이트 코드를 실행할 수 있도록 구현되나, jop 자바 프로세서처럼 하드웨어와

소프트웨어를 혼합해 구현하는 경우도 있음

출처 : 위키백과

만약 10개의 운영 체제가 있다면,

 

그 체제에 맞는 언어로 개발하고 수정하고 기능 추가하면 굉장히 번거롭겠죠.

 

그래서 JVM이 있습니다.

 

사용자 컴퓨터에 JVM이 설치돼 있다면, 운영 체제에 상관 없이 Java로 만든 프로그램을 사용할 수 있습니다.

 

 

Java 이외에도 여러 언어가 이런 방식을 취하고 있습니다. 대표적인 예로는 Python이 있겠네요.

 

물론 이런 방식으로 작동하는 것은 속도가 느립니다.

 

운영 체제 위에 프로그램을 올리고, 그 위에 또 프로그램을 올리는 것이기  때문이죠.

 

 

또 모바일에 경우는 JVM 같은 것이 없습니다. 왜냐면 운영 체제가 2개 밖에 없기 때문이죠.


어우 생각보다 힘드네요...

 

내용을 최대한 요약했지만 적기에는 양이 많았다고 생각합니다ㅋㅋㅋㅋ

 

다음에는 3장을 요약해 보도록 하겠습니다!!

 

그럼 다음에 보도록 해요.

 

뿅!

 

'-- Data --' 카테고리의 다른 글

[ IT ] IT 용어 정리 5탄(9장)  (0) 2023.04.11
[ IT ] IT 용어 정리 4탄(7,8장)  (0) 2023.04.11
[ IT ] IT 용어 정리 3탄(5,6장)  (0) 2023.04.09
[ IT ] IT 용어 정리 2탄(3,4장)  (0) 2023.04.07
Comments