• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

객체지향과 절차지향의 구조적(?) 차이점 및 기타질문

21.08.02 11:04 작성 조회수 390

0

아아앗... 질문하구 보니 다음 강의에서 질문 드렸던 내용들이 나오네요... 그래두 질문은 남겨둡니다. 답변 미리 감사드립니다^^

안녕하세요! 오늘도 강의 잘 보았습니다.

항상 기본적인 질문만 드리는 것 같아 민망하네요...

강의 보고 객체지향, 절차지향의 개념을 처음 알게 돼서 정확히 알고 싶어서 검색을 해보았는데 해결이 안 되는 부분이 있어서 질문을 남깁니다.

1. C 계열 언어는 절차지향 언어이다 혹은 절차지향 언어에 가깝다는 검색 결과가 많았는데, 이러한 C 언어에서 객체지향 프로그래밍을 할 때 이점이 있나요?

C 언어가 절차지향 언어라면 객체지향을 사용하는 건 약간 목적이나 기능을 거스르는? 것이 아닌가 하는 의문이 들어서요.

2. 절차지향, 객체지향에 대한 개념적인 차이는 어느정도 이해가 되었는데 코드 구현상에서 그 차이를 잘 모르겠습니다. 선생님이 보여주신 class Knight에 knight의 속성을 넣어서 모듈화 한 것도 이전 강의에서 사용했던 것과 어떻게 다른지 크게 와닿지 않았습니다.  예를 들어서 지난 강의에서 struct를 사용해서 모듬세트를 만들어준다고 하셨는데 그것과 class가 어떻게 다른지, 어떤 상황에서 다른지 잘 모르겠습니다.

검색을 해보았을 때도 접근방법, 상속참조의 차이다 라는 내용이 주를 이뤄서 이 두 개를 왜 구분해야하는가?에 대한 의문은 해결이 안 되었어요.

그리고 혹시 C# 관련 교재를 추천받을 수 있을까요? 기초적 질문을 하게 될 때마다 항상 먼저 검색을 해보곤 하는데 블로그 등으로 알아보는 게 한계가 있는 것 같아서요. 책을 통해서 좀 더 공부하고 싶은데 좋은 교재가 있다면 추천받고 싶습니다!

마지막 질문으로 게임학원을 다니셨다고 했는데 학원을 다니는 것이 좋은 선택이었다고 생각하시는지 궁금합니다. 선생님 강의도 정말 훌륭하지만(제가 인프런에서 들어본 것중에 제일 좋았어요) 혼자서 공부하는 게 힘들 때도 있어서 학원을 고민 중이거든요. 학원에 대한 평가가 워낙 갈려서 선생님 의견도 참고하고 싶어서 여쭤봅니다.

긴 질문 죄송하고, 늘 자세한 답변 감사드립니다.

좋은 하루 보내세요! ^__^

답변 1

답변을 작성해보세요.

0

1. C 계열 언어는 절차지향 언어이다 혹은 절차지향 언어에 가깝다는 검색 결과가 많았는데, 이러한 C 언어에서 객체지향 프로그래밍을 할 때 이점이 있나요? C 언어가 절차지향 언어라면 객체지향을 사용하는 건 약간 목적이나 기능을 거스르는? 것이 아닌가 하는 의문이 들어서요.

C언어는 절차지향이 맞지만
C++은 절차지향 + 객체지향은 물론 기타 컨셉이 짬뽕된 완전체 변종에 가깝습니다.
오 이거 괜찮네? 응 C++에도 넣자 << 거의 이 수준이라고 보시면 됩니다.

2. 절차지향, 객체지향에 대한 개념적인 차이는 어느정도 이해가 되었는데 코드 구현상에서 그 차이를 잘 모르겠습니다. 선생님이 보여주신 class Knight에 knight의 속성을 넣어서 모듈화 한 것도 이전 강의에서 사용했던 것과 어떻게 다른지 크게 와닿지 않았습니다.  예를 들어서 지난 강의에서 struct를 사용해서 모듬세트를 만들어준다고 하셨는데 그것과 class가 어떻게 다른지, 어떤 상황에서 다른지 잘 모르겠습니다.

사실 이 부분은 C (C++아님)로 코딩을 해봐야 감이 오는데
요즘 세상에 절차지향으로 코딩을 할 일은 많이 없어서 그냥 지나치셔도 됩니다.
어차피 이 정도의 작은 규모의 프로그램에서는 뭐로 해도 상관없기에
크게 티가 안나겠지만, 코드가 몇 십만줄이 될 때가 되면 코드 정책이 중요해집니다.

그리고 혹시 C# 관련 교재를 추천받을 수 있을까요? 기초적 질문을 하게 될 때마다 항상 먼저 검색을 해보곤 하는데 블로그 등으로 알아보는 게 한계가 있는 것 같아서요. 책을 통해서 좀 더 공부하고 싶은데 좋은 교재가 있다면 추천받고 싶습니다!

C# 문법 책은 거의 대부분 비슷해서, 디자인이 마음에 드는 서적을 아무거나 구입하시면 됩니다.

마지막 질문으로 게임학원을 다니셨다고 했는데 학원을 다니는 것이 좋은 선택이었다고 생각하시는지 궁금합니다. 선생님 강의도 정말 훌륭하지만(제가 인프런에서 들어본 것중에 제일 좋았어요) 혼자서 공부하는 게 힘들 때도 있어서 학원을 고민 중이거든요. 학원에 대한 평가가 워낙 갈려서 선생님 의견도 참고하고 싶어서 여쭤봅니다.

이 부분에 대한 TMI 강의를 지지난주에 제출했는데 이번주엔 꼭 나왔으면 좋겠네요 ㅎㅎ
복싱에 비유하면, 처음 복싱장에 가면 잽과 스트레이트를 배우고 원투를 배우게 됩니다.
이는 어디까지나 자세와 기술적인 부분을 가르쳐주는 것이고,
실제로 빠르면 하루 이틀이면 동작을 다 배울 순 있겠죠.
하지만 그렇다고 하루 이틀만에 복싱 마스터가 되느냐?는 당연히 아니겠죠!
간단한 동작이라도 그걸 수만번 수십만번 연습해야 비로소 언제 어디서든 자기꺼로 소화할 수 있듯
프로그램이 공부도 '문법'이나 '알고리즘' '테크닉' 부분만 보면 단기간에 학습할 수 있습니다.
그러나 중요한건 대장장이가 무기를 만들듯
정말 많은 반복 실습을 통해 아주 다양한 상황에서 코드를 스스로 만들어보는 연습이 필요합니다.
제가 만드는 강의는 0~100을 다 가르쳐주는게 아니라
잽과 원투를 이렇게 하면 된다는 고급 테크닉을 지도하는 것이지
그 다음 스스로 아주 오랜 기간을 투자해서 연습을 하고 훈련을 해야 합니다.
학원을 다니게 되면 이런 부분에 대한 관리가 수월해집니다.
쥬신같은 일부 학원은 학생들을 감금(?)해서 일주일에 80시간 이하로 자습 시간이 떨어지면
원장님한테 쌍욕을 먹는 스파르타 교육을 해주기 때문에
누구라도 가게 되면 일단 앉아서 공부하는 습관을 기를 수가 있습니다.
그리고 커리큘럼 안에서 포폴을 3~4개 정도 만들어보는데
여기서 자기만의 스타일을 기를 수 있고 지금껏 따로 공부한 기술을 접목시켜
많은 발전을 이룰 수 있습니다.
제가 학원을 강추하는 이유는 딱히 강의의 질이나 강사분들의 수준 때문은 아니고,
그냥 종합적으로 이런 환경적인 부분과 잘 짜여진 커리큘럼이 아주 좋기 때문입니다.
물론 학원에 간다 해도, 별로 노력하지 않고 입만 벌리고
수업 2시간 내용만 익히고 귀가한다면 사실 어차피 큰 효과를 못볼 것이고,
[스스로 공부할 의지가 있는] 상태에서 학원을 간다면
날개를 달 수 있는 환경이 조성된다고 보시면 됩니다.
참고로 저는 학원을 정규/단과/주말반 등을 포함해 10개는 다녀봤는데,
이 중에서 정말 쓰레기 같은 곳도 있긴 했으니 잘 골라서 가긴 해야 합니다.