IT지식이 필요한 비전공자가 접니다.

2021. 6. 16. 01:10카테고리 없음

무엇이든 새로운 지식이나 도구를 접하게 되면 적응기가 필요하다. 내가 젓가락이라는 도구를 처음 접하고 사용하기 시작했을 때 포크처럼 꽂는 도구인지, 무언가를 휘젓는 도구인지, 양손에 한쪽씩 잡고 사용하는 건지 몰랐을 수 있다. 다만 나보다 먼저 이 도구를 사용해본 사람들이 하나씩 차근차근 알려주고, 내가 그들이 하는 행동을 따라하고, 스스로 연습하고 실생활에 활용하면서 사용방법을 적응해 나갔을 거다. 아주 어렸을 때부터 우리는 무언가를 학습할 때 단계적으로 배워나가고 체화하면서 터특해왔다.

 

그런데 IT 서비스에 대해 관심이 생긴 지금. 새롭게 IT 지식을 습득해보려해도 쉽지가 않다. 이유를 찾아보면 3가지로 정리할 수 있을 것 같다. 첫번째로는 개발자이거나 업계관계자가 아닌 이상 IT에 대해 알아야만 하는 필요가 부족했기 때문에, 두번째는 IT시장의 빠른 변화로 인해 너무 많은 정보가 생성되고 사라지기 때문에, 세번째는 '이미 IT를 공부하고 대학원까지 가면서 전문성을 쌓은 사람들'과 'IT와 너무 멀리 떨어진 비전공자'는 많은것에 비해 '아무것도 모르는 상태에서 IT로 넘어가는 중간과정의 사람'의 수가 상대적으로 적기때문에다.

 

물론 요새는 초등학교때부터 코딩을 배운다고 하기도 하고, IT 시장의 폭발적인 성장과 IT지식을 배우고자하는 니즈가 늘어나면서 교육업체도 많이 생겨났으며, 기존 IT와 상관없는 영역의 업무라고 생각되었던 업무들도 모두 IT서비스의 영향을 받는 방향으로 변화하고 있기 때문에 방금 얘기한 이유들은 이제 더 이상 해당되지 않는 부분일지도 모른다. 하지만 적어도 나는 그 혼란스러운 발전 과정속에서 'IT시장에 관심은 있지만, 정보를 주었으면 하는 전문가들은 너무나도 하이한 영역에 있는것처럼 느껴지며, 친절하게 내 입장에 빗대어 설명해줄 사람도 찾기 어렵고, 이 프로그래밍 언어가 무언가를 휘젓는 도구인지 양손에 한쪽씩 잡고 사용하는건지 조차도 구분이 안가는 한낱 비전공자'의 위치에 있다고 말할 수 있을 것 같다.

 

당연히 나도 평생 컴퓨터 공부만한 개발자들을 따라갈 수 없으리란 것을 안다. 하지만 '적어도 켜뮤니케이션을 할 수 있는 정도', '지금 상황이 어떻게 돌아가는지 알 수 있는 정도'의 지식은 점점 간절해지는 상황에 '비전공자를 위한 이해할 수 있는 IT지식'은 참 반가운 책이었다. 오리엔테이션부터 공감되는 상황이 많아서 너무 좋았고 쉽게 재미있게 쑥쑥 읽을 수 있는 비유들이 많아 좋았다. 본 책에서 이해한 내용을 바탕으로 내가 이해한 바를 이 곳에 조금씩 정리해두려고 한다.

프로그래밍 언어

컴퓨터 언어가 0과 1로만 이루어져있다는 얘기는 나도 들어봤다. 그런데 얼핏 미디어에 나오는 개발자와 주변사람들을 봤을때 0이랑 1만 치는 사람은 못본 것 같다. '전원켜기' 등의 인간의 언어를 '1101011....' 등의 컴퓨터 언어로 번역하는 일을 하는 파파고 같은 놈이 '컴파일러'라고 한다. 그리고 이 컴파일러라는 프로그램을 사용하기 위해 필요한 '자바' '파이썬' 등이 프로그래밍 언어이다. 나는 프로그래밍 언어를 파파고를 사용할 때 필요한 키보드 정도로 생각해보기로 했다. 정확한 개념은 아닐지 모르지만 책의 다음 내용들을 접하면서 좀 더 정확한 비유로 정돈할 수 있을거라고 생각한다. 요지는 인간의 언어를 컴퓨터 언어로 번역하기 위한 도구가 '컴파일러'고 이 컴파일러를 사용하기위해 필요한 도구가 '프로그래밍 언어'라는 점이다. 도구를 쓰기위한 도구의 도구의 도구.... 같은 느낌이 살짝 들지만 익숙해지면 또렷하게 분리될거라고 기대해본다. 어쨋든 개발자는 0100011..을 치는 사람이 아니라 컴파일러라는 놈에게 프로그래밍 언어를 사용해서 일을 시키는 사람으로 정의할 수 있겠다.

 

IDE(Intergrated Development Environment)

IDE  즉, 통합개발 환경이란 공통된 개발자 툴을 하나의 그래픽 사용자 인터페이스로 결합하는 애플리케이션을 구축하기 위한 소프트웨어라고 한다.(출처 : Red Hat) 프로그래밍 언어를 더욱 편리하게 쓰기 위한 또 다른 새로운 도구인 듯 하다. 여기까지오니 컴파일러 > 프로그래밍 언어 > IDE 까지 각 도구들의 역할의 차이가 보인다. 일단 컴파일러의 목적은 번역을 하는 것, 프로그래밍 언어는 컴파일러에게 일을 시키기 위한 것, IDE는 프로그래밍 언어를 '보다 편리하게' 사용할 수 있도록 하는 것으로 분리할 수 있을 것 같다. 이해한 바를 예시로 들어보자.

만약 우리가 피아노 곡을 악보로 만들고자 한다고 치자. 무형의 물질인 피아노 '소리'를 악보라는 실재하는 '종이문서'로 전환하기 위해 그 일을 할 수 있는 '악보 그리는 사람'이 컴파일러가 될 것이고 악보에 쓰기위한 음표, 도돌이표 등의 규칙과 약속이 프로그래밍 언어가 될 것이다. 그리고 그 악보를 더 쉽게 쓰도록 도와주는 악보 편집 프로그램이 IDE가 될 것이다. 악보를 그리기 위한 연필이나 종이도 IDE라고 표현할 수 있을까? 고민이 되었는데 '보다 편리한' 작업환경을 제공한다는 점에서 편집프로그램이 더 적합한 것 같다.

 

프로그래밍 언어가 많아진 이유

쉽게 생각해보면 그냥 '언어'만 해도 전세계에 얼마나 많은가. 세종대왕님께서 한글을 만드신 것 처럼 개발자들도 소통을 하기 위한 언어를 필요에 따라 만들었다고 생각하면 좋을 것 같다. 다만 인간의 언어보다 프로그래밍 언어가 상대적으로 계속 만들고 생산하고 확산하기가 더 용이했기 때문에 다양한 언어가 발전될 수 있었던 거라고 생각한다. 지속적으로 달라지는 점도 옛날에는 '듕귁에 달아..'가 지금은 일상적인 언어들로 발전하는 것과 같은 형태로 이해할 수 있겠다. 용도에 따라 사용되는 언어도 다르다. 조그만 전자저울에 사용되는 프로그래밍 언어와 애플워치에 사용되는 프로그래밍 언어가 다른 이유는 전자저울에 50만원어치 사양이 되어야만 돌아가는 프로그램을 넣을 수는 없기 때문이다.

 

CPU, 보조기억장치, 메모리, 메인보드, 운영체제

컴퓨터의 구성요소는 목공방에서 작업을 하는 목수를 상상해 보니 쉽게 대입할 수 있었다.

작업하는 목수 = CPU 이렇게 나눠져있는 각 부분을 모두 모아서 한꺼번에 관리하는 도구 (목공방 업체)

= 운영체제
목재를 모아놓은 통 = 보조기억장치(HDD,SSD)
필요한 목재를 가져다놓고 작업하는 테이블 = 메모리
이 모든게 올라가 있는 땅 혹은 공간 = 메인보드

만약 목재를 가져다놓고 작업하는 테이블이 없었다면 수많은 목재통에서 다리부분에 필요한 목재, 등받이부분에 필요한 목재를 필요할 때마다 하나하나 찾아서 바닥에 주저앉아서 작업을 해야 했을 것이다 또 한 부위 찾으려면 또 목재통을 뒤져야 했을 것이고. 하지만 작업테이블에 필요한 재료 한꺼번에 다 가져다 놓고 그 위에서 작업을 하면 된다고 생각하면 훨씬 수월하고 효율적으로 작동된다는 것을 알 수 있다.

운영체제는 개념을 조금 헷갈릴지 모르지만 사실 실체는 너무나도 익숙하고 쉽다 'Mac OS', 'iOS', 'Windows', 'Android'

 

각 운영체제별로 따로 만들지 않아도 된대!

JVM이라는 소프트웨어가 있으면 JAVA라는 프로그래밍 언어로 만든 소프트웨어가 모든 운영체제에서 돌아간다고 한다. 이것도 비유를 해보자. 각 목공방 업체는 가지고 있는 유통망이 분리되어 있으며 각자 독점적으로 유통망을 확보하고 있다. 그래서 내가 빨간색의자를 만들어서 모든 소비자에게 팔고 싶으면 애플 목공방에서 만들어서 애플망에 유통하고, 마이크로소프트 목공방에서도 만들어서 마이크로소프트망에 유통하고, 구글 목공방에서도 만들어서 구글망에 유통해야 한다. 하지만 다수의 유통망에 침투할 수 있는 JVM이라는 브로커가 생겨서 빨간 의자를 JVM이 지원하는 도구로 만들어서 뿌리면 여러업체를 통해 여러개를 만들지 않아도 해당 유통망에 뿌릴 수 있다. 대신 이 브로커는 PC 기반 위주로만 유통망을 확보하지 못한 부분을 감안해야 한다. 모바일 기반의 유통망은 상황적 한계과 독점을 원하는 기존 업체들로 인해 침투가 어려웠다.

 

 

마치며

하.. 나름대로 정리를 해봤는데 내가 제대로 이해한게 맞는지 아직 의구심이 든다. 상황에 딱 맞는 적절한 비유와 설명을 통한 이해도 역시 쉬운게 아니라는 것을 느꼈다. 새로운 도구와 지식에 접근하고자 하는 입문자들이 조금이라도 더 쉽게 다가갈 수 있도록 진입장벽에 사다리를 놔주는 역할을 하는 앞선 선배들에게 존경심이 들었다.

비전공자를 위한 이해할 수 있는 IT 지식을 읽고 느낀점과 내용을 정리한 게시물입니다.