이 시리즈를 통해 보시는 분들이 소프트웨어에 대한 주요 주제들을 훑고 지나가며 전체적인 관점을 갖게 되시기를 바랬어요. 이런 식으로 모아서 설명해놓은 건 거의 보지 못했으니까요. 비슷한거라 하면 대학 개론 교양 강좌 정도겠죠.지금은 IT, 그중에서도 Software의 시대이니 (라고 저는 주장합니다만 ㅎㅎ) 이 분야에 대한 기본적인 이해를 갖고 파생되고 연결되는 여러 분야들에 대해 대화를 하고 싶어요. TED 강의로 "탁월한 아이디어는 어디서 오는가! Where do good ideas come from?" https://www.youtube.com/watch?v=lG-GkA-aQpg 라는 게 있죠. 1960년대 처음 생긴 영국에서 커피 전문점이 계몽주의에 미친 영향이 컷다고요. 커피 전문점은 배경도 전..
인공지능을 다룬 영화는 참 많아요. 영화적 상상력이 더해져 참 다양한 모습으로 나오는데요. 덕분에 오해가 생긴 것 같은데 인공지능은 사람의 지능과는 다릅니다. 영화에는 인간보다 더 인간같은 모습으로 나오죠? 고뇌하고 나는 인간인가 기계인가 질문을 던지기도 하고요. 인공지능을 판별하기 위한 테스트가 있어요. 튜링 테스트라고 하는데요. 인간처럼 사고하는 지를 보는게 아니라 5분간 대화해서 인간인지 기계인지 구분하지 못하면 인공지능이라고 인정하기로 한거죠. 정해지지 않은 주제의 대화를 하면서요. http://www.bloter.net/archives/195388우리는 의식이 어디에서 시작하는지, 감정은 왜 있는지, 욕구는 어떻게 생기는 건지 알지 못해요. 앞으로도 알게 될 것이라 장담할 수 없는 질문들이죠. ..
요즘 제일 핫한 분야죠.블록체인은 신뢰성이 핵심이라 생각해요. 어떤 거래의 신뢰성을 얻기 위해 이전에는 중앙화된 어느 시스템을 지키는데 신경을 썼어요. 중앙 서버 PC에 안전한 장소에 비공개 거래장부가 있고, 각 PC에서 중앙 서버로 연결할 때 보안을 유지하면 신뢰성 있는 거래가 된다는 거였죠. 블록체인은 이 비공개 장부를 공개로 바꿨어요. 그럼 이 외부로 노출된 장부의 신뢰성은 누가 책임지는가? 각자 나눠서 책임지는 구조로 만들었죠. 원하는 누구든 거래장부를 다운받아 네트워크 상에서 일종의 서버 역할을 할 수 있고요. 거래가 일어나면 이렇게 네트워크 내에 있는 모든 거래 장부에 업데이트를 하게 만들었죠. 만일 일부가 변조되어 차이가 있다고 하면 연결되어 있는 거래 장부의 50% 이상이 맞다고 하는 내역..
점점 데이터의 양이 늘어나고 있어요.그러다보니 예전에는 상상할 수 없던 수십 테라바이트의 데이터를 모을 수도 있어젔는데요. 사용자가 언제 어디서 접속했다는 거나, 어느 웹사이트에 접속하는지, 쇼핑몰에서 어떤 상품들을 보고 있는지, 사용자의 흔적이 고스란히 데이터로 남지요. 우리가 IT 서비스 사용이 늘어나면서 이런 데이터들이 늘어가고 있는데요. 이 데이터를 모아서 어떻게 활용할 수 있을지 몇년전부터 화제가 되고 있어요.빅데이터를 통해 무엇을 할 수 있는가. 유명한 해외 사례가 있어요. 아마존 사례인데요. 쇼핑몰에서 임산부에게 추천하는 카달로그와 쿠폰북이 딸에게 와서 아버지가 항의를 했다는데요. 자기 딸은 아직 결혼 전이라고. 임신한적 없다고요. 그런데 확인해보니 딸이 정말 임신을 했고, 쇼핑몰에서는 딸이..
보안이 유지되어야 IT 제품/서비스를 쓸 수 있어요.내 개인정보가 줄줄 샌다거나 내 계정과 권한을 다른 누군가가 마음대로 쓸 수 있다고 하면 위험해서 쓸 수가 있겠어요? 내 이름으로 게시판이 이상한 글로 도배가 된다거나, 혼자나 친구들끼리만 보려고 올린 글, 사진을 맘대로 보고, 내 계좌에 돈이 다른 계좌로 맘대로 옮겨지거나 하면요. 물론 어느 정도 감안하고 쓰고 있기는 합니다만.보안은 중요하죠. 다만 이걸 어디까지 해야 하는지는 고민이 필요하다고 생각해요.이건 집을 지키는 것과 비슷한데요. 일반 가정집에 청와대 수준의 보안 시설이 필요 없듯이 과도하게 보호할 필요도 없고, 중요 시설에 낮은 담벼락 하나 달랑 두르고 있어도 안되겠죠. 각각 업의 수준에 맞는 보안이 필요해요. 눈에 보이지 않기 때문에 실제..
World Wide Web. 줄여서 Web이라고 하죠. 인터넷은 Web보다 큰 개념이지만 Web의 비중이 절대적이다보니 거의 동의어처럼 쓰이죠. (FTP라는 파일전송, Email도 인터넷에 속해있는 개념이예요.)기술적인 정의로는 "인터넷상의 정보를 하이퍼텍스트 방식과 멀티미디어 환경에서 검색할 수 있게 해주는 정보검색 시스템이다." (위키) 라고 하는데요. 하이퍼텍스트라는 파란색으로 표시되는 링크들 아시죠? 이것들을 오가며 정보들을 찾는 시스템이라고 생각하면 되는데요.제가 좋아하는 정의는 "인류가 공유하는 과거부터 지금까지 이어지는 정보 집합체"라는 말이예요. 누구나 인터넷에 접속하면 접근할 수 있는 정보들의 집합체이며 (물론 일부는 로그인을 통해 권한이 주어져야 볼 수 있긴 하지만요.) 과거부터 인류가..
이 일을 하다보면 만나는 어려운 지점들을 정리해보았어요. :) 1. 야근, 버그, 문서, 프로세스에 시달리며 삽니다.실제로 일하게 되면 프로그래밍이 10%라고 하면 나머지 90%는 버그와 싸우는 디버깅이고, 문서 작성이고, 프로세스에 대응하는 거예요. 문제가 생기면 잡는데 에너지가 많이 쓰이고요. 정확한 명세서 작성하는 일이 고되고, 문제가 생기면 하나둘씩 늘어가 복잡해져있는 프로세스들에 대응하는 일이 90%죠. 프로그래밍을 하고 싶어하는 분들은 그래서 실망하시는 분들도 많더라고요.야근은 피할 수 없는 건가 싶습니다. 무언가 만드는 일이다보니 낮에는 회의가고 타부서 대응하고 메일쓰다보면 시간이 다 가있고 저녁부터 자기 일을 하게 되는 경우가 적지 않아요. 일을 오래하면 충성심이 높은 걸로 착각하는 한국 ..
일하는 방식을 정리해 보았어요 :) 1. 내가 만난 문제는 다른 사람들이 먼저 만난 문제예요.구글링 이라는 말 들어보셨죠? 구글에서 답을 찾는 건데요. 유명한 코딩 관련 질문 답변 사이트로 Stack Overflow라는 곳도 있죠. 무언가 만들다보면 수없이 많은 문제들에 부딪혀요. 기초적인 문제에서부터 어떤 플랫폼에서만 발생하는 문제, 어떤 기능을 쓰다보면 종종 나타나는 문제 등을 만나게 돼요. 보통 이런 문제들을 만나면 내가 처음 만나는 문제가 아닐 가능성이 높아요. 이미 누군가 만나서 고민했던 문제들이라는 거죠. 문제를 만나고 풀었던 내용들이 웹에 무수히 많이 올라와있고 이걸 찾으면 너무 고민안해도 금방 답을 찾아 만들어갈 수 있어요. 그래서 구글을 통해 답을 찾는 구글링, Stack Overflow..
이 일을 하는 사람들은 어떤 사람들일까요? 1. 만드는걸 좋아하는 사람들저는 S/W Engineer도 공학자의 한 갈래예요. 공학자라는 건 알려진 기술을 활용해서 어떤 결과물을 만들어내는 사람들을 말하죠. S/W Engineer는 S/W라는 도구를 사용하는 공학자죠. 기본적으로 무언가를 조물조물 만들고 그 과정에 즐거워하고, 결과물에 성취감을 느끼는 사람들이 이 일에 맞다고 생각해요. :)페이스북에 색연필 과학만화라는 페이지에서 "공학자"에 대해 만화로 설명해둔게 있는데 보시면 좀 더 와닿으실거예요. https://www.facebook.com/crayonsci/photos/pcb.843588949133807/843587609133941/?type=3&theater 2. 나라면 어떻게 구현할지 고민하는 ..
이 업계에서 일하고 싶거나 S/W Engineer와 함께 일하는 분들을 위해 적었어요.어떤 일을 하는지 어떻게 일하는지를요. 이 직업에 도전해볼지 고민하는 분들께 도움이 되면 좋겠고요. 이 사람들과 같이 일하려면 주의할 점 같은 걸 알면 같이 일하기 좀 수월하지 않겠어요? :)* Software를 다루는 직업군은 생각보다 많은데요. 여기서 말하는 S/W Engineer는 주어진 기술을 바탕으로 필요한 것들을 구현하는 엔지니어, 개발자 정도를 말씀드릴께요. :)
말그래도 추가로 알아두면 좋을 개념들을 적어요. 일종의 용어 설명 페이지이기도 하고요. 짤막한 설명이라 위키 백과사전에서 이 키워드로 검색하셔서 읽으면 더 이해가 되실 거예요. 꼭 읽으실 필요는 없으니 스킵하셔도 좋아요. :) 1. 소스코드 프로그램의 설계도지요. 프로그래밍 언어를 이용해서 짠 코드 뭉치예요. 프로그래머가 하는 일의 대부분은 이 소스코드를 만들고 여기에서 문제를 찾아내서, 고치고, 새로운 요구사항을 반영하는 일이예요.건축에서의 설계도와 비슷한데, 차이가 있다면 건축은 완성된 설계도를 가지고 중장비와 인력으로 재료를 가지고 설계도를 가지고 실제 건물을 짓는데 많은 시간과 노력이 든다면, 완성된 소스코드가 있으면 이 코드를 실행파일로 만들어주는 다른 프로그램(컴파일러)를 통해 컴퓨터가 만들어..
저는 주로 JAVA를 써왔고요. Basic, C, Assembly, C++, JAVA, JAVA Script, SQL, Ant Script, Action Script, JSP, HTML, PHP, ... 정도의 프로그래밍 언어를 다뤄왔네요. 많이 다룬 편은 아니예요. 언어별로 많이 차이가 났으면 여러 언어 배우고 쓰는게 어려웠겠죠? 프로그래밍 언어는 기본 문법은 비슷비슷해서 용도에 따라 배워쓰면 됩니다. (데이터를 다루는 SQL, 문서 구조를 태그 같은 걸로 정의하는 HTML 같은 독특한 언어군도 있지만요.)하나의 언어를 잘 익혀두면 다른 언어를 익히는 건 그렇게 어렵지 않아요. 다들 비슷한 체계를 따르기 때문이죠. 용어도 비슷하고요. 새로운 언어가 만들어진 이유가 있으니 언어별 특성은 이해를 해야겠지만..
위의 사진을 보면 2+x = 4를 어떻게 풀어야할지 고민하는 사람이 있어요. 결국 뭔가 복잡한 수식을 써서 문제를 풀지요. 그러나 초등학교 때 산수를 배웠다면 손쉽게 x는 2라는 걸 아시겠죠?프로그래밍은 기본적으로 문제를 푸는 일인데요. 논리적으로 문제를 해결해가는 겁니다. 그 시작이 이 사고 체계예요.문제를 분석해서 주어진 도구를 가지고 문제를 풀어내는 일이죠. 사진의 사람처럼 어렵고 복잡하게 문제를 풀면 속도도 안나고 프로그래밍이 어렵다 느껴지겠죠? 문제, 요구사항을 받아들고 어떤 식으로 짜는게 편하겠다. 효율적이겠다. 앞으로의 유지보수에 좋겠다. 고 생각해내는 과정이 중요하다는 거죠. 그래서 누군가 만들어놓은 것을 보면 자연스레 나라면 이렇게 하는게 좋지 않을까? 생각하게 돼요.이러한 사고 체계, ..
먼저 어떤 언어들이 있고 어떻게 발전해 왔는지 이야기할께요.하드웨어는 전자기학을 기반으로 해요. 기본적으로 전원이 들어오면 1, 나가면 0으로 인식해요. 그래서 가장 하위 단에는 2진수로 명령을 내리게 됩니다. "0111 0110 1011 0101" 처럼 2진수로 명령어가 씌여있는 것을 기계어라고 해요. (https://ko.wikipedia.org/wiki/기계어) 예시야 짧게 들었지만 몇백만 몇천만 라인이 될 수도 있으니 저걸로는 도대체 무슨 프로그램인지 무슨 동작을 하는지 말기 어렵겠죠? 그래서 간단하게 영문으로 명령어를 치환해서 어셈블러라는 언어가 나옵니다. (https://ko.wikipedia.org/wiki/어셈블리어) 프로그램을 작성하고 변환하면 1:1로 기계어로 바뀌게 되는 언어죠. 이 ..
이번 챕터에서는 소프트웨어를 만드는 프로그래밍이라는 거에 대해 이야기할께요.관심 있으신 분들께 "배우고 싶은데 어떻게 해야할지 모르겠다.", "내가 이걸 할 수 있을지 모르겠다." 라는 이야기를 종종 들어요. 저도 어렵게 프로그래밍을 배운 편이라서요. 시작할 때의 막막함, 몇년 지나도 잘 모르겠다 싶은 기분... 을 겪었더랬죠. 저는 독서와 글쓰기를 좋아해서 아마 문예창작과 정도에 갔으면 즐겁게 대학 생활을 했을 것 같아요. 아버지께서 1997년 IMF를 겪으시고 직장생활을 할 때 기술이 있어야 덜 짤리더라는 나름의 생각을 정리하시고 저와 누나를 모두 컴퓨터공학과에 가야 한다고 주장하시는 바람에 약간은 뜬금없이 컴퓨터공학과에 왔더랬죠. 그 무렵의 저는 제 생각을 주장할만큼 주관이 뚜렸하지 않았고, 아버지..
ZDNet에서 2015년 11월 5일에 나온 기사 를 보면요. http://www.zdnet.co.kr/news/news_view.asp?artice_id=20151105105223손전등, 시계, 알람, 타이머, 지도, GPS, 현금, 카드, 오디오 레코더, 거울, 종이 티켓, 카메라, 비디오 카메라, mp3 플레이어, CD 플레이어, 라디오, 장거리 전화, 문자가 사라졌어요.애플이 몰고온 스마트폰 혁명으로 2007년 글로벌 점유률 40%를 자랑하던 휴대폰 업계의 절대 강자 노키아가 3~4년 만에 몰락해버릴 줄 누가 알았을까요? 그뿐만 아니라 여기에 속한 제품과 서비스를 만들던 회사들은 직간접적으로 이 태풍의 영향권 안에 있어요. 창의적인 게임기로 칭송받던 닌텐도가 적자로 돌아서고, MP3 업계는 거의 ..
1895년 뤼미에르 형제는 "열차의 도착"이라는 최초의 영상을 카페에서 상영합니다. 열차가 플랫폼에 도착하는 50초 가량의 짧은 영상이었는데요. 사람들은 열차가 자기에게 달려오는 것 같아서 혼비백산 했다는 일화가 전해내려와요.당시 이런 1분 영상이 쏟아져 나왔다고 해요. 사람들은 금방 시들해졌고 한때의 유행으로 그칠 것 같던 것이 조르주 멜리어스라는 인물의 등장으로 바뀌게 돼요. 영상을 찍다가 카메라가 멈춰서 다시 돌리는 사이에 지나가던 차가 바뀌었고 나중에 확인해보니 차가 바뀐 것처럼 보인거죠. 편집 기술이 가능하다는 걸 깨닫고 영상을 편집해 픽션을 도입한 최초의 인물이 되었어요. 견해의 차이는 있겠지만 뤼미에르 형제가 영사기라는 기술을 개발했다면 멜리어스는 영화라는 매체가 만든 사람이라고 생각해요. ..
그동안 소프트웨어는 어떻게 발젼해왔을까요? 생활코딩 이고잉님이 올린 자료를 보면 요즘 들어 여러 요소들이 결합되어 생산성이 크게 높아졌다고 평가하고 있습니다. https://opentutorials.org/course/1예전에는 몇백, 몇천, 몇만명이서 만드는 큰 규모의 소프트웨어도 요즘은 경우에 따라 작은 규모의 팀이나 심지어 개인이 만들 수 있기도 한대요. 이를 소프트웨어 자영업자의 등장이라고 얘기하더라고요. 그 요소들은요. 1. API (Application Programming Interface) 공개 및 지원 http://freemoa-blog.com/639API는 응용 프로그램을 위한 인터페이스입니다. 풀어 말하면 소프트웨어를 개발하다보면 필요한 기능들이 있는데 이미 다른 곳에서 제공하는 경우..
IT란이 뉴스의 주요 섹션으로 자리를 잡은지 오래됐죠. 경제, 사회, 문화 이런 분류와 같은 레벨로요.그만큼 IT가 중요하다는 건데요. IT 제품/서비스를 이루는 구성 요소를 하드웨어, 네트워크, 소프트웨어로 나눠서 이야기를 풀어가려고 합니다.(* 이 분류는 지나치게 단순화 시킨 점이 없잖아 있습니다. 의사소통을 위해서는 용어의 정의가 중요해요. 소프트웨어는 하드웨어나 네트워크의 동작을 제어하는데도 사용되기 때문에 정확히 말해서는 틀린 정의입니다만, 이 글에서 다루는 소프트웨어는 하드웨어와 네트워크를 기반으로 동작하는, 사용자가 실제 접하게 되는 응용 소프트웨어으로 범위를 좁혀서 사용하겠습니다.)IT 제품/서비스는 이루는 각각의 구성요소는 눈부시게 발전해왔어요. 소프트웨어는 하드웨어와 네트워크라는 인프라..
이 챕터에서는 요즘 소프트웨어가 각광받는 이유를 소개하려해요.어째서 IT 업계의 주요 이슈들도 CPU 속도나 메모리 용량 같은 하드웨어에서 왜 인공지능, 빅데이터 같은 소프트웨어 영역으로 넘어오고 있는지, 소프트웨어를 개발해서 서비스 하는데 초점을 맞춘 스타트업이 늘어가는지 이런 이야기들을 해보려고 합니다.저는 소프트웨어가 좋은 도구라고 생각하고요.하드웨어와 네트워크라는 인프라가 갖춰지고 소프트웨어의 생산성이 높아지면서 개인이나 소규모 팀으로도 할 수 있는 부분이 많아졌다고 생각해요.이제 소프트웨어를 어떻게 활용할지 우리가 고민하고 만들어갈 지점이 많다고 생각합니다 :)
2018년은 제가 현업에서 일한 지 10년차가 되는 해예요. 그동안 주변 사람들과 이야기하다보니 Software가 무엇인지, 어떤 식으로 작동하는지, 어떤 쓰임이 있는지 오해하시는 분들이 많이 있더라고요. 약간은 어이없는 스타트업 제안도 받아보고, 이 부분에 개념이 없어서 헤매는 분들도 많이 보았죠. 그때 그때 단편적으로는 설명을 드렸지만요. 코끼리의 한 부분만 설명드린 것 같은 아쉬움이 있었죠. 전체적인 얼개를 저에게 간단히 설명해 달라고 하는데 아시다시피 어느 한 분야를 설명하는데 간단하게는 어렵잖아요.최근에 세상에 보탬이 되는 프로그램, 서비스들을 만들어보자고 소프트웨어 개발 모임을 꾸렸지요. IT로세상을바꾼다라는 모임인데요. 첫모임으로 소프트웨어라는게 뭔지 개념을 설명해주는 오리엔테이션를 진행했어..