프로그램이란?

목표

프로그램의 개념을 이해한다.

질문

  • 프로그램은 무엇인가?
  • 컴퓨터는 무엇인가?
  • 어떻게 컴퓨터에게 명령을 내일 수 있는가?

소개

프로그램은 특정한 행동 혹은 명령어의 나열이라고 할 수 있다. 쉬운예로, TV 프로그램을 생각해 보자. (1) 프로그램이 시작하면, (2) 진행자가 시청자에게 인사를 하고, (3) 게스트를 소개하고, (4) 게스트가 어떤 행동을 하고, (5) 다음 게스트를 소개하고, (6) 다음 게스트는 또 다른 행동을 한다. 마지막으로 (7) 진행자는 시청자에게 인사를 하고, 프로그램을 종료한다. 이렇게 어떤 행동을 순차적으로 연결한 것을 프로그램이라 할 수 있다.

Computer program은 컴퓨터가 이해할 수 있는 명령어의 나열이다. 실제 컴퓨터는 인간의 언어를 인식하지는 못하고 0과 1로 이루어진 전기적 신호만 인식할 수 있다. 사람과 컴퓨터가 사용하는 언어의 차이를 극복하기 위해서는 사람과 컴퓨터가 둘 다 이해할 수 있는 언어를 사용해서 프로그램을 작성해야 한다. Python, C++, Ruby, Perl 등 다양한 언어가 존재하고, 사람은 이 언어로 프로그램을 작성해서 컴퓨터에 명령을 내일 수 있다. 이러한 언어를 programming language라 하고, 이 언어를 이용해 프로그램을 작성하는 과정을 programming이라 한다. 즉, computer program은 programming language로 작성되어 있는 업무의 순서라고 할 수 있다.

예제

먼저 아주 간단한 program의 예를 생각해보자. 이 프로그램은 특정 문자열을 화면에 출력하는 프로그램이다. 이를 위해서는 아래와 같은 프로그램을 구성할 수 있다.

print('hello world')

이 프로그램을 실행하면, ‘hello world’라는 문자열이 화면에 출력된다.

약간 더 복잡한 연산을 할 수도 있다. 예를 들어 수리 연산을 수행하고 그 결과를 화면에 출력할 수도 있다.

sum = 1 + 2  # 1+2 연산을 수행하고, 그 값을 sum이라는 변수에 기입한다.
print(sum)   # 연산 결과를 화면에 출력한다. 

프로그램을 실행하면 3이라는 숫자가 화면에 표기된다.

조금 더 유용한 프로그램은 값을 입력 받고 그 결과를 출력하는 것을 생각할 수 있다.

def sum_two_numbers():
    # Get input from the user
    num1 = float(input("Enter the first number: "))
    num2 = float(input("Enter the second number: "))
    
    # Calculate the sum
    result = num1 + num2
    
    # Return the sum
    return result

# Call the function and print the result
print(f"The sum is: {sum_two_numbers()}")

위 프로그램은 사용자에게서 숫자 2개를 입력으로 받고, 이를 더한 후 값을 출력하는 프로그램이다.

데이터 분석, program, bioinformatics

데이터 분석은 데이터에서 지식을 추출하는 과정이다. 이 과정은 특정 형태의 데이터를 다른 형태로 전환하는 과정이라고 할 수 있다. 이를 위해서는 데이터를 어떤 특정한 순서에 따라 가공해야 한다. 이 때 필요한 것이 컴퓨터 프로그램이다. 즉 프로그램을 이용하여 데이터를 일련의 과정에 따라 가공하면, 사람이 이해하기 쉬운 형태의 데이터 혹은 지식으로 전환된다. 이 과정을 데이터 분석 과정이다. 이 때 각각의 데이터의 특성에 맞는 프로그램을 만들어야 한다.

최근 생명현상을 연구하는 방법론이 진보하면서 생명현상에 대해서도 많은 양의 데이터가 생성되고 있다. 이러한 생물학적 데이터로 부터 지식을 찾는 방법을 연구하는 학문이 bioinformatics이다. 데이터 분석 방법들을 조합하여 생물학 데이터로 부터 insight를 도출하는 새로운 방법을 연구하는 것이 bioinformatics에서 진행하는 연구의 주제이다.

어떤 연구를 수행하고 싶은지 생각해보고, 자신이 관심 있어하는 접근법을 찾아간다.

  • Programmer – 새로운 데이터 분석 도구 개발
  • Data 분석 전문가 – 기존 프로그램을 이용해 데이터의 의미 발굴

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top