검수요청.png검수요청.png

"코딩"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(동영상)
(동영상)
55번째 줄: 55번째 줄:
 
== 동영상 ==
 
== 동영상 ==
 
<youtube>KhptxxfMQ_Q</youtube>
 
<youtube>KhptxxfMQ_Q</youtube>
<youtube>-JsWsWVSV0</youtube>
+
<youtube>g-JsWsWVSV0</youtube>
 +
 
 
{{각주}}
 
{{각주}}
  

2019년 8월 22일 (목) 16:56 판

코딩(coding)이란 HTML, 자바(Java), 오라클(Oracle) 등의 프로그래밍 언어를 사용하여 컴퓨터가 실행할 수 있는 프로그램을 짜는 행위를 말한다. 이 중에서 HTML 코딩을 퍼블리싱(publishing)이라고도 한다. 소셜 네트워크를 이용하여 여러 개발자들이 공동으로 코딩하는 것을 소셜 코딩(social coding)이라고 한다.

개요

코딩이란 주어진 명령을 컴퓨터가 이해할 수 있는 언어로 입력하는 것을 말한다. 넓은 의미로는 프로그램을 만든다는 뜻으로 '프로그래밍'과 동일한 개념이기도 하다. 프로그램을 만들때 어떤일을 어떻게 수행하게 할지 먼저 계획을 세운다. A 상황에서는 B 를 실시하도록,C 라는 상황이 오면 A 로 돌아갈 수 있도록. 이와 같이 프로그램 구상이 모두 끝이나면, 그 명령을 컴퓨터가 알아들을 수 있는 언어로 입력해 주는 작업이 필요하다. 이 작업을 바로 코딩이라고 한다. 다시말해 코딩은 컴퓨터 프로그램이 어떤 기능을 가지게 할지, 인공지능이 어떤 행동을 하게 만들지를 입력해주는 것으로 프로그래밍에서 가장 기초적이면서도 필수적인 작업이라고 할 수 있다. 인간의 삶을 편리하게 바꿔준 컴퓨터, 화재를 감지해 주는 화재경보기, 청소까지 대신해주는 로봇청소기 등 이 모든 것들이 코딩 작업을 통하여 입력된 명령대로 행동하는 것이다. 컴퓨터와 인공지능이 앞으로 인간의 삶에 더욱이 많은 영향을 끼칠 것이 분명하기 때문에 코딩의 필요성과 가치는 현대 사회에 더욱 강조되고 있다. 과거에는 프로그래밍 언어를 모두 알아야만 코딩을 할 수 있었다. 하지만 지금은 코딩을 원활하게 할 수 있도록 도와주는 프로그램도 개발되어서 누구든지 손쉽게 코딩을 할 수 있다. [1]

특징

종류

설정사항이나 코드 등의 시스템적으로 사용하는 변수를 쓰지 않고 값을 직접 소스코드에 넣어서 사용하는 방식이다. 코드가 바뀌었을 때 자동으로 반영되지 않기 때문에 버그가 발생할 위기가 있는 방식이다. 하나부터 열까지 직접적으로 입력하는 방식으로 입력에 오류가 있을경우 답 또한 오류가 나기 마련인데 파일을 열람하는 경우도 마찬가지이다. 위치와 파일명까지 입력하여 파일을 불러오게 코딩을 할 경우 파일 위치가 달라지면 불러올 수 없다. 따라서 하드코딩은 외부 입력에 대해 유연성이 없고 확장성이 낮은 코딩이다. 하지만 이런 단점만 존재하는 것은 아니며 코드의 목적이 매우 직관적이기 때문에 가독성이 뛰어나고 컴퓨터 입장에서는 유효성검사 등이 빠지기 때문에 반복문이 줄어들어 속도가 빨라지며 절대적으로 변경되지 않는 한정적인 부분에 대하여는 효과를 얻을 수 있다.
시큐어코딩이란 안전한 소프트웨어 개발을 위해 소스 코드 등에 존재할 수 있는 잠재적인 보안 취약점을 제거하고, 보안을 고려해 기능을 설계하거나 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 과정이다. 소프트웨어 개발이나 인터넷 사이트와 같은 보안 취약점을 이용한 해킹같은 내외부적 공격으로 부터 시스템을 안전하게 방어할 수 있도록 코딩하는 것이다. 프로그램을 개발, 웹사이트를 개발함에 있어 분명한 보안적인 부분은 필수로 들어가야 하는 상황이다. 그렇기 때문에 개발시점부터 설계하는 과정에 보안요소에 대해서도 미리 준비하는 작업이다. 행정안전부에서도 해킹을 미연에 방지하고자 2012년 5월 부터 시큐어코딩 의무제가 시행되었다. [2]

코딩 언어

  • HTML : 웹페이지를 만드는 언어이다. 이고잉은 웹에 국한하자면, HTML이 기본이고 여기에 CSS자바스크립트라는 살을 붙이는 것이 기본적인 교육 방향이라고 했다. HTML이라는 코어 위에 붙일 수 있는 살로는 CSS와 자바스크립트를 들 수 있다. HTML은 정보를 담는 언어이고 정보만으로는 심미적인 욕구를 충족시키기 어려워 이를 위해 CSS가 고안되었고 CSS는 웹을 꾸며주는 역할을 한다. 그리고 HTML을 제어하기 위한 언어가 필요했는데, 이를 위해서 도입된 언어가 자바스크립트이다.
  • 자바스크립트(JavaScript) : 클라이언트 언어이고, 초보가 하기엔 테스팅 환경이 좋으며 특별한 개발도구가 필요하지 않아 초보자에게 좋다.
  • 파이썬(Python) : 웹사이트와 모바일 앱을 위한 서버 쪽 언어다. 객체 지향적, 동적 타이핑(dynamic typing) 대화형 언어이다. 파이썬은 입문자가 읽기 쉽고 적은 코드를 가능한 간단하게 쓸 수 있다. 인스타그램이나 핀터레스트처럼 요즘 뜨는 웹사이트들이 쓰는 언어이기도 하다.
  • C : 시스템 언어로 오래전에 생겼지만 그만큼 기본에 충실한 문법 구조를 가진다. 라틴어가 영어, 스페인어의 기초가 된 것처럼 C#, 자바, 오프젝티브C 같은 언어들은 C에서 파생됐다. 해결해야 하는 문제가 컴퓨터 자체, 시스템 자체에 있으면 C를 공부해야 하지만 해결해야 하는 문제가 현실에 있으면 C보다는 파이썬이나 자바, PHP를 하는 게 낫다는 의견이 많다. 진입장벽이 높아 권장하지는 않는다.
  • 스크래치(scratch) : 비주얼 프로그래밍 플랫폼이다. 프로그래밍 언어를 모르는 아이들도 즐겁고 신나게 프로그램을 제작하고 서로 공유할 수 있도록 돕는다.스크래치를 배우며 코딩에 관한 법칙들도 배울 수 있다. 입문자에게 좋은 진입점이 될 가능성이 높다. [3]

관련 자격증

  • SW코딩자격 : 한국생산성본부에서 진행하는 SW코딩자격이다. 교육부와 과학기술정보통신부의 SW교육운영 기초에 부합하는 과정으로 구성됐으며 국제 IT 자격기관인 ECDL Foundation과 공동개발하여 국제 평가 표준을 반영했다. SW코딩자격 은 블록코딩의 기초인 스크레치, 엔트리를 사용하여 평가된다. SW코딩자격은 현재 1급은 없으며 2급과 4급이 진행 중이다. 2급 은 총 4과목으로 컴퓨팅적 사고력과 문제해결, 알고리즘 설계, 프로그래밍 언어 이해, 피지컬 컴퓨팅 이해 에 대하여 평가가 진행된다. 3급은 문제해결과 알고리즘 설계, 기본 프로그래밍을 평가한다. 두 시험 모두 45분간 70점 이상을 합격기준으로 한다. 또한 2018년 기준으로 매년 5번 시행된다.
  • COS : COS는 스크래치, 엔트리를 활용해 블록코딩 능력을 평가받는 시험이다. COS 시험은 시작부터 끝까지 100% 컴퓨터로 진행되는 CBT로 평가 방식이 정확하고 시험 종료 즉시 결과를 알 수 있다. COS 시험은 4급부터 1급까지 있으며 4급 Start 3급 Basic 2급 Intermedia 1급 Advanced로 나뉜다. 4급은 입문자들을 위한 간단한 프로그래밍 도구 활용, 스프라이트 제어, 조건문, 반복문, 연산자 활용, 멀티미디어 활용을 평가하며 1급에서는 개발 도구의 이해, 함수, 리스트, 변수, 스프라이트 활용, 반복문과 조건문, 연산자 활용,난수, 공통모듈, 소프트웨어 테스트, 멀티미디어 활용, 소스코드 검토 및 디버깅, 성능개선, 알고리즘 지식을 평가한다. 시험은 3,4급은 40분 1,2급은 50분으로 5,3,4급은 600점 이상 1급은 700점 이상 득점해야 한다. 2018년 기준 연 6회 시험이 진행되고 있다.
  • COS Pro : Python, C, C++, JAVA를 사용하는 코딩 자격증 시험으로 마찬가지로 시험 종료 동시 결과를 알 수 있다. 1급과 2급으로 이루어져 있으며 둘다 동일한 과목으로 프로그램 설계 및 이해, 프로그램 구현, 프로그램 검사 및 수정을 평가하며 1급이 2급보다 난이도가 어렵다. 시험은 2급은 50분, 1급은 90분으로 진행되며 600점 이상이 합격이다. 2018년 기준 연6회 시험이 진행되고있다. COS Pro를 취득한다면 본인이 꽤나 높은 수준의 프로그래밍 활용 능력이 있음을 증명하는 것이다.
  • 정보처리기사, 웹디자인기능사 : 큐넷에서 진행하는 코딩 관련 자격증으로 먼저 정보처리기능사는 필기와 실기로 나뉘어 진행된다. 필기에서는 전체적인 데이터베이스 전자계산기 운영체제, SW공학, 데이터통신 등 5가지 과목을 평가하여 실기평가에서 코딩관련 시험을 포함해 전반적인 정보시스템 관련하여 평가한다. 실기에서는 C언어와 Java와 SQL 문법을 포함한 문제가 있다. 다만 다른 자격시험관 다르게 일정 프로그램을 사용하지 않고 필답 형식으로 평가한다. 시험시간은 180분이 주어지며 60점 이상이 합격이다. 2018년 기준 연 3회 실시한다. 웹디자인기능사 역시 필기 실기로 구성되었다. 필기는 디자인 일반, 인터넷일반, 웹그래픽디자인 으로 총 3과목에 대한 기본적 이론에 대해 평가된다. 실기에서는 Html언어와 CSS와 약간의 jQuery를 활용하여 평가한다. 웹디자인기능사는 홈페이지를 기획, 설계제작하여 이에 따른 시스템자원 및 사용할 S/W를 활용해 기본적인 프로그램을 수행하는 것을 평가한다. 정보처리기사와 다르게 직접 코딩하는 것에 큰 의미가 있다. 시험시간은 240분이며 60점이상이 합격이다. 2018년 기준 연 4회 실시중이다.
  • CLA : C++ Institute가 공인한 국제인증 자격시험이다. CCPK와 연동되어 있는 일부 대학교에서는 이미 ACA Photoshop, premiere 과정을 수강한 분들은 조금 익숙한 시험이다. 간단히 CLA는 C언어 CPA는 C++ CPP는 C++ 전문가 수준의 시험이다. CLA기준으로 컴퓨터 프로그래밍 개발 툴의 개념, C언어의 데이터 형식, 의미, 구문 등을 평가한다. 또 모든 문제는 영문으로 출제되어 문제 유형은 객관식이다. CPA와 CPP는 C++ 기반으로 출제되고 난이도는 높다. CLA는 65분 시간 내에 70% 이상 득점해야한다. CPA는 80% 이상 득점해야하며 CPP도 80% 이상 득점 해야한다. 응시료가 다른 자격증에 비해 다소 비싸다.
  • TOPCIT : ICT산업 종사자 및 SW개발자가 비즈니스를 이해하고, 요구사항에 따른 과제를 해결하여 업무를 성공적으로 수행하는데 요구되는 기본적인 이론의 종합적인 능력을 진단하고 평가하는 제도이다. 단순히 코딩 능력만 테스트하지않고 기술, 비즈니스 영역으로 나누어 총 6가지인 소프트웨어 개발, 데이터베이스 구축 그리고 운영, 네트워크 보안 이해 및 활용능력, IT비즈니스 이해 능력, 테크니컬 커뮤니케이션 능력, 프로젝트 관리 능력을 평가한다. 이 중 소프트웨어 개발능력이 총 배점중 가장 많은 부분을 차지하여 코딩 역량을 평가하는데 큰 도움이 될 것이다. TOPCIT은 입문형, 도전형, 능숙형, 문제해결형, 창의융합형 이 5가지로 평가한다.
  • SW 테스트 전문가 : 이 자격증은 일반등급과 고급등급 두가지로 나뉜다. 일반등급은 소프트웨어 테스트 개요 및 프로세스에 대한 기본지식을 갖추고 테스트 계획, 설계, 환경 구축, 실행, 결함 보고, 리포트 등 기본적인 실무 수행 능력을 평가하며 누구나 응시가 가능하다. 90분 내에 75점 이상 득점해야 합격이 가능하다. 고급등급은 전문적인 테스트를 수행하고 테스트 조직을 리드하는 수준을 평가하는 것으로 소프트웨어 개발 및 테스트 관련 5년 이상의 경력자 또는 SW 테스트 전문가 일반등급 자격취득자 중 해당 분야 3년 이상의 경력자에게만 응시 자격이 주어진다. 시험은 150분 내에 75점 이상 득점하여야 한다. [4]

활용

  • 블록체인 개발에 필요한 코딩 언어…"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은 스마트 계약 분야의 주요 요소로 이 언어를 알아야 하는 더 나은 스마트 계약을 만들기 위하여 필요하다. [5]
  • “수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드
블록체인 개발 관련 수요는 많은데 개발자가 부족하다. 기업용 블록체인 분산 장부 개발 업무는 최근 급속도로 성장하는 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달러를 낸다. 커트는 개발자가 아닌 사람들도 들을 수 있는 강좌다. 하이퍼레저 패브릭과 소투스라는 두 가지 프로젝트에 대한 작업 사례를 제공하며, 이를 끝까지 살필 수 있는 단계별 지침이 마련돼있다. 프로그래밍 경험이 없는 사람도 크게 어렵지 않을 것 같다. 컴퓨터에서 명령줄을 들여다 보는 경험이 없는 사람에게는 어려울 수 있지만, 이 강좌의 목적은 누구든 블록체인 기술로 어떤 것이 가능할지 보게끔 처음 시작을 도와주는 것이라고 설명했다.[6]

동영상

각주

  1. 코딩〉, 《네이버 지식백과》
  2. 악동꼬마, 〈코딩이란? 코딩의종류 그리고 기본바로알기〉, 《네이버 블로그》, 2014-10-27
  3. 권혜미, 〈코딩 입문자, 어떤 언어부터 배워야 할까〉, 《bloter》, 2014-06-20
  4. 과학기술정보통신부, 〈코딩능력을 평가하는 코딩자격증, 종류 바로알기!〉, 《네이버 블로그》, 2018-07-05
  5. Travis Williams, 〈블록체인 개발에 필요한 코딩 언어…"C++·C#·자바스크립트·파이썬·솔리디티"〉, 《codingworldnews》, 2019-04-29
  6. Lucas Mearian,〈“수요는 많은데 개발자는 부족” 블록체인 채용 현황과 기술 역량 습득 가이드〉, 《itworld》, 2018-03-05

참고자료

같이 보기


  검수요청.png검수요청.png 이 코딩 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.