1. 프로그램의 구성 - 변수와 로직

 

간단하게 우리가 매일 사용하는 "HRD 프로그램"의 로그인 기능을 분석하고,

프로그램을 구성하는 "변수"와 "로직"이라는 것에 대해 살펴본다.

그 중에서  "변수"를 사용하는 이유인 "데이터"의 개념을 이해하고 배워본다.

 

  1. HRD-Net 어플 실행
  2. 로그인 버튼 클릭
  3. 로그인 페이지 보여주기
  4. 아이디 입력
  5. 비밀번호 입력
  6. 아이디 비밀번호가 일치하는지 확인
  7. 일치하면 > 로그인 성공
  8. 실패하면 > 재입력 안내

 

위의 순서(로직)는 개발자가 설계한 것이다.

컴퓨터는 스스로 알아서 동작하지 않는다.
컴퓨터가 수행해야 할 일을, 개발자가 프로그램으로 지시해야 한다.

 

로그인 프로세스는 동일한 순서(로직)로 동작한다.

수많은 사람들이 HRD-Net 프로그램을 사용해서 로그인을 진행한다.

그리고 동일한 순서로 로그인을 진행한다.

그 과정에서 사용자마다 다른 것은 ID, PW 뿐이다.

 

ID와 PW라는 데이터를 변수라는 것을 사용하여 저장하여 사용한다.

 

"프로그램 내부에서 동작하는 순서"라는 로직은 변하지 않는다.

단, 데이터는 변한다.

 

 

2. Data란?

  • 프로그래밍은 "현실의 어떤 대상"을 컴퓨터에서 사용 가능한 프로그램으로 대체하는 것이다.
  • 프로그래밍 대상인 "현실의 어떤 것"은, 모두 구체적인 Data을 가지고 있다.
title = '파이썬'
price = '20_000'
thick = 3
weight = 1.5
cover = 'python'
width = 15
height = 25
writer = '홍길동'
title = '순서도'
price = '9_000'
thick = 1
weight = 0.5
cover = 'arrow'
width = 15
height = 25
writer = '이순신'

 

 

3. 변수란?

  • 책마다  Data( '파이썬', 20,000원, 3cm, 1.5kg 등)는 변한다.
    제목, 가격, 두께, 무게 라는 상징성은 변하지 않는다.
  • 케릭터마다 Data(마법사, 1,000, lv20, 화염구, 지팡이 등)는 변한다.
    직업, 체력, 레벨, 스킬, 아이템 이라는 데이터는 명칭으로 치환 가능하다.
  • 프로그래밍의 변수도 마찬가지다. '책 제목' 처럼 명칭을 사용하면 편하다.
  • 이렇게 프로그래밍 대상인 "현실의 어떤 것"에서 공통되는 특징을 

 

 

4. 변수 사용 예시

  • 현실의 Data(값, value)를 소스코드로 구현하는 방법
# date, pi, id 를 변수(Variable) 라고 한다.
# 'kim23', 20230101, 3.1415 를 Data(값, value) 라고 한다.

id_1 = 'kim23'
id_2 = 'choi23'
today = 20230101
tomorrow = 20230102

 

 

5. 변수와 Data

변수를 사용하는 이유

 

수학 공식을 사용했던 기억을 돌이켜보면, 변수를 사용하는 이유를 예상 할 수 있다.

 

로그인 프로그램으로 구현한다 가정해보자.

  1. 아이디와 비밀번호를 입력한다.
  2. 입력된 아이디가 존재하는지, 그리고 비밀번호가 맞는지 확인해야 한다.

1. 아이디와 비밀번호

입력된 아이디는 사용자마다 다르다. 

현실에서 인간은, 이렇게 달라지는 데이터(값, value)에 대신 지칭하는 단어를 사용한다.

 

위에서 "입력된 아이디"라고 지칭했다. 

2023년 1월 1일 보다 "오늘날짜"라고 하는 것이 더 편리하다. 

아이폰14 Pro MAX 보다 "내 폰" 이 더 편하지 않은가?

 

하지만, 아이디는 입력하는 사람마다 다르고, 오늘날짜는 내일 달라진다. 내폰은 과거에 s10e였고, 미래에 다른 폰 일 수 있다. 이렇게 변하는 데이터(값, value)를 지칭하고 대신 사용하기 위해 프로그래밍에서 변수를 사용한다.

 

2. 아이디, 비밀번호 확인

조건1: 아이디가 있으면

조건2: 비밀번호를 확인한다.

 

아이디와 비밀번호의 데이터(값, value)은 사용자마다 다르다.

이때, 프로그램에게 id, pw 라는 변수이름을 사용하면

데이터(값, value)이 달라져도 프로그램은 동일한 기능을 수행할 수 있다.

 

 

6. 유일성

Data는 동일 할 수 있지만, 변수의 명칭은 유일하다.

책의 가격은 동일하게 2만원이고, 캐릭터의 직업은 동일하게 '마법사' 일 수 있다.

동일한 Data(값, value)를 프로그래밍에서는 변수로 식별한다.

pi = 3.14159265359
date = 20230101
name1 = '홍길동'  # 1학년 홍길동
name2 = '홍길동'  # 2학년 홍길동
name3 = '홍길동'  # 내 친구 홍길동

 

 

7. 대입연산자

= 기호는 "대입연산자" 라고 한다.

"변수 ← 값" 과 같은 느낌이다.

수학에서 사용하는 동등한 의미의 = 기호는 S/W 개발에서 == 기호로 사용한다.

# 대입, 할당, 선언 모두 같은 의미다.

pi = 3.14
str = "문자열"
money = 10000
name = "홍길동"

 

 

8. 변수 연습

# 아래 ? 를 수정하여 완성하세요 

# 문제 1 #
# 변수이름 num에 정수 65를 할당 하고 출력하세요.

? = 65   
print(?)



# 문제 2 #
# 변수이름 num을 copy_num1, copy_num2 에 할당하세요
copy_num1 = ?
copy_num2 = ?



# 문제 3 #
# 변수이름 copy_num 에 정수 2 를 더하고 
# 변수이름 res 할당하세요.
# 그리고, print()함수로 res 변수의 값을 출력하세요.

res = num + ?
print(?)



# 문제 4 #
# 변수 mul에 변수 num과 변수 res를 곱하고, print() 함수로 출력하세요.

mul = ? * ?
print(mul)
# 문제 5 #
# num 이라는 변수이름을 만들고, 65 라는 데이터(값, value)를 할당하세요.


# 문제 6 #
# 자기 자신을 변수 5개로 표현해보세요

# tip
# 이름, 성, 생일, 고향, 전화번호, 혈액형, 키, 몸무게, 국적, mbti, 
# 배고픔 상태, 현재 기분, 최대 체력, 최대 의지, 필요 집중력, 열정 정도

fname = "상문"
htown = "포항"
btype = 'B'
hlevel = "굶주림"
feeling = "예민"
hp = "10/100"

# 문제 7 #
# 변수 print() 함수를 사용해 변수를 출력해보세요.

# tip
# number = 99
# print(number)
더보기
num = 65
print(num)
print(65)
print(type(id(num)))
# 프로그래밍은 "현실의 어떤 대상"을 소스 코드로 구현하는 것이다.

# 문제 8 #
# 자신의 주위에 존재하는 사물 10개의 속성을 변수이름 100개로 만들어보세요.
# 그리고, 100개 중에 원하는 변수를 변수이름과 출력해보세요.

# 출력예시 >> id: kim123

 

 

9. print( ) 함수 사용

# print() 는 출력 함수입니다.
# print() 의 ( )괄호 안에, 정수 65와 같은 값 또는 num과 같은 변수명을 넣어 출력 할 수 있습니다

num = 65
res = num + 2
sum = num * res

# 1 #
num, res, sum 의 값을 print() 함수 3개를 사용해 각각 출력하세요.
print(?)
print(?)
print(?)

# 2 #
num, res, sum 변수를 print() 함수 1개에 한번에 출력하세요.
print(?, ?, ?)
더보기
print(num)
print(res)
print(sum)

print(num, res, sum)