난 parameter 를 제대로 지정해야했다.

ensia96·2020년 3월 24일
0

과자말고 과제ㅠ

목록 보기
1/4
post-thumbnail

WeCode 7기로 수업을 받고있는 슈퍼개발자,

춤추는망고입니다.

( 춤 안춥니다. )

이거 시리즈 아닙니다!

과제 제출용 문서이므로,

지나가다가 읽으시는분들이 이해 못하셔도 상관 없습니다.

( '못 알아먹겠으면 나가주세요~' 이 말입니다. )







시작하겠습니다.


함수를 정의할 때,

default value parameter를

non-default value parameter 앞에

정의하면 안된다.


에 대한 설명을 하는 과제입니다.




여기서 우리가 짚고 넘어가야할 점은

default value parameter 는 무엇이고,

non-default value parameter 는 무엇인가,

도대체 저 둘은 왜 함수를 정의하는데 끼어들었는가,

도대체 뭐가 문제길래?

입니다.



우선,

default value parameter 에 대해서 설명하겠습니다.

default value parameter 란?

  • default : 기본
  • value : 값
  • parameter : 매개변수

    섞어섞어 ~ > 기본 값을 가진 매개변수.

    -> 기본적으로 값이 지정되어있는 매개변수.

이것을 통해 default value parameter 를 알았고,

non 이 붙은 것은 반대라는 것을 알았죠?




자 그럼 이제, 저 두 녀석이 왜 함수라는 것과 연관이 있는지를 봅시다.


함수를 자판기라고 생각해봅시다.

Parameter 라는 동전 ( 인자 ) 을 넣는 구멍이 있고,

동전 ( 인자 ) 이 들어온 것을 확인해서

무언가 ( 결과값 ) 를 내보내주는 역할을 한다는 것을 보면

그렇게 생각해볼만 하잖아요?


우리가 설명해야하는 저 상황은

기본값이 지정된 매개변수와 기본값이 지정되지 않은 매개변수.

최소한 2가지의 매개변수를 비교해야 하는 상황입니다.




다시 말하자면

구멍이 두개 있는데,

하나의 구멍은 동전이 지나가는 길이

딱 맞는 모양의 동전으로 막혀있는 자판기인겁니다.



그런데 평범하게 생각해보면,

'어? 안막혀있는 곳에 넣어서 쓰면 되잖아?'

라고 해버리면 끝일겁니다.



하지만

프로그래밍의 세계는

시간의 흐름과 순서에 대해서

매우 엄격합니다.



프로그래밍의 세계에서 이 상황을 다시 한번 봅시다.


함수라는 자판기가 있다면,

우리는 그 자판기에서 무언가를 나오게 하는 행동을 해야합니다.

현실에선 자판기의 구멍에 맞춰 동전을 넣는 것이고,

프로그래밍에선 함수를 호출하여 매개변수의 자리에

값을 넣어 실행하는 것이죠.



자, 여기서

우리가 눈여겨봐야할 상황을 다시 봅시다.


함수를 정의할 때,

default value parameter를

non-default value parameter 앞에

정의하면 안된다.


이 말을 비유했던 상황에서 보면,

자판기를 만들때에는,

막혀있는 동전구멍을

뚫려있는 동전구멍보다 앞에 둔채로

만들어선 안된다.

입니다.


결국, 막혀있는 구멍이 먼저 존재하는 자판기가 만들어졌다고 칩시다.

그러면 저희는 구멍이 2개인 자판기에 대해서 동전을 넣어야겠죠?




그런데 우리는 먼저있던 구멍에 먼저 넣어야합니다.


프로그래밍의 세계니까요.


우리가 먼저 넣어야하는 구멍은 먼저 있던 구멍이고,

먼저 있던 구멍은 막혀있는 구멍이죠?

넣을수가 없는겁니다.


애초에 쓰지도 못하는 자판기가 되어버리기 때문에,

즉, 애초에 프로그래밍의 세계에선 작동할 수 없는 함수이기 때문에

정의해선 안되는겁니다.




프로그래밍의 본질적인 목적은

반복적이고 단순한 작업들을 더 효율적이게 처리하는 것이라고 생각합니다.


위에서 제시된 명제는 사실,

'자신이 생겨난 목적을 부정해버리는 행위를 해선 안된다.'


인겁니다.





최대한 쉽게 설명해보고 싶었는데, 아쉽네요.

긴 설명 읽어주셔서 감사합니다.

( _ _)

profile
지금까지 이런 망고는 없었다. 이것은 개발자인가 춤추는망고인가

0개의 댓글