오늘 새벽까지 C#을 통해 1년 6개월 전부터 프로그램을 만드는 친구를 만났습니다.
그 친구가 C#을 쓰고 있었는데 파이썬으로 갈아타야하는 것에 대해서 토로를 하더라고요.
참고로 저는 국문과입니다.
C++, C#, 파이썬 등등
이런 개념은 과거 친형이 공부하는 책을 잠시 보거나
친한 친구가 말해주는 것 우연치 않게 듣거나
끝으로 지금 위에서 언급한 친구에게 들은 것 말고는 없습니다.
그런데 계속 듣다보니 궁금증이 생겼고
혼자 생각한 걸 친구에게 말했는데 그게 맞는지 몰라 이렇게 글을 씁니다.
그 친구가 말했습니다.
C#보다 파이썬이 '더 강력한 언어' 라고요.
저는 '더 강력한 언어?'
강력한 언어는 흔히 국어쪽에서 말하는 '축약'과 유사해 보였습니다.
예를 들어 언어체계
블로그나 카페를 만든다고 가정했을 때,
1. 여행 게시판
(1) 국내여행
(1-1) 수도권
(1-1-1) 서울
(1-1-2) 인천
(1-2) 강원도
(1-3) 충청도
(1-3-1) 충청남도
(1-3-2) 충청북도
(1-4) 전라도
(1-5) 경상도
(2) 해외여행
기본 배열은 이렇게 되는데
C#은 완전수동으로 적용시켜주는 것으로 보였습니다.
파이썬은 반자동으로 적용시켜주는 것으로 보였습니다.
즉 (1-1) 같은 걸 C#은 내가 써줘야 하는데
파이썬은 알아서 적용시켜주는?
일단 이게 맞는지 궁금합니다.
이것이 첫 번째 질문입니다.
두 번째 질문은 명령어를 쓰는 방법입니다.
명령어가 맞나요? 프로그래밍 하기 위한 글쓰기?
일종에 엑셀에서 어떤 문서를 만들기 위해 함수 넣는 뭐 그런 거요.
아무튼 저 배열대로 어떤 프로그램을 만들기 위해 명령어를 작성 할 때,
C#은 세세하게 모든 것을 다 말하는 방식
파이썬은 축약을 사용하여 말하는 방식
이렇게 봤습니다.
예를 들면
C#의 경우에는 좀 오바해서 쓰자면..
1. 선생님의 생일
(들여쓰기)나는 어제 오후 12시 25분, 학교에서 점심시간 5분 후에 미리 사온 파리바게뜨 광화문지점에서 산 '생크림 케이크 3호'로 선생님의 생일을 축하해줬습니다.
(들여쓰기)'생크림 케이크 3호는' 하얀 생크림 위에 생딸기는 중앙에 3개가 있었습니다.
(들여쓰기)또한 생딸기 위에는 원형 초콜릿은 1개 꼽혀있었고, 생딸기 좌우측에는 반으로 쪼개진 초코하임 2개가 45도 각도로 생크림에 꽂혀 있었습니다.
파이썬의 경우에는
1.선생님의 생일
나는 어제 12시 25분, 점심시간에 파리바게뜨 생크림 케이크 3호로 선생님의 생일을 축하해줬습니다.
생크림 케이크 3호는 생딸기가 중앙에 3개 있었습니다.
또한 생딸기 위에는 원형 초콜릿이 1개 꼽혀있었고, 반쯤 잘린 초코하임이 2개가 45도로 꽂혀 있었습니다.
이런 배열로 되는 것으로 이해했습니다.
즉, C#은 주어, 서술어, 목적어, 보어, 수식어, 감탄사 등을 모두 작성하는..
마치 글을 쓸 때 축약 없이 모든 것을 다 세세하게 설명하는 것이고
파이썬은 어느 정도 축약이 가능하다고 봤습니다.
특히 명령어.
엑셀로는 함수라 말하는데 프로그래밍을 할 땐 뭐라 하는지 모르겠네요.
그걸 씀에 있어서 축약이 굉장히 많이 들어가 있고.
이와 함께 위에 언급한 "(들여쓰기)"
한컴오피스를 예를 들면
한컴오피스 상단에 위치한 눈끔자 안에 있는 '모래시계'
그걸 움직여 글의 배열을 자동적으로 맞추는 것.
즉, "파이썬은 들여쓰기(=띄어쓰기)를 하지 않아도 자동적으로 적용된다" 고 들었습니다.
위의 내용이 맞는지도 궁금합니다.
끝으로 친구가 이야기 하기를.
세계 30% 시장을 파이썬이 잡았다고 들었습니다.
그리고 파이썬 시리즈도 굉장히 많이 나왔다고 들었고요.
자바를 이용한 파이썬도 있고
C++을 이용한 파이썬도 있고
어째든 그렇게 들었습니다.
그런데 그 친구가 이상한 게 파이썬으로 만든 세계적인 프로그램이 없다고 말해줬습니다.
"세계 시장의 30%를 잡고 있고. 굉장히 강력한 언어이다.
미국 등의 선진국에서는 학생들에게 코딩을 가르칠 때 파이썬을 쓴다고 하는데
이상하게 게임, 세계적으로 많이 쓰는 프로그램(엑셀, 한컴오피스, 익스플로러 등등)은 C언어, C++. C#으로만
만든다."
이와 같이 말했습니다.
참고로 이 친구는 C#을.. 같이 만드는 컴공애가 있었지만
학원 한 번 안 다니고 독학한 친구입니다.
여기서 세 번째 질문입니다.
제가 과거 홈페이지와 연동이 되는 앱을 만들어 달라고 부탁했을 때, 업체에서 말하기를
"로그를 볼 수 있게 해주시면 빨리 끝나는데, 그걸 보여주는 회사가 없으니 오래 걸립니다. 저희가 분석을 해야 하거든요."
라는 말을 들었습니다.
그 말은
우리 홈페이지를 보고
그게 어떻게 만들어졌는지 프로그래밍을 하여 '가상 홈페이지'를 만들고
그 이후에 '가상 홈페이지'와 앱을 연동시키며 프로그램을 만든다.
끝으로 다 만든 앱을 시연한다.
뭐 중간에 이런저런게 들어가겠지만
제가 프로그램을 어떻게 만드는지 몰라서 이렇게 넘어가겠습니다 ^^;;
이 부분에서도 수정이나 틀린 부분이 있으면 간략하게 말씀 부탁드립니다.
아무튼, 이렇게 알고 있습니다.
중요한 건 이겁니다.
C#은 위에서도 언급했지만
주어 + 서술어 + 목적어 + 보어 + 수식어 + 감탄사 등을 모두 작성했기에
협력사에게 로그를 오픈해야 하는 경우가 생겼을 때.
혹은 협력자에게 로그를 오픈해야 하는 경우가 생겼을 때.
협력하는 쪽에서 쉽게 프로그램이 어떤 방식으로 이뤄졌는지 물어보지 않아도 알 수 있다고 저는 봤고요.
파이썬은 축약이 되서
프로그래밍 된 언어를 처음 본 사람은,
"어느 지점에서 사셨어요?"
"초코하임은 어디에 꼽혔나요? 전방? 후방? 좌측? 우측? 아니면 좌우측? 전후방?"
등의 질문을 받아야 하는 건 아닌가?
하는 생각했습니다.
물론 전문가라면 바로바로 알아보겠지만
축약이 있기 때문에 협력자가 그걸 읽어내기 힘든 게 아닌가...
즉 외부와의 소통에서 어려움이 있어서
사이즈가 큰 프로젝트의 프로그램을 만들 때는
파이썬보다 C#, C++, C언어를 사용하는 것이 아닌가?
예를 들면 GS25에서 친구는 공화춘과 참치김밥을 먹었고 저는 혜자 비빔밥을 먹었다고 가정했을 때
저와 친구가 밥을 다 먹고 집으로 돌아가는 길에 음식에 대해 이야기 할 때는
"아까 비빔밥 맛 괜찮던데?"
"라면도 나쁘지 않았어."
"난 국물에서 MSG 맛이 쎄던데?"
"그래? 내 입 맛엔 그게 딱인데?"
"그렇구만."
이렇게 대화할 수 있지만..
집에 가는 길에 제 3자.
A라는 사람을 만났다면
나 : 아까 비빔밥 맛 괜찮던데?
A : 무슨 비빔밥?
나 : 혜자 비빔밥
A : 맛 괜찮아? 어디서 파는데?
나 : GS에서 팔아
친구 : 라면도 나쁘지 않았어.
A : 무슨 라면 먹었는데?
친구 : 공화춘
A : 그런 것도 있어?
친구 : GS에서만 팔아.
A : 우리 집 근처엔 GS가 없어.
친구 : 그래?
나 : 난 국물에서 MSG 맛이 쎄던데?
친구 : 그래? 내 입맛엔 그게 딱인데?
나 : 그렇구만.
즉, 세 번째 질문은..
서로 뭘 만드는지 아는 사람들.
흔히 인원이 많지 않은 중소기업의 경우에는 파이썬을 사용해도 축약에 큰 문제가 크게 발생하지 않지만..
많은 부서와 인원이 필요한 프로그램은 파이썬을 사용할 경우 커뮤니케이션에 문제(=질문)가 있어서
차라리 처음부터 끝까지 모두 나열시켜야 하는 C언어, C++, C# 등을 사용하는 게 아닌가?
하는 생각이 들어 이렇게 글을 올립니다.