IDE 혹은 에디터가 물어보는 질문입니다.

 

혹은 PHP5.4버전부터 워닝메세지가 물어보는 질문입니다.

 

이 글은 일반 운영하시는 분들을 타겟이 아니라 개발하시는 분들이 보시면 좀 더 좋을 내용입니다.

 

늘 제가 글에서 강조하는건 코딩스타일, 코딩규칙 이런거 본인이 원하는데로 ok, 단 규격적이고 원칙 및 소신을 가지고 개발하라 입니다. 코딩스타일도 그냥 간단하게 "얘가 이렇게 쓰니 나도 이렇게 쓴다"기보다, "얘가 이렇게 쓰는데 이러이러한 이유가 있다고 설명했다. 그래서 실제로 나도 해보니 오.. 그 이유가 맞는 것 같고 코드가 깔끔해졌다" 라는 이유가 명확하게 들어가야 하고 그 이유를 확실히 인지하고 쓰라는 것입니다. 어떤 코딩스타일을 쓰던지 간에 말입니다.

 

그리고 두번째로 워닝에러도 가볍게 여기기보단 우리에게 경고해오는 중요한 메세지로 받아들여라 입니다.

 

두번째사안은 사실 제가 외부에 떠들지는 않았지만 제 선에는 그래도 원칙적으로 중요하게 생각해오던 문제입니다.

 

그리고, 복사하여 붙여넣기를 하던, 그냥 가져다 쓰기만 하던 다 OK, 허용하지만 왜 사용하는지 왜쓰는지 이해부터하라입니다.

 

개발자라면 그래도 워닝에러쯤 나타나는것이 있다면 확인 후 고칠 수 있어야 합니다.

 

PHP5.4 버전때부터 우리에게 늘 IDE와 PHP는 문제가 있다고 지적해 왔습니다.

 

하지만, 일부 개발자분들의 경우 해당 규칙을 무시하는 경우가 많은 것 같았어요.

 

되게 안일하게 생각했던 문제 php7.4까지 문제 없었습니다.

 

지금 이후로도 문제 없어요. 앞으로도 7.4는 향후 몇 년 동안은 지원 될거니까요.

 

근데 터졌잖아요. 8.0에서 펑! 하고 터졌죠.

 

그 몫은 누구에게 갔나요.. 고스란히 사용자에게 부담되었습니다.

 

유료라면 사용자에게 부담되지 않도록 해줘야 하는건 당연한거고, 무료자료의 경우라면 이를 최소한 고칠 능력이 되어야 하지 않을까 라는 생각이 듭니다.

 

기존에 개발하시다 개발 중단하시거나 유지보수가 되지 않는 자료야 그렇다 치더라도.. 활발히 활동하시는 분들의 자료들의 경우에도 기본적인 워닝에러의 문법을 지키지 않아 작동되지 않는 자료가 많이 있습니다.

 

글 앞과 제목에서 말씀드렸듯이 IDE와  PHP는 우리에게 굉장히 친절하게 하나하나 설명해주고 고치면 좋겠다는 메세지를 함구하였습니다. 그래서 XE1.7~8 업데이트로그 사이 상당 수 부분에서 관련 이슈를 해결해왔던 것으로 생각합니다.

 

vscode혹은 서브라임텍스트를 쓰신다면 반드시 PHP도 로컬환경에 설치하여 PHP intellisense 플러그인등의 기능을 활용할 수 있도록 하시고, 제일 좋은건 PHP를 설치하지 않더라도 모든 PHP버전별 환경에 대응할 수 있는 PHP 전용 IDE를 쓰는 것이 가장 좋습니다.

 

그리고 에디터단위에서 알려주는 워닝에러 및 에러메세지는 가장 기초적인 부분입니다.

 

화면 캡처 2021-03-27 194509.jpg

 

위의 코드는 PHP7.4까지는 작동할 수 있는 코드입니다. PHP7.4 환경으로 채크하는 VSCODE 에서 이 부분에 에러가 있다고 알려주고 있습니다.

 

단순히 무시하고 넘어가지 마시고.. 앞으로는 고칠 수 있는 습관을 들이기 바래요~!

 

이번에 새롭게 배우시는 주니어 프로그래머님들도.. 어떤 언어든 상관없습니다.

 

예를들어 C#의 경우 visual studio 에서 프로젝트 열었을 경우

 

화면 캡처 2021-03-27 194737.jpg

 

이렇게 하단에 경고, 에러 항목이 1개도 없도록 주의하시길 바랍니다.

 

이렇게 코딩하는 습관이 들여진다면, 다들 실력향상에 도움이 될 것 같아요.

 

 

그리고 PHP intellisense 플러그인 기능을 사용하지 않는 개발자분들.. 꼭 사용하시길 추천합니다. (PHPStorm과 같은 IDE에서는 기본탑제입니다.)

 

어느정도 이미 실력이 뛰어난 사람이라면 저런 플러그인의 도움을 받지 않더라도 코드내에서 해결이 쉽게 가능하신 분이라면 이해는 하지만, 그게 아니라면 도움을 받아 코딩하다보면 실력향상 + 깔끔한 코드를 만드시는데 도움이 됩니다.

 

단순 저런 워닝표기가 없는 정도로 시작해서 코드를 좀더 읽기편하고 경량화시킬 수 있는 방향을 연구하시면 좋은 실력을 갖추시게 될 것입니다.

 

그리고, 피해야할 것은 PHP에 버전이 업그레이드 하면서 생기는 기능들중 확실하게 동작을 알 수 없는 기능들은 사용하지 마세요.

 

예를들어 public static 함수 선언이라던지, public static function name(string $name): string 과 같은 리턴타입 지정기능이라던지 이런 부분은 이미 다른언어에도 널리 쓰이고 PHP에도 적용하면서 사용해도, 안해도 사용에 문제가 없고 지정해주면 좀 더 깔끔하고 추후 빠른 연산이 가능하다는 부분에서 성능상 유리한 경우이기 때문에 언제든지 활용해도 괜찮습니다. 이는 A라는 코드를 작성했을때 B라는 결과가 확실한 기능들을 말씀드리는 것입니다. 신기술이라고 다 좋은거 아닌 것 처럼요.

 

예전에 파이썬 C C#에 람다 나왔는데 람다 좋다고 모든 사람들이 다 썼는데, 최근에는 람다 쓰는거 다 뒤엎거나 사람들이 안쓰죠.

 

그런것들을 생각해보면서 확실히 코딩스탠다드로 명시하여 코딩하시는 것이 좋습니다.

 

어떤 모 게임회사에서는 (이름만 들어도 유명한회사) 코딩스텐다드에 C++17에 A라는 기능이 들어와있는데 이 기능의 동작을 확실하게 알 수 없으므로 C++17의 신기능중 B 와 C만 사용할 수 있는 것으로 규정한다) 라는 규칙도 있습니다.

 

한번 이런 부분을 생각하고 고민하시고 만들어서 본인만의 실력을 향상 시켜보시기 바랍니다.

람보

profile
람보입니다.