코딩
코딩(coding)이란 HTML, 자바(Java), 오라클(Oracle) 등의 프로그래밍 언어를 사용하여 컴퓨터가 실행할 수 있는 프로그램을 짜는 행위를 말한다. 이 중에서 HTML 코딩을 퍼블리싱(publishing)이라고도 한다. 소셜 네트워크를 이용하여 여러 개발자들이 공동으로 코딩하는 것을 소셜 코딩(social coding)이라고 한다.
개요
코딩이란 주어진 명령을 컴퓨터가 이해할 수 있는 언어로 입력하는 것을 말한다. 넓은 의미로는 프로그램을 만든다는 뜻으로 '프로그래밍'과 동일한 개념이기도 하다. 프로그램을 만들때 어떤일을 어떻게 수행하게 할지 먼저 계획을 세운다. A 상황에서는 B 를 실시하도록,C 라는 상황이 오면 A 로 돌아갈 수 있도록. 이와 같이 프로그램 구상이 모두 끝이나면, 그 명령을 컴퓨터가 알아들을 수 있는 언어로 입력해 주는 작업이 필요하다. 이 작업을 바로 코딩이라고 한다. 다시말해 코딩은 컴퓨터 프로그램이 어떤 기능을 가지게 할지, 인공지능이 어떤 행동을 하게 만들지를 입력해주는 것으로 프로그래밍에서 가장 기초적이면서도 필수적인 작업이라고 할 수 있다. 인간의 삶을 편리하게 바꿔준 컴퓨터, 화재를 감지해 주는 화재경보기, 청소까지 대신해주는 로봇청소기 등 이 모든 것들이 코딩 작업을 통하여 입력된 명령대로 행동하는 것이다. 컴퓨터와 인공지능이 앞으로 인간의 삶에 더욱이 많은 영향을 끼칠 것이 분명하기 때문에 코딩의 필요성과 가치는 현대 사회에 더욱 강조되고 있다. 과거에는 프로그래밍 언어를 모두 알아야만 코딩을 할 수 있었다. 하지만 지금은 코딩을 원활하게 할 수 있도록 도와주는 프로그램도 개발되어서 누구든지 손쉽게 코딩을 할 수 있다. [1]
특징
종류
- 하드코딩
설정사항이나 코드 등의 시스템적으로 사용하는 변수를 쓰지 않고 값을 직접 소스코드에 넣어서 사용하는 방식이다. 코드가 바뀌었을 때 자동으로 반영되지 않기 때문에 버그가 발생할 위기가 있는 방식이다. 하나부터 열까지 직접적으로 입력하는 방식으로 입력에 오류가 있을경우 답 또한 오류가 나기 마련인데 파일을 열람하는 경우도 마찬가지이다. 위치와 파일명까지 입력하여 파일을 불러오게 코딩을 할 경우 파일 위치가 달라지면 불러올 수 없다. 따라서 하드코딩은 외부 입력에 대해 유연성이 없고 확장성이 낮은 코딩이다. 하지만 이런 단점만 존재하는 것은 아니며 코드의 목적이 매우 직관적이기 때문에 가독성이 뛰어나고 컴퓨터 입장에서는 유효성검사 등이 빠지기 때문에 반복문이 줄어들어 속도가 빨라지며 절대적으로 변경되지 않는 한정적인 부분에 대하여는 효과를 얻을 수 있다.
- 시큐어코딩
시큐어코딩이란 안전한 소프트웨어 개발을 위해 소스 코드 등에 존재할 수 있는 잠재적인 보안 취약점을 제거하고, 보안을 고려해 기능을 설계하거나 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 과정이다. 소프트웨어 개발이나 인터넷 사이트와 같은 보안 취약점을 이용한 해킹같은 내외부적 공격으로 부터 시스템을 안전하게 방어할 수 있도록 코딩하는 것이다. 프로그램을 개발, 웹사이트를 개발함에 있어 분명한 보안적인 부분은 필수로 들어가야 하는 상황이다. 그렇기 때문에 개발시점부터 설계하는 과정에 보안요소에 대해서도 미리 준비하는 작업이다. 행정안전부에서도 해킹을 미연에 방지하고자 2012년 5월 부터 시큐어코딩 의무제가 시행되었다. [2]
블록체인
- 블록체인 개발에 필요한 코딩 언어…"C++·C#·자바스크립트·파이썬·솔리디티"
예전에는 읽고 쓰는 것을 배울 수 있었고, 읽고 쓸 줄 알았겠지만, 현대사회에는 그것만으로는 충분하지 않다. 오늘날 읽고 쓸 줄 아는 사람이 되려면 기본적인 HTML, CSS 등 코딩(Coding)을 알아야 한다. 코딩은 더 이상 기술자들만 하는 것이 아닌 모든 사람이 알아야 하는 기본적인 기술이 됐다. 암호화폐 전문매체 비트코인익스체인지가이드는 디지털 공간에서 가장 흥미로운 두 가지 발전은 분산원장 기술(Distributed Ledger Technology, DLT)과 인공지능(AI)라고 말했다. 기술이 어떻든 간에, 먼저 프로그래밍 언어를 배워야 한다고 조언하였다. 또한 블록체인 공간에서 가장 많이 사용하는 다양한 프로그래밍 언어에 대하여 설명하였다. 먼저 C++은 오래 되었고, 오늘날까지도 매우 유용하게 쓰인다. 2009년에는 암호화폐 혁명을 창조하기 위하여 사용되었다. 실제 비트코인은 C++로 쓰여졌다. 하지만 C++이 아직 스마트계약에 사용되지 않고 있지만 약간의 수정만 있으면 가능 할 것이다. C++은 여전히 가장 강력한 프로그래밍 언어 중 하나다. 다음은 C#이다. C#은 마이크로소프트에 의하여 90년대 말 만들어졌다. 엔터프라이즈급 애플리케이션에 적합하다. 이것은 대규모 블록체인 구현을 위한 수단인데 그것은 훌륭한 커뮤니티의 지원을 받는 기능적인 프로그래밍 언어이며 그것의 휴대성과 오픈 소스가 된다는 것은 암호화폐 세계에서 꽤 인기 있는 언어 임을 의미한다. 세번째는 자바스크립트(JavaScript)이다. 2007년 제프 앳우드(Jeff Atwood)가 만든 말이 있다. 자바스크립트로 쓸 수 있는 앱은 모두 자바스크립트로 쓴다해도 놀랍지 않을 정도이다. 자바스크립트는 아마 지구상에서 가장 인식 가능한 프로그래밍 언어다. 사물인터넷(IoT) 기기부터 클라이언트, 서버까지 모든 것에 전력을 공급하고 기계학습에도 활용된다. 블록체인 공간에서는 몇 년 동안 인기가 없었는데 2년 전 ICO(암호화폐공개)의 발병은 모든 것을 바꾸었다. 환상적인 커뮤니티 지원을 받으며 자바스크립트를 배울 수 있는 곳이 다른 어떤 언어보다 많다. 앞으로 나아가는 것보다 블록체인 레이스에 들어가는 것이 가장 적합하다지만, 초보자로서 배울 수 있는 것중 이보다 더 좋은 언어는 없다. 네 번째는 파이썬(Python)이다. 파이썬은 사물을 단순히 유지함으로써 얻을 수 있는 것을 증명한다. 파이썬이 사용하기 쉽고 매우 초보자 친화적이라고 하여 다양한 용도를 가지지 않은 훌륭하지 않은 언어가 아니라는 것을 의미 하는 것은 아니다. 사실 파이썬은 일반적인 인터넷 문화에서처럼 암호화폐 공간에서도 인기가 있다. IBM의 하이퍼렛저(Hyperledger)는 이것을 Sawtooth에서 구현했고 이더리움(Etherum)은 Pythereium이라고 불리는 그들만의 파이썬 버전을 만든다. 그것은 또한 방대한 양의 라이브러리와 프레임워크를 가졌다. 마지막으로 솔리디티(Solidity)이다. 새로운 기술이 나올 때, 단지 그 기술을 완전히 이용하기 위해서는 새로운 프로그래밍 언어를 만들 이유는 거의 없다. 다만 솔리디티는 예외로 특별히 이더리움 네트워크에 스마트 계약을 쓰기 위하여 만들어졌다. 객체 지향 언어이고 자바스크립트, C++, 그리고 파이썬의 일부 구문을 가진다. 솔리디티가 ERC20이란 이더리움 스마트 계약의 현재 표준을 설정했다는 것을 기억해야 한다. ERC20은 스마트 계약 분야의 주요 요소로 이 언어를 알아야 하는 더 나은 스마트 계약을 만들기 위하여 필요하다. [3]
- “수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드
블록체인 개발 관련 수요는 많은데 개발자가 부족하다. 기업용 블록체인 분산 장부 개발 업무는 최근 급속도로 성장하는 20대 직무 기술 가운데 2위를 차지한다. 블록체인 개발 역량을 갖춘 사람들을 위한 일자리는 지난해 20% 가량 늘어 났다. 따라서 블록체인 개발자 또는 엔지니어의 급여 역시 높아진다. 직업 데이터 분석 업체인 버닝 글래스 테크놀로지(Burning Glass Technologies)의 CEO 맷 시겔먼에 따르면, 미국 내 일반 소프트웨어 개발자의 중간 연봉이 10만 5000천 달러인데 비해 블록체인 개발자 또는 공학자의 연봉은 13만 달러에 그친다. 실리콘 밸리, 뉴욕, 보스턴과 같은 미국 내 하이테크 지역의 블록체인 개발자의 중간 연봉은 15만 8000천달러 정도로 일반 소프트웨어 개발자보다 1만 8000천 달러가 더 높다. 딜로이트 컨설팅의 기술 및 뱅킹 업무 수석 컨설턴트인 에릭 피니시에 따르면, 솔리디티(Solidity), 하이퍼레저 컴포저(Hyperledger Composer)와 같은 특정 블록체인 툴을 다뤄본 사람들은 수요가 더욱 높으며 꾸준히 상승한다고 한다. 피니시는 이메일을 통해 아침에 잠에서 깨면 팀에 합류시킬 엔지니어들을 어디서 찾을까 하는 생각부터 한다고 한다. 솔리디티는 스마트 계약을 생성하기 위한 블록체인 프로그래밍 언어이며 하이퍼레저컴포저는 자바스크립트에 기반한 오픈소스 버전의 블록체인이다. REST API가 지원되기 때문에 개발자가 아닌 사람이나 개발자 모두 비즈니스 네트워크를 만들 수 있다. 하이퍼레저와 이더리움(Ethereum)은 세계 최고의 블록체인 플랫폼으로서 둘 다 스마트 계약에서부터 이더리움의 이더(Ether)와 같은 암호화폐에 이르기까지 수많은 Daaps(decentralezed applications)의 기반이다. 급속도로 성장하는 직업 순위에서 블록체인 엔지니어 바로 아래에는 관련 기술인 비트코인 암호화폐 개발자이다. 블록체인은 비트코인의 기반한 기술이다. 프리랜서 전문 고용 사이트 업워크에 따르면 블록체인 및 비트코인 개발자가 요구하는 시간 당 업무 단가는 200달러라고 한다. 이들보다 단가가 높은 직종은 로봇공학 전문가 이다. 피니시에 따르면 블록체인 기술을 추가로 익히거나 블록체인 개발자로 경력을 쌓으려면 대부분 자바나 파이썬 같은 프로그래밍 언어에 익숙한 경우가 보통이지만 필수는 아니다. 현재 가장 쉽고 빠른 숙련 방법은 독학 하거나 콘센시스(Consensys), 블록앱스(Blockapps), 이더리움 재단, 하이퍼레저와 같은 블록체인 업체 및 업계 그룹에서 주최하는 프로그램에 참석하는 것이다. 리눅스 재단에서 후원하는 하이퍼레저는 블록체인 기술을 발전시키기 위해 만들어진 여러 산업간 협력 활동인데 하이퍼레저 패브릭(Fabric) 및 소투스(Sawtooth) 모듈식 프레임워크는 기업용 분산 장부 개발의 토대가 될 수 있다. 하이퍼레저 커뮤니티 설계자 트레이시 커트에 따르면, 블록체인 강좌를 신청하는 사람들은 주로 소프트웨어 개발자이만 꼭 코더가 되지 않더라도 분산 장부 기술의 비즈니스 지향적 지식을 얻을 수 있고 자신의 회사를 위하여 블록체인 네트워크를 만들 방법을 배울 수도 있다고 한다. 예를 들어 하이퍼레저에서는 자신의 환경에 해당 기술이 어떤 방법으로 응용되는지 단순히 배우고 싶어하는 사람들을 위한 입문 강좌를 제공한다. 이 강좌에는 하이퍼레저 프레임워크로 블록체인 애플리케이션을 구축하는 방법을 배우길 원하는 컴퓨터 전문가들을 위한 기본 내용이 포함된다. 코딩을 배우길 원하는 개발자라면, 하이퍼레저 패브릭이나 소투스 처럼 블록체인 모듈식 플랫폼에 대한 구체적인 강좌를 들으면 된다. 하이퍼레저 블록체인 기술 자격증을 취득하고자 하는 사람들은 오픈 온라인 강좌 제공업체인 에드엑스를 수료한후 99달러를 낸다. 커트는 개발자가 아닌 사람들도 들을 수 있는 강좌다. 하이퍼레저 패브릭과 소투스라는 두 가지 프로젝트에 대한 작업 사례를 제공하며, 이를 끝까지 살필 수 있는 단계별 지침이 마련돼있다. 프로그래밍 경험이 없는 사람도 크게 어렵지 않을 것 같다. 컴퓨터에서 명령줄을 들여다 보는 경험이 없는 사람에게는 어려울 수 있지만, 이 강좌의 목적은 누구든 블록체인 기술로 어떤 것이 가능할지 보게끔 처음 시작을 도와주는 것이라고 설명했다.[4]
각주
- ↑ 〈코딩〉, 《네이버 지식백과》
- ↑ 악동꼬마, 〈코딩이란? 코딩의종류 그리고 기본바로알기〉, 《네이버 블로그》, 2014-10-27
- ↑ Travis Williams, 〈블록체인 개발에 필요한 코딩 언어…"C++·C#·자바스크립트·파이썬·솔리디티"〉, 《codingworldnews》, 2019-04-29
- ↑ Lucas Mearian,〈“수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드〉, 《itworld》, 2018-03-05
같이 보기
- Travis Williams 기자, 〈블록체인 개발에 필요한 코딩 언어…"C++·C#·자바스크립트·파이썬·솔리디티"〉, 《codingworldnews》, 2019-04-29
- Lucas Mearian 기자, 〈“수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드〉, 《itworld》, 2018-03-05
- 〈코딩〉, 《네이버 지식백과》
- 악동꼬마, 〈코딩이란? 코딩의종류 그리고 기본바로알기〉, 《네이버 블로그》, 2014-10-27