일단 함수라는 개념과 변수라는 개념부터 알아야돼

함수는 쉽게 보면 특정한 일을 하는 자기만의 영역이야
그냥 이렇게 이해해
아니 구간을 왜 나눠요? 라고 물어볼거잖아 그럼
예를 들면 너가 x+10+10×10÷2 이걸 계속 해야 돼
x는 니가 항상 다른 수를 넣어야 되는 숫자이고
x의 값을 입력하는건 좋은데 할 때마다 뒤의 저 계산식을 일일히 적기 귀찮잖아?
그럴 경우에 저 식을 집어넣은
function(x) {
    x+10+10×10÷2
}
이라는 함수를 따로 만들어
(보기 쉽게 대충 만들었어. 저 대로 하면 fail나지만 보기 쉬워라고 대충 썼어. 그리고 보면 알겠지만 저 중괄호가 함수의 범위야)
그럼 함수의 이름만 쓰면 저 식을 쓴 거랑 똑같게 되는거야
그러니까 위의 식대로 안쓰고 그냥 function(x); 라고 쓰면 저 식을 컴터가 알아서 가져와서 x 값을 가지고 계산하는거지

그리고 변수를 보자
무언가 데이터를 저장을 하려면 그 데이터를 받은 변수라는 게 팔요해
즉 10이라는 수를 저장하기 위해 저 값이 저장될 수 있는 공간이 필요한데 그 공간을 변수라고 해
변수를 선언했다 = 공간을 만들었다.
그리고 그 변수는 맨 처음 사용할 때 선언을 해 줘야 돼
int x; 이렇게. int라는 걸 붙여줘야 되는구나 라고 이해해 그냥

근데 그 변수에는 지역변수와 전역변수가 있어
지역변수는 함수 안에서 쓰는 변수야
전역변수는 함수 밖에서 쓰는 변수야
지역변수는 함수 안에서 쓰고 그 변수명은 썼던 그 함수 내에서만 유효해
전역변수는 함수 밖에서 쓰고 그 변수명은 어떤 함수들한테나 다 쓸 수 있어
이건 처음 변수를 선언할 때 어떠한 함수 안에서 쓰는지
아니면 함수 밖에서 쓰는지에 따라 달라지는데

딱 보기엔 어디에나 다 통하는 전역변수가 더 좋아보이지?
전역변수는 사실 많이 지양하는 방식이야
몰라 다른 업계는 모르겠는데 우리는 그래
왜냐하면 저 전역변수를 한 두개는 상관없는데
쓰다쓰다 보면 햇갈리고 꼬이거든 무조건
그래서 나중에는 저 전역변수가 어디서 선언되고 어디 함수를 거치면서 변절되는지 확인하는 거 부터가 빡시고

이런걸 스파게티 코드라고 불러

근데 왜 스파게티 코드로 불타는거야???