Notice
Recent Posts
Recent Comments
Link
12-26 00:51
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

킹머핀의 제작 일지

텍스트 프로그래밍은 진짜로 최악입니다. 본문

인디 게임 개발/소식

텍스트 프로그래밍은 진짜로 최악입니다.

KingMUffin 2021. 4. 3. 23:17

오늘부로 절대로 프로그래밍 직종을 희망하지 않기로 확정합니다.

원래 이 글의 제목은 '맥OS에서 VSCode로 C++ 프로그래밍을 위한 초기 설정'으로 지을 예정이었습니다. 그런데 애초부터 그걸 할 생각이 잘못되었던 것입니다.

 

시작은 GCC였습니다. 위와 같은 주제로 검색해보면 GCC와 LLDB를 이용한 빌드 방법을 소개하는 글이 대다수입니다. 그런데 처음 빌드할 때 환경을 선택한 대로 자동으로 생성되는 실행 정보를 저장하는 launch.json과 task.json 파일의 내용을 작성자가 제공하는 내용으로 복사 붙여넣기하는 과정이 항상 있습니다.

그 내용을 곧이 곧대로 신뢰한다고 해도(아깐 그러지 못 했지만), IDE만으로 해결하지 못 하는 문제는 정말 좋지 않습니다. 마치 유니티에서 안드로이드 대상으로 빌드할 때나 아나콘다에서 JVM을 사용하기 위해 운영체제의 환경 변수를 개인이 인터넷에서 직접 찾은 대로 수작업으로 편집해야 하는 것처럼요.

일반적인 소프트웨어가 그런 식으로 작동한다면 아무도 사서 고생하려 하지 않을 것입니다. 그런데 프로그래머의 세계에서는 다들 이게 용납이 되나봅니다. 문제는 IDE 사용자가 모두 전문가가 아니라는 점과, 대다수의 IDE가 그런 식이라는 점입니다. 이래놓고 누구나 코딩을 배우라는 말을 할 수가 있나? 누구나 이 짓을 해보란 말이잖아.

근데 저는 고등학생 때 유니티에서 안드로이드 대상으로 빌드하려면 꼭 환경변수를 설정해야 한다는 네이버 공식 유니티 카페 매니저의 답변을 듣고도 맘에 들지 않아서 무시하고 빌드했는데 정상적으로 수행된 경험이 있어서, 이번에도 실행 정보를 수정하지 않고 실행해보았는데, 일단 'Hello world'가 잘 출력되었습니다. (왜 "\r\n"까지 출력되는진 모르겠지만..)

그래서 학교 실습용 파일도 시도해봤는데, gets_s 함수에서 오류가 발생합니다. (이 오류가 없는 코드도 실행 중 값을 입력하면 오류가 생깁니다) 찾아보니 GCC는 이 함수를 지원하지 않는다고 하네요. 대신 fgets 함수로 일일이 수정하면 된다는 글을 발견해서 그렇게라도 해야하나 고민하는 중에, 그럼 GCC 말고 딴걸 쓰면 되지 않나 생각이 들었습니다. 그래서 아까 봤던 글을 다시 둘러보고 있었는데..

위에서 검색했던 결과 중 유일하게 비주얼 스튜디오 공식 문서(튜토리얼)를 인용한 글이 있었습니다. 잘 보니 GCC가 아니라 Clang을 사용하네요? (참, 또 검색 결과의 대부분이 이미 설치되어 있는 LLDB를 두고 다른 개발사의 CodeLLDB를 설치하라고 알려줍니다.) 그래서 그 문서에 들어가서 읽어보니, 맥에서 GCC를 사용하는 방법에 대한 문서는 없고, Clang을 사용하는 문서만이 있었습니다.

그럼 제가 봤던 대다수의 글에서는 왜 GCC를 사용하라고 했을까요? Clang으로는 어려운 GCC의 목적과 용도가 있겠죠. 그러면 굳이 공식 문서에서 가르쳐주는 대로 안 하고 처음 보는 사람이 주는 내용 똑같이 가져다 쓰라고 하는 명확한 이유라도 알려줘야 수긍을 하겠는데, 아무도 그러지 않습니다. 지금까지 모든 IDE를 사용하기 위한 초기 설정 과정이 이렇게 불친절했습니다.

그래서 저는 처음부터 공식 문서를 그대로, 똑같이 따라하기로 했습니다. 자, 워크스페이스 만들기부터. 명령어를 제공하네요? 프로젝트 폴더에서 실행한 터미널에 붙여넣었습니다. 음? 오류 하나가 떴네요. 파일 탐색기로 보이는 모습도 예시 이미지랑 조금 다르고. 그래도 폴더는 잘 만들어졌으니 스크립트 파일을 만들고 제공하는 예시 코드를 붙여넣겠습니다.

이건 무슨 오류죠? 제가 또 뭘 잘못했을까요?

심지어 저 첫 번째 오류는 검색해봐도 같은 사례가 딱 하나밖에 없습니다. 그렇다고 해결책을 제시해주지도 않고요.

아니.. 물론 이유가 있겠죠. 해결도 어떻게든 할 수도 있겠죠.

근데? 그걸 또 해야돼요? 언제까지? 앞으로 또 안 이럴 거라는 보장은?

애초에 초기 설정부터 발생할 가능성이 있는 오류 정도는 IDE나 공식 홈페이지 선에서 전부 해결책을 제시해줘야 맞지 않을까요?

어떻게 거의 모든 IDE 초기 설정과 프로그래밍 도중에 이런 삽질 노가다로 시간과 에너지를 죽치는 상황이 발생할 수 있는 것이죠??

이제부터는 정말 정말 정말 정말로 새로운 시도같은 쓸데없는 도전은 하지 않고 잠깐 귀찮고 맘에 안 들더라도 가장 안전하다고 생각하는 방법만 고수하다가 빨리 졸업이나 하겠습니다. 선서. 선서.. 대학생 때부터 저런 불평 들어주느라 고생한 저 친구한테 고마움을 전합니다. 이제 저런 얘기 할 일 없을 거야. 기필코 없게 할 거야. 없어야 돼.

참, 이 고생은 학교 공부하려고 이미 설치한 프로그램인 VSCode로 C++ 좀 해보겠다고 시도하다가 경험하게 되었습니다. 네, 시작도 못 했습니다. 현재 4개의 강의와 3개의 과제가 밀렸습니다. 내일 일찍 일어나서 해야겠네요. &