파이썬 문법을 공부하다 문득 이런 생각이 들었다.
"파이썬의 개발자는 파이썬 이용자들이 정말 편하게 개발을 할 수 있도록 많은 기능을 지원해주는구나"
그리고 또 하나는 "변수에 대한 접근은 많은 신경을 써야하는 구나"였다. 오늘 써볼 주제는 후자이다.
어떻게 보면 가장 중요하면서 당연하다. 만약 우리가 실제로 서비스하는 프로그램이 동작 도중 변수가 엉키면서 이상한 값이 흘러들어가기 시작하면 총체적 난국이 될 것이다.
파이썬은 쉽고 간결한 문법으로 사용자가 편하게 이용하는 만큼 프로그램이 동작했을 때 오류가 생길 위험이 상당히 존재한다. 그 중에서도 "변수"의 자유로움에 인한 오류가 꽤 큰 부분을 차지할 것이다. 대규모 프로젝트의 경우 많은 사람들이 접근하여 코드를 작성하면 변수의 값이 변화되는 경우가 존재하고 이는 프로그램에 치명적인 오류로 작용할 수도 있다.
이러한 문제점을 방지하기 위해서 사전에 방지를 할 필요가 있다. 파이썬 자체적인 문법에서도 위험을 방지하기 위해서 만들어진 문법이 꽤 많다.
코드 내부의 변수 관리를 위한 지역변수와 전역변수, Type Hinting, 튜플 등의 문법부터 외부 리소스를 받을 때 데이터가 유효한지 검증하는 try,except 그리고 파일의 입출력 과정을 묶어주는 with 문법까지 다양하다.
문법 말고도 기본 객체의 매서드에 있어서도 이런 점을 느낄 수 있었다.
파이썬의 시퀀스 자료형과 관련한 매서드들은 연결되어있는 객체에 추가, 제거, 변경을 하고 값을 반환하지 않는 경우가 많다. 그 매서드들을 이용하는 과정에서 새로운 객체가 만들어진다면 프로그램이 커질 경우 문제가 발생할 수도 있을 것이라 생각한다.
때문에 새로운 객체를 생성하는 매서드는 생성자 매서드로 따로 구분하는 듯하다.
생성자 매서드는 새로운 객체를 생성하여 반환하는 매서드로 매서드 중 특별한 역할을 가지고 있다.
set(),list(),tuple(),int(),dict(),str() 등등이 있는데 이는 내장함수로 보이지만 실제로는 매서드로 불린다.
파이썬은 은연중에 이런 말을 개발자에게 계속해서 던지는 것 같다. "너는 모르겠지만 안보이는 곳에서 이렇게 편의를 봐주고 있어"
이런 마음에 그런 건지 혹은 실제로 프로그램을 운영하는데 있어서 문제가 발생할 확률을 줄이기 위해서인지 개발자들 또한 코드를 작성하는데 있어서 변수에 신경을 많이 쓰는 문화가 있는 듯하다.
변수의 이름을 선정하는 규칙을 엄격하게 정하고, Type Hinting과 같은 방법을 이용하여 변수의 자료형을 명시함으로써 많은 사람들이 프로젝트를 진행하는데 있어서 오류가 발생하지 않도록 주의시킨다.
코드를 작성하고 프로그램을 작성해 나가는데 있어서 이러한 관점을 가지고 개발을 해나간다면 시간이 지났을 때 꽤 좋은 개발자가 되어있지 않을까 생각한다.
'Language > Python' 카테고리의 다른 글
| Python 07 - 불변 객체와 가변객체 ( 메모리 자원 ) (0) | 2024.07.02 |
|---|---|
| Python 06 - 파이썬의 자료형과 타입 (0) | 2024.07.02 |
| Python 04 - 변수의 주소와 메모리 관리 (0) | 2024.07.02 |
| Python 03 - 파이썬의 장단점 (동적언어 vs 정적언어) (0) | 2024.07.02 |
| Python 02 - 파이썬의 장단점 (인터프리터 언어 vs 컴파일 언어) (0) | 2024.07.02 |