OOP를 배우게 되었다.
파이썬 문법을 익힌 후에는 간단한 함수나 스크립트를 작성할 수 있었다. 하지만 웹사이트나 게임처럼 규모가 있는 프로그램을 만들기에는, 내가 알고 있는 지식만으로 전체 구조를 설계하는 일이 쉽지 않았다.
그러던 중 OOP를 배우면서 클래스, 추상화, 상속, 다형성의 개념을 접하게 되었다. 객체를 하나의 모델로 정의하고, 그 객체들이 서로 상호작용하도록 설계하는 방식은 이전과는 전혀 다른 관점이었다. 특히 프로젝트를 통해 직접 구현해보니, 이론으로만 배웠을 때보다 이해가 훨씬 또렷해졌다.
예전에는 이론을 충분히 배우고 난 뒤에야 프로그래밍을 시작해야 한다고 생각했다. ‘아는 것이 없는데 어떻게 만들 수 있을까’라는 생각 때문이었다. 그 결과, 함께 개발하던 친구들에 비해 성장 속도는 더뎠다.
돌이켜보면 그 근원에는 실패에 대한 두려움이 있었다. 한 번에 완벽하게 해내야 한다는 생각, 왜 굳이 틀리면서 배워야 하느냐는 조급함이 나를 붙잡고 있었다.
하지만 이번에는 그 생각을 내려놓았다.
일단 만들어보고, 안 되면 고치자는 마음으로 시작했다.
중간에 버그도 많이 발생했고, 함수를 잘못 설계해 클래스 간 관계를 다시 수정해야 하기도 했다. 그럼에도 끝까지 만들어보니 뿌듯함이 남았다. 그리고 완성한 이후에는 개선할 부분이 더 선명하게 보이기 시작했다.
참 신기한 경험이었다.
https://syk25.github.io/asteroids-python/
asteroids-python
AIO ⏏︎ AIO ■ AIO ▶ Music ■ min avg max RESET (battery level unknown) (charging state unknown)
syk25.github.io
https://github.com/syk25/asteroids-python
GitHub - syk25/asteroids-python
Contribute to syk25/asteroids-python development by creating an account on GitHub.
github.com