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# 개발환경이 좋고 게임쪽도 지원을 많이 하긴 하지만 윈도우/엑박 종속적이고 가비지 컬렉터 같은것 때문에 깊게 가면 한계가 있는 것도 맞습니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
158037 [질문] z플립3 단독컬러 배송예정일 밀리신분 계신가요 [13] 하나10083 21/09/07 10083
157775 [질문] 넷플릭스 7세 남자아이가 볼수 있을만한 영어컨텐츠 (포켓몬스터같은?) [5] 하나둘셋10064 21/08/26 10064
157752 [질문] 매불쇼 들으시는분 질문.. (오세훈관련) [7] 하나둘셋10324 21/08/26 10324
157663 [질문] 넷플릭스 공유 업체도 합법적인건가요? [9] 하나둘셋10372 21/08/22 10372
157558 [질문] 갤럭시 z플립3 삼성닷컴 단독 판매 색상(화이트) 질문 [7] 하나11021 21/08/17 11021
157439 [질문] 직장인 해외영업 발령시 영어공부 어떻게할지.. [4] 하나둘셋9267 21/08/13 9267
156795 [질문] 식기세척기와 믹스앤픽스, 환경호르몬 [4] 하나둘셋11791 21/07/19 11791
155869 [질문] 공원에 있는 캣맘이 놓은 고양이먹이 텐트 돗자리 버리면 불법인가요? [6] 하나둘셋7739 21/06/12 7739
155728 [질문] 회사에 뭐라고 핑계를 대는게 좋을까요 [17] 하나둘셋9380 21/06/07 9380
155282 [질문] 차알못 이렇게 타이어 교체해도 될까요? [8] 하나둘셋7546 21/05/21 7546
155122 [질문] 초등학교 3~4학년 여자애들이 알만한 노래 [4] 하나둘셋8511 21/05/15 8511
155001 [질문] 이게 해군 ROTC? 라는 글씨 이려나요.. [12] 하나둘셋6898 21/05/10 6898
153993 [질문] 어린이집 문제입니다 [2] 하나나카지마6524 21/03/30 6524
153456 [질문] LH 비리. 이렇게 처리하는건 불가능한가요. [75] 하나의꿈9499 21/03/10 9499
151940 [질문] 혼자서 게임개발 (취미든 부업이든) 하시는분들 다이어그램을 어느정도 그리시는지요 [4] 하나둘셋5731 21/01/11 5731
151362 [질문] 게임을 찾습니다.. 90년대후반 추정 올라가기/내려가기 간단한게임 [2] 하나둘셋4939 20/12/22 4939
150975 [질문] 코딩관련 구글에서 검색시 ,(쉼표) 문자나 []괄호 문자를 포함해서 검색하는법? [7] 하나둘셋7129 20/12/10 7129
150797 [질문] 우분투를 쓰면 컴퓨터가 윈도우보다 빠른가요? [13] 하나둘셋6402 20/12/04 6402
150539 [질문] 코딩학습(C#) 관련 이런저런 질문 [19] 하나둘셋6492 20/11/26 6492
150422 [질문] 여러종류의 코로나 백신출시로 인한 부작용은 없나요? [10] 하나의꿈6165 20/11/22 6165
150183 [질문] 코딩 관련 무엇을 학습할까에 대한 고민.. [8] 하나둘셋6705 20/11/13 6705
150000 [질문] 파이썬(파이게임) 에서 시간을 활용하는 것 관련 질문.. [4] 하나둘셋6339 20/11/06 6339
149691 [질문] 아시는분껜 쉬울것같은 파이썬 질문.. [4] 하나둘셋6438 20/10/27 6438
목록 이전 다음
댓글

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