코딩이란 무엇인가

이승현 교수님이 강의한 멀티캠퍼스의 “Welcome, 직장인 코딩은 처음이지?”강의를 듣고 코딩 용어를 정리합니다.

코딩에 지식이 없는 직장인에 적합한 입문용 강의입니다.

코딩의 기초를 안다면 홈페이지의 검색 최적화 등에 적용할 때 좀 더 이해를 잘 할 수 있습니다.

코딩이란 무엇인가?

코딩이란 무엇인가
코딩이란 무엇인가

컴퓨팅적 사고를 바탕으로 프로그래밍 언어를 도구로 사용알고리즘이라는 절차에 따라 효율성을 중시하며 코드로 작성된 명령서를 만들 수 있는 능력을 코딩(coding)이라고 함. 프로그래밍의 하위 개념이지만 혼용되기도 함.

프로그래밍은 무엇인가?

프로그래밍 = 컴퓨팅적 사고 + 코딩

프로그래밍은 컴퓨팅적 사고를 기반으로 코딩하는 것을 말함

컴퓨팅적 사고(computational thinking)란 무엇인가?

컴퓨팅적 사고는 과학자 뿐 아니라 누구나 배워서 활용할 수 있는 보편적인 사고이자 기술로 마이크로 소프트 연구소의 부사장인 자넷윙(Jeannette Wing)박사가 발표한 논문의 제목임

컴퓨팅적 사고의 주요 구성 요소로는 분해, 추상화, 패턴 분석, 알고리즘이 있음

분해(decomposition) : 해결해야 하는 큰 단위를 작은 단위로 나누어 문제를 해결함

아래와 같은 다항식을 하나하나 분해해 문제를 해결하는 것을 분해라고 함

문제 : ((3X4)+(2×5))÷2 = 11

분해를 통한 문제 해결
– 3 x 4 = 12
– 2 x 5 = 10
– 12 + 10 =22
– 22 ÷ 2 = 11

추상화(abstraction)

  • 복잡한 것을 핵심만 보여 단순하게 처리함

패턴분석(pattern analysis)

  • 문제나 데이터 등에 반복적으로 나타나는 행동과 방식을 찾아내 이를 이용하는 방법

알고리즘(algorithm) : 문제의 처리과정(절차)

  • 컵라면 뒤의 조리방법을 알고리즘으로 비유 가능
  • 결과물을 만드는 가장 중요한 과정. 컴퓨팅적 사고의 중요 하위 개념

알고리즘의 3가지 표현 방법

  • 글(자연어) 또는 언어로 표현
  • 그림(순서도)
  • 의사코드(프로그래밍과 유사한 코드)

※ 자동화(automation) : 사람의 개입 없이 프로그래밍 코드에 맞춰 컴퓨터가 명령을 빠르고 정확하게 처리하는 과정

알고리즘(algorithm)이란 무엇인가?

알고리즘은 문제를 해결하는 과정에서 어떤 전략과 접근 방식으로 해답을 찾는지에 대한 다양한 벙법론과 해결책을 다루는 것입니다. 알파고의 딥러닝과 같은 프로그램의 핵심 부분이라고도 설명할 수 있습니다.

※ 딥러닝(deep learning)이란?

– 인공신경망 + 몬테카를로 트리 검색이라는 알고리즘을 결합해 만든 인공지능 알고리즘을 이야기함

※ 광의의 알고리즘이란 자판기에서 음료를 뽑는 전체 과정, 신호등을 건너는 모든 과정 등 프로그램 전체의 처리 절차를 의미합니다.

무작위 대위 기법(brute force technique)

보안 분야처럼 자료에 패턴이 없는 경우 문제의 해답을 찾기 위해 모든 가능한 경우를 전부 시도해 보는 방법

분할 정복(divide conquer)

문제를 분할해 해결하는 하향식 접근 방법으로 이진탐색(binary search), 퀵정렬(quick sort), 합병정렬(merge sort)의 알고리즘이 있음

그리디 알고리즘(greedy algorithm)

완벽한 해결책보다는 차선책을 선택하는 것으로 상황에 맞는 최상의 해결책을 찾는 방법임

프로그래밍 기초 상식

프로그래밍은 입력(x) ==> 연산 ==> 출력(y)으로 구성됨

프로그램에서 가장 중요한 부분은 입력(input)이며 입력에 따라 출력 값이 달라짐

프로그래밍은 일종의 외국어라고 볼 수 있으며 프로그래밍 언어를 배우는 것은 언어의 문법을 익히는 것과 같음

프로그래밍을 짜는 것은 알고리즘을 구현하는 것과 같아 다른 사람이 많든 다양한 코드를 보는 것이 도움이 됨

블록 프로그래밍 언어로 MIT 공대가 만든 Scratch와 네이버가 만든 Entry가 있음

Scratch와 Entry의 차이점을 적은 글 참고

(끝)

Leave a Comment