PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2020/11/26 16:44:01
Name 하나둘셋
Subject [질문] 코딩학습(C#) 관련 이런저런 질문
안녕하세요~
주변에 아는사람이 하나도 없고..  잘하고 있는건지 모르겠어서 질문을 남겨 봅니다.

저는 짜투리시간에 C# 독학을 하고 있고 최종 목표는 Unity로 80년대에 나왔을법한 쉬운 2D게임을 만들어 보는겁니다. (마리오 등)

코딩과 무관한 직장인이고 학습환경이 무조건 회사에 새벽에 나가서 공부하는거밖에 없습니다.
몇주째 새벽 5시까지가서 7시까지 하고 있네요 .   재미가 붙으니 누가 안시켜도 열심히 하게 되는거 같습니다.

유튜브 보면서 따라하기도 해보고,
웹에 있는 교과서 같은걸 순서대로 따라하기도 해보다가
결국 배우려면 실제 사용하는것밖에 없는것같아   연습문제를 풀고 있습니다. (진짜 실전을 하겠다고 회사를 때려칠순 없으니)

연습문제는 Programmers라는 사이트에서 1단계문제를 풀고 있고  이제 1단계 절반정도 푼것 같습니다.
혼자 무조건 일단 풀고, 다른사람들 코드 보면서 배우고 이렇게 하고 있어요.


질문1.
유튜브를 보다보면  누군가는 메모리사용 관련한 것을 꼭 공부 해야한다.
C++가 모든것의 기초다 이렇게 얘기를 하는데 다들 그렇게 생각 하시는지..?  
이걸 업으로 하시는 분들은 그렇게 로우레벨? 관련 사항까지 공부를 하고 개발을 하시는지 궁금합니다.  (자바나 C# 파이썬을 하더라도)


질문2.
유니티가 목표인데 회사에서 유니티를 도저히 할수가 없습니다.   새벽에와서 해도 누군가는 보고 눈치가 보여서요
일단 몇개월은 C#언어 자체를 목표로 문제나 열심히 풀어보자! 하고 있는데  맞는 공부방법인지 모르겠습니다.
(여기서 문제는 위에 언급한 programmers 문제들)

책을보고 공부하기엔 너무 습득이 안되는것같고,  유튜브 보면서 공부하는건 너무 시간이 많이걸리는것같고..
빨리 공부해서 대학생수준까지는 되면 좋겠는데   학교에서는 어떻게 학습하는지도 궁금하구요



질문3.
정말 별거 아닌 코드인데도   실행하면 오래걸립니다.
예를들면..   엑셀에서 몇백줄짜리 vlookup해도 엔터치면 바로 나오는데     정말 쉬운 중학생수준 문제 vscode로 실행시키면
dotnet run으로 돌리면 8초 ,     디버깅(F5)으로 실행하면 11초 이런 식입니다.

회사에서 가끔쓰는 노트북으로하면 십몇초씩 걸릴때도 있고....

원래 이렇게 오래 걸리는건가요 ㅠㅠ?           그래서 프로그래머들은 애플컴퓨터를 쓴다고 누가 그러던데   맥북을쓰면 좀 빨리 되려나요
당장은 괜찮아도 나중에 파일이 커지면 얼마나 오래 걸릴지 걱정입니다.

컴퓨터에서도  어느부분을 업그레이드 해야 빨리 돌아가는지 알수 있으면 좋을것 같습니다  (CPU? RAM?)



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
20/11/26 16:59
수정 아이콘
1. 아뇨.
2. 코드 읽으실 줄 알면 연습풀이 보단 만들어진 코드 뜯어보는 게 빨리 느십니다.
3. 원래 처음 빌드 할 땐 오래 걸립니다. 근데 지나치게 느린 경우는 무한 루프 돌거나 하는 부분 있는지 확인해보세요.
하나둘셋
20/11/26 17:28
수정 아이콘
네 감사합니다 워낙 간단한코드라 무한루프는 아니었습니다
도라지
20/11/26 17:00
수정 아이콘
1. 어떤 문제가 생겼는데 원인을 잘 모를 경우 로우레벨까지 따져가면서 보기는 합니다만, 공부 시작 단계에서는 불필요할수도 있습니다.
물론 알아서 나쁠건 없는데, 공부하는데 시간이 많이 걸리실겁니다.

2. 학교에서 아무리 학습해봤자 회사 오면 아무것도 모른다고 생각하고 시킵니다.
학교에서도 특별한 경우 아니면 이론공부 + 책보고 따라하는 수준이라, 책보고 따라하는 정도로만 하셔도 될 것 같습니다.

3. 프로그램 최적화에 따라 다른데, 오래 걸리는건 몇분씩 걸리기도 합니다.
프로그램이 게임 수준으로 컴퓨팅 파워를 쓰기 때문에 게임용 바로 아랫급으로 맞추셔야 할겁니다.
맥은 아이폰용이나 그래픽쪽 개발할거 아니면 잘 안쓸겁니다.
하나둘셋
20/11/26 17:29
수정 아이콘
그렇군요~ 맥은 필요없겠군요 언젠가 컴퓨터나 다시 사야지..
neogeese
20/11/26 17:11
수정 아이콘
1. 유니티 같은 게임 엔진 만드는게 목표가 아닌 이상 필요 없습니다.
2. 말슴 하시는 목표 대로라면 지금 공부 하시는 방법 보다 유니티 툴 부터 익히시는걸 추천 합니다. 취미로 접근 하시는데 C# 문법 부터 하시면 너무 오래 걸립니다. 캐릭터 움직이는걸 먼저 목표로 접근해 보세요. 업이 아닌 이상 코드 효율 뭐 이런거 보다 직접 눈으로 돌아 가는거 보는게 더 나아요.
하나둘셋
20/11/26 17:30
수정 아이콘
다들 C문법까진 필요없다하셔서 맘이 편해지네요

일단은 C#공부도 재미있어서 기간을 정해서 하려고 하로있었습니다 빨리 유니티로 가야겠네요..
-안군-
20/11/26 17:24
수정 아이콘
1. 필요없습니다. 아주 간혹 필요한 경우가 있는데, 그런경우는 유니티 에셋스토어를 뒤지시는게 더 빠를겁니다. 왠만한 플러그인은 다 있습니다.
2. 일단 쉬워보이는 것부터 차례차례 해보시는걸 권합니다. 한번에 완벽하게 만드는건 전문가들도 힘듭니다. 화면에 맵을 표시하는 것부터 시작해서, 이동, 상호작용, 충돌처리, 점수처리... 등등 하나씩 해결해가다 보면 어느샌가 게임이 만들어져 있을겁니다.
3. 최적화는 프로그래밍의 꽃이자 끝판왕입니다. 원래 어렵습니다. "생각하는 프로그래밍"이라는 책을 권해드립니다.
하나둘셋
20/11/26 17:32
수정 아이콘
매번 댓글 달아주셔서 감사합니다 계속 좋은 참고가 되었습니다
언젠가 저도 게임을 만들수 있는 날이 오면 좋겠네요ㅠ
모나드
20/11/26 17:24
수정 아이콘
빌드 시간은 따로 재신거 맞아요?
엑셀도 처음부터 빌드 하려면 시간이 어마무시하게 들거에요
하나둘셋
20/11/26 17:32
수정 아이콘
빌드 개념이 없어서요ㅠ
뭔가 프로그램을 만드는? 시간이 따로 들어 가는군요..
모나드
20/11/26 17:40
수정 아이콘
네 한 번 실행하고 소스코드 안 고친 채로 다시 실행하시면 빌드없이 실행할 거에요
지구사랑
20/11/26 18:22
수정 아이콘
csproj 가 들어 있는 디렉토리의 서브디렉토리를 찾아보시면 실행 파일이 만들어져 있을 겁니다.
bin\Debug\net5.0 에 .exe 가 있을 텐데, 소스가 변하지 않았다면 그냥 실행시킬 수 있습니다.
하나둘셋
20/11/26 19:01
수정 아이콘
아아아 저는 그냥 IDE에서 실행시킨거지만 뭔가 내부적으로 exe파일이 만들어 지는거군요

한번 만들어지면 빨리 되는거고
지구사랑
20/11/26 19:10
수정 아이콘
옙, .exe 를 만드는 것을 빌드라고 합니다.
파이썬 같이 인터프리터 방식에서는 파이썬 프로그램이 중간 실행자 역할을 맡기에 빌드를 따로 하지 않지만,
C 계열은 소스를 컴파일하고 다시 연결하여 (compile & link) 실행 파일을 만들죠.
빌드 시간이 필요한 대신, 일단 실행 파일이 만들어지면, 실행 파일의 실행 속도는 인터프리터 방식보다 많이 빠른 것이 보통입니다.
수원역롯데몰
20/11/26 18:03
수정 아이콘
취미는 즐기면서 하시는거니 어려운 부분은 그냥 넘어가셔도 됩니다~
M270MLRS
20/11/26 18:55
수정 아이콘
1. 그냥 지나가는 개소리로 듣고 흘리시면 됩니다. 그거 생각하면서 짤 환경 아니면요.

2. 최종 목표를 생각하면 C#보다 Unity 툴부터 익숙해지시는게 어떨까 싶습니다만...?

3. 굳이 비교를 하자면 엑셀은 계산준비가 다 되어 있는 상태에서 데이터만 넣어서 결과를 내는것이고, 프로그램으로 돌릴 경우 해당 연산을 위한 네이티브 코드를 생성 후 그 네이티브 코드를 통해 연산을 하고 결과를 내니 좀 늦어보일수는 있습니다. 다만 프로젝트 내부에 실행파일로 돌릴 경우에는 엑셀만큼 빠르게 볼 수 있을꺼구요.
하나둘셋
20/11/26 19:03
수정 아이콘
단호한 답변 감사합니다 크크

가능한 시간에는 Unity를 당장 하는게 낫겠군요
그냥 느낌상 언어를 먼저 알아야할것 같았습니다
M270MLRS
20/11/26 19:36
수정 아이콘
조금 더 디테일하게 설명 들어가자면...

1. 진짜 꼰대나 하는 소리입니다. 옛날처럼 메모리 한조각이라도 최적화할려고 난리칠때면 C, C++ 쓰는게 맞고 지금도 쓰는 환경이 있습니다. 단적으로 임베디드 S/W같은 경우 제한된 H/W 스펙 내에서 최대 성능을 뽑아내야하기 때문에 C++도 모자라서 C로만 제어하는 경우도 있습니다. 대신 극한의 메모리 관리가 개발자 수준에서 이루어져야 하죠. 그거 진짜 머리 빠집니다. 하나라도 삐끗하면 터지는건 예사입니다.(......)

그런데 요새 파이썬이나 C#, JAVA 같은 경우 저 중요한 메모리 관리를 가비지 컬렉터(이건 자바에서 쓰이는 용어이긴 한데, 그냥 뭉뚱그려 이 단어로 퉁칩니다.)라는 별도 시스템에서 [알아서] 합니다. 메로리 영역을 개발자가 신경 끊어도 되고, 신경써서도 안되는 영역이 되어버리는 것이죠. 그만큼 퍼포먼스와 성능은 옛날보다 상대적으로 좀 떨어질지 몰라도 H/W가 워낙 발전을 많이 해서 커버치고도 남아돕니다.

2. 제가 Unity는 안해봤지만, Unity 자체가 C# 비중이 크다고 알고 있지는 않습니다. 그래서 글쓴이분께 여쭈어봅니다. 게임 개발이 목적이십니까? 아님 프로그래밍을 통한 게임 개발이 목적이십니까? 이거 선후관계 의외로 중요합니다. 전자가 목적이라면 Unity 툴부터 익숙해지면서 공개되어 있는 다른 API나 관련 자료들을 통해서 원하는 수준의 구현을 목표로 해야 할 것이고, 후자가 목적이라면 언어 자체의 기본 사용법과 성능을 어떻게 뽑아낼지에 대한 공부가 선행되어야겠죠. 두가지 중에서 혼동하지 마시길 바랍니다.
세크리
20/11/26 20:34
수정 아이콘
C#으로 간단간단한거 개발 할거면 C 필요 없죠. 목표가 그냥 간단한 게임 개발이면 C#만 계속 열심히 하셔도 충분 합니다. 그런데 고급 개발자 중에 C/C++모르는 사람 아무도 없는것도 맞습니다. 게임쪽도 깊게 들어가면 필수입니다. 유니티도 엔진 자체는 C++로 개발된걸로 압니다. 이게 당장 3번이랑 연결되는데, C# 프로그램은 그냥 hello world만 찍어도 .net 프레임워크를 메모리에 로딩 해야합니다. 가비지 컬렉터랑 이런저런거 주렁주렁 딸려오죠. C/C++을 쓰면 자기가 필요한 코드만 메모리에 올릴 수 있고 최적화 측면에서 컴파일된 코드 크기/속도를 수십배까지도 끌어 올릴 수 있습니다. 요즘 워낙 C# 개발환경이 좋고 게임쪽도 지원을 많이 하긴 하지만 윈도우/엑박 종속적이고 가비지 컬렉터 같은것 때문에 깊게 가면 한계가 있는 것도 맞습니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
150560 [질문] 손가락에 허물(?)이 벗겨지고 있습니다. [4] 삭제됨4836 20/11/27 4836
150559 [질문] 컴알못 램 추가구매 질문있습니다. [4] 유유할때유4994 20/11/27 4994
150558 [질문] 백내장이 있는데요 [4] 참새가어흥6555 20/11/27 6555
150557 [질문] 액션 게임 추천 부탁드립니다 [10] 잠수족5867 20/11/27 5867
150556 [질문] 컴퓨터 케이스 바꿔도 없던 파워 고주파음이 나는 경우가 있나요? [2] Ellun4935 20/11/27 4935
150555 [질문] 플레이스테이션스토어 카드등록 실패 [1] 熙煜㷂樂6793 20/11/27 6793
150554 [질문] [보험] 연금보험 → 종신보험 [11] gkrk4642 20/11/27 4642
150553 [질문] 우리나라에서 양적완화는 실제로 이루어 졌는가? [5] 설사왕6408 20/11/27 6408
150552 [삭제예정] 직장내 상사와 트러블 [16] 삭제됨7219 20/11/27 7219
150551 [질문] 전세 세입자가 3, 4개월 연장하고 싶어할 경우 어떻게 해야하나요? [33] Dresden9315 20/11/26 9315
150550 [질문] 영화를 찾습니다 [8] 하위1%5687 20/11/26 5687
150549 [질문] 주차중 상가유리파손 대물처리하면되나요? 달달합니다4646 20/11/26 4646
150548 [질문] 스위치 이스8 한글 질문입니다 [2] 몽상청년6092 20/11/26 6092
150547 [질문] 인터넷 3년 약정 이후 유지 방법 문의 [5] 박서의콧털6575 20/11/26 6575
150546 [질문] 스팀의 철권 7 Ultimate Edition은 뭐죠? 스토리 모드는 있는지? [5] Pygmalion18518 20/11/26 18518
150545 [질문] 컴퓨터 구매예정 전 질문입니다. [10] 500원5546 20/11/26 5546
150544 [질문] 유아 넌센스퀴즈 [10] The HUSE8778 20/11/26 8778
150543 [질문] 안드로이드 음악재생 앱 추천 부탁합니다. [9] 메디락스6300 20/11/26 6300
150542 [질문] 엑셀 데이타 추출하려고 하는데 함수가 있을까요 ?? [8] 호아킨9774 20/11/26 9774
150541 [질문] 어머니가 쓰실만한 싸이클 운동기구 추천부탁드립니다. [5] 녹용젤리5478 20/11/26 5478
150540 [질문] 그래픽카드 업글하려고 하는데 조언좀 부탁드립니다 [6] IDEAL.OF.IDOL5652 20/11/26 5652
150539 [질문] 코딩학습(C#) 관련 이런저런 질문 [19] 하나둘셋7081 20/11/26 7081
150538 [질문] 인대손상...어떻게 해야하나요? [10] 희원토끼6437 20/11/26 6437
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로