프로그래밍 초보 참고용 글 본문

개발자일기

프로그래밍 초보 참고용 글

반응형

학부생이나 집에서 취미로 프로그래밍 하시려는 분들 참고하시라 글씁니다

 

스마트폰 및 기술발달로 10년전에 비하면 프로그래밍 언어 와 플랫폼들이 

너무 많이 쏟아져서 시작한지 얼마 안된분들께 오히려 큰 어려움이 되는것 같습니다.

 

요즘 IT 산업에서 수요와 돈이 몰리는곳은 무조건 웹기반 환경이기 때문에 오히려 기존 PC환경에서

C언어 및 파생언어 기반으로 개발하시는분들이 새로 입문하는 분들께 어떻게 조언을 드리기 

힘든 상황입니다.

 

환경도 많이 바뀌었죠. 요즘은 PC환경도 어느 소프트웨어던지 생각없이 무조건 웹이나 리액터js로 

개발하는 경향이 강한데 메모리 관리나 브라우저 only 이런면에서 좀 지나치게 일방적인 트렌드인것 같아 보기 그렇습니다. 

 

사용상 자잘한 불편은 말할것도 없구요. (리액트의 경우 자바와 비슷하게 그러나 크롬브라우저를 이용하여 가상머신 비슷하게 구현하는것이기 때문에 크롬 브라우저의 고질적인 메모리 누수 문제 등이 여전히 존재합니다) 

또한 주택가 사는분들은 인터넷 회선 불량으로 한달에 몇번씩 인터넷 연결이 불안정할때가 있는데 이런 변수들 감안 안하고 웹으로만 의존하는게 과연 옳은건가 싶습니다.

 

 
그래서 오히려 PC 환경에서 개발할때 뭘 주력으로 삼아야할지 고민하시는 분들께 
참고하라고 한번 심심해서 써봅니다.

 

물론 주관적인 의견도 다수 포함되어 있습니다. 아니다 싶은건 거르시고 참고하시면 됩니다.

 

 

 

- 배우고자 할때는 C# 먼저 독학뒤 C++이나 웹개발 기타 언어로 넘어가시는게 좋습니다

 

10년 전만해도 이자리를 자바가 차지했는데 C#은 대충 말해 자바 와 C++ 의혼합이라 

객체지향이 무엇인지 UI코딩(메세지 액션 등)은 대충 어떻게 돌아가는지 감 잡을수 있습니다.

아무것도 모르는 분들은 C#부터 배우세요.

 

독학시에는 C# 책 300페이지 이상 되는 (최근 2년안에 출판된 책)거 구매하셔서

처음부터 끝까지 한번 따라해보세요. 책한권 돌려야 일단 감이 잡힙니다. 

어려운거 있으면 걍 넘어가세요 기초한답시고 20p 30p 부근에서 몇일 소비해봐야 시간낭비입니다.

 

 

 

- 쉽고 빠르게 UI기반 프로그램 만들고 싶으면 C# 하세요 자바 그런거 필요없습니다.

 

어차피 마소가 자바 의식해서 객체지향 및 디자인 방법론을 참고해서 만든게 C#이기 때문에

윈도우에서 굴리는 환경이라면 오히려 C#이 더 효율적이고 편합니다. 

실행속도는 다소 느리지만 개인프로젝트 및 중규모에 있어서 그닥 문제되는 수준이라고는 보지 않습니다.

평타는 칠지언정 적어도 불편하진 않습니다.

 

다만 툴로 코드 뜯어보는게 너무 쉽기 때문에 어디 판매하거나 소스코드 노출되면 안되는 프로그램 만들때는 비추입니다. 저는 제가 개인적으로 쓸 툴같은거는 C#으로 만듭니다.

 

 

- 손코딩 귀찮으면 Visual Assist나 자동완성 사용하셔도 충분히 좋습니다

 

일부 강사들이 초보때는 외워서 손코딩 이러는데 그거 다 기억 못합니다. 

강사들이야 가르치는게 매년 똑같으니 기억하는건데요 근데 그런버릇 들이면 

나중에 자기가 직접 만들고 싶은거 만들때 어려운길 고집하다가 하루걸릴거 몇일 걸립니다.

편하게 해주는 툴들은 다 이유가 있고 수요가 있어서 만드는거니 막 사용하시면 됩니다. 

 

어려운길이 막 뭐 정도의 길이고 그런거 절대 아닙니다.

쉽고 부담없이 프로그래밍 하세요. 어차피 쉬운방법으로 해도 충분히 머리아픈게 코딩이고 개발입니다.

나중에 가면 다 의미없어서 stackoverflow 붙여넣어서 조립식 코드 만들고 그렇게들 많이 개발합니다. 

 

 

 

- UI 그려서 쓰는 프로그램은 아직까지 C++ Win32 API (MFC 아님) 방식을 넘을수 있는건 없습니다.

 

QT는 오픈소스(소스공개 의무화)에 한해 무료고 상용은 비쌉니다. 

사실상 기업 쓰라고 만든거고 개인이 쓰기에도 불편합니다. 개인 용도로는 따로 신청해야 하는데 복잡합니다.

 

따라서 전통적인 방식의 UI 그려서 돌아가는 프로그램은 C++로 Win32 API 로 개발하는게 답입니다. 

잘 할수 있다는 가정 하에 성능 및 속도는 제대로 나옵니다. 

(유명 압축프로그램 반x집이 C++ Win32 API 사용한걸로 알고있습니다) 

 

단점은 어렵습니다. C#처럼 그리는게 아니라 웹개발마냥 코딩해서 UI elements 등등 맞추고 배치하고 그러는 방식이라 흔히 쓰는 프로그램처럼 깔끔하게 만들려면 공부 좀 많이 하셔야 합니다.

MFC는 사실상 마소가 지원 포기한 방식이라 열심히 코딩해도 버그 및 오작동할 가능성이 높습니다.

C++ Win32 API 쓰세요

 

 

 

- 파이썬도 추천 합니다 그러나 사용하기에 다소 번거로운 점이 다소 존재합니다. 웹개발이나 연구쪽에 더 어울립니다.

 

웹개발은 백엔드에서 데이터 받아 .py 코드로 연산해서 다시 프론트로 넘겨주는 방식 많이 쓰입니다.

Data Science나 수치해석 (기존에 MATLAB으로 하던) 할때는 오히려 MATLAB보다 훨씬 강력하고 좋습니다.

인공지능 머신러닝 연구하는 사람들도 텐서 등으로 파이썬 자주 돌립니다.

단점은 터미널 기반에 패키지 및 2.x 3.x 호환성 문제 (깃허브에서 공개된 오픈 소스들 간혹 패키지 호환 에러던지 이유로 받은 소스 트윅해서 사용해야하는 경우 다수 존재)로 이런점에서는 살짝 불편할수 있습니다.

 

 

 

반응형

개발자일기 Related Articles

MORE