프로그래밍을 하기 위해서 수학보다 중요한 사실들

프로그래밍을 하기 위해서 필요한 것

 

오랜기간 써온 엔진
오랜기간 써온 엔진

 

프로그래밍을 전혀 모르던 시절 부터 끊임없이 느꼈던 부분은 바로 대부분의 사람들이 의외로

전혀 명확하게 의사전달을 하지 못한다는 것이었습니다. 우리 인간들도 심지어 ‘저거 해줘’라고 하면

저것이 무엇인지 정확하게 판단하지 못하고 ‘잘’, ‘예쁘게’, ‘멋지게’같은 미사여구나 형용사들을 들었을 때

각자의 생각이 다르기에 명확하게 이해하거나 받아들이기가 어렵습니다.

6하 원칙(누가,언제,어디서,무엇을,어떻게,왜) 조차 지키지 못하거나 제대로 말도 못하는 사람들을 의외로

자주 접하게 됩니다. 물론 일상생활에서는 이해와 소통으로 어느정도 넘어가고 받아들일 수 있지만

프로그래밍의 세계에선 그런 감정적인 방식은 통하지 않습니다. 심지어 바이브 코딩에서도…

 

생각보다 수학적 능력이 필요하지 않다.

 

저는 수학 포기자로 전혀 계산에 소질도 없고 암산 능력도 없기에 계산기를 사용하거나 검색으로

계산식을 보고 그냥 Copy & Paste로 해결합니다. (똑똑한 사람들이 어련히 잘 정리했겠지 하고 믿음)

다만 이럴 때에는 이런 계산식이나 알고리즘을 사용하는 구나…혹은 시간적인 여유가 있다면 호기심에

조금 이해를 해보려고 노력을 할 뿐이지 직접 수학적 능력을 키우려고 한적이 없습니다.

그럼에도 프로그래밍을 할 수 있는 이유는?

 

부지런한 정리 정돈과 계획이 무엇보다 필요하다

 

간단한 프로젝트가 아니라면...
간단한 프로젝트가 아니라면…

 

과거에도 그랬고 지금도 중요하게 생각하는 것이 정리정돈입니다. 매번 실패하는 프로젝트의 경우

빨리 구현하는 것에 몰입되어 임시코드를 짜거나 똑같은 방식의 내용을 계속 무한정 늘려가는 경우가 있기에

계속 반복해서 사용해야 할 함수같은 경우 스크립트별로 나눠서 그 때 그 때 사용할 수 있도록 계획하고

정리하는 시간이 매우 중요합니다. 특히나 소규모 프로젝트라도 기능이 추가되면서 점차 코드가 늘어나고

몇 만줄이 되는 코드들을 하나하나 다시 찾아보기가 어렵기에 정리를 해두지 않을 경우나 몇 일이 지난뒤에

다시 보면 까먹는 경우가 많습니다. (생각보다 다른 일을 하고 돌아오면 뇌가 리셋됨)

 

내가 짠 코드인데… 이게 뭔 내용이었지?

그냥 간단히 이렇게 해결하면 되는데 이 때의 나는 왜이랬을까?

 

이런 부분 외에도 지역 변수 , 글로벌 변수, 임시 변수들을 마구 아무곳에나 쓰다 보면 버그를 고치거나

수정할 곳을 찾는데에도 시간을 허비하게 되면서 프로젝트를 포기하거나 방치시키게 됩니다.

그래서 막히는 구간, 쉬고 싶을 때에도 코드들을 보기 좋게 정리하는 습관이 중요하고 정리가 잘된

프로젝트는 다른 프로젝트에서도 복사 붙여넣기로 활용하기 좋습니다.

 

기억과 경험을 잘 되새길줄 알아야 한다

 

정말 어렵게 수정하고 버그를 고치며 성공했던 기억에 도취되어 이것을 어떻게 구현했는지에 대해서는

인상깊게 생각하지 않고 넘어갈 경우 3개월만 지나서 비슷한 프로젝트나 구현을 해야 할 경우

잊어버리는 경우도 있습니다. (ㅋ 그런사람이 어딨음? 내가 그래요…)

그래서 유용하게 자주 쓰이거나 겨우 해결한 코드나 함수를 개인적으로는 블로그에 정리하기도 하고

그렇게까지 했음에도 기억이 나지 않아 내가 쓴 글을 검색해서 다시 보는 경우도 있습니다.

 

[자주 쓰이고 유용한 치트 금지와 단위 표기]

[GMS2]간단한 치트 금지 코드 및 숫자 단위를 콤마로 표시하기

 

엔진을 정하면 자주 바꾸지 말고 처음부터 잘하려고 하지 말자

 

엔진마다 사용하는 프로그래밍 언어가 다르고 코드의 방식도 다르기 때문에 아무리 능숙하게

적응하는 사람이라도 헷갈릴 수 있습니다. 심지어 독학으로 처음 프로그래밍을 한다면 더더욱 구조에 대해

이해가 쌓이지 않은 상태에서 어디서는 이렇게 하는데 다른 엔진에서는 불가능한 구조로 구현이 힘들경우

흥미까지 잃게 됩니다. 엔진을 선택할 때 장단점이 존재하지만 결국에는 그냥 익숙한 엔진을 계속

사용하다 보면 업데이트 되면서 편리해지는 기능들이 생겨나기에 지금 당장 안된다고 엔진을 바꾸면

영원히 원하는 프로젝트를 완성하지 못합니다.

 

프로그래밍은 시간이 걸릴 뿐 언젠가 된다

 

예를 들어 게임을 만들기 위해서 프로그래밍을 배워야 한다면 옛날 보다 쉬워졌습니다. 그 이유는

오래전에는 게임에 들어가는 연출이나 물리, 인터페이스를 위해서 고정된 위치에 자리잡거나 점프를 위한

다양한 행동들을 모두 ‘직접’ 구현해야 했지만 이제는 엔진에서 제공하는 기본 함수들을 그냥 딸깍하고

가져와 사용하면 되거나 만약 없더라도 다른 내장 함수나 많은 사람들이 이미 구현한 알고리즘을 통해서

잠깐 이해하고 그냥 써도 됩니다. (그사람도 어디선가 배낀것)

오히려 더 중요한 것은 ‘궁금증’과 ‘해결할 의지’입니다.

 

[게임에서 이것을 표현하고 싶은데 어떻게?]

  • 그것을 구현할 수 있는 방법을 커뮤니티나 구글 검색
  • 알고리즘을 찾았다면 이것을 어떤 방식으로 활용하는지 이해
  • 만약 없다면 내가 만들어야 하기에 방법을 고민
  • 자신이 알고 있는 프로그래밍 지식으로 시도하고 부딪히기
  • 그럼에도 안된다면 프로그래밍 잘하는 사람에게 굽신거리며 물어보기
  • 굽신거리기 싫다면 AI에게 물어보기(이상한 대답을 많이 하지만 가끔 도움이 됨)

 

반드시 이렇게 해야 할 이유는 없지만 각자 어떻게 문제를 해결할 것인지에 대한 생각이 기본입니다.

 

[용어가 어렵다면 오래전 블로그에 써둔 강의]

https://exlikeus.tistory.com/621

 

이야기를 정리하며…

 

프로그래밍은 많은 시행착오를 겪어 가면서 아주 미세하게 성장하는 구조이기에 단기간에

빠르게 무엇이든 만들어낼 수 있는 천재 유형의 사람은 많지 않습니다.

정리정돈과 계획을 하고 파일을 관리하며 감정적이지 않아야 프로그래밍을 잘 할 수 있으며

“내가 이렇게 고생해서 만든 스크립트를 넌 왜 이해해주지 않고 오류를 내니?!”라고

항변해도 소용없으며 말하지 않아도 이해해주길 원하는 타입들은 프로그래밍을 하기 어렵습니다.

(코딩을 하면서 자신이 얼마나 누락 시키는 단어와 합리적이지 않다는 것을 알게됨)

📢 텔레그램 새 글 알림 👉 https://t.me/acequest
후원하기

댓글 남기기