과학

객체지향을 배우는것은 C++. 언어가 중요한게 아니다!!!!!!!

객체지향 ? 


어렵다. 실제로 실무 개발자 중에서 얼마나 많은 사람들이 객체 설계를 제대로 할까 ?


나는 거의 5% 미만 이라고 생각된다. ( 솔직한 맘에 5%로 안되고 거의 0%로 수렴한다고 생각된다.. )


C++ 언어를 배우는건 어찌보면 문법적인 부분이거구, 진정한 개발자라면 비 문법적인 시야를 가져야 된다.


사람의 생각의 형태는 당연하게도, 너무도 놀랍지 않게도, 절차지향적인 사고를 지니고 있다.


왜냐면 우리의 생각은 시간 순에 따라 추척하는게 편하기 때문이다. 이는 병렬 프로그래밍이 어려운 이유와 같은 맥락이다.


그럼 우리는 이 어려운 객체 지향 프로그래밍을 왜 왜!! 배우려는걸까 ?


나의 개인적인 소견은, 객체 지향을 배우는 이유는 결국 쉬운 유지 보수 와 재사용이 라 생각된다. 


이 이유는 결국 객체지향이 어려운 이유와도 동일 맥락을 지니게 된다.


좀더 말을 쉽게 풀자면, 유지보수를 쉽게 하기 위해서 객체지향 으로 프로그램을 만들었는데, 


결국 객체지향 때문에 유지보수가 어려워 지는 경우가 되는것이다.


이래서 객체지향은 결코 몇년 만에 만들어지는 생각의 구조가 아니며,


또한 C++ 언어 몇년 했다고 객체 지향의 사고 형식을 가지게 되는것도 아님!  디자인 패턴 몇개 알고 있다는 자체만으로도 객체지향의


형식으로 설계했다가. 나중에 오히려 그 코드에 자기가 압사 당하는 일도 비일 비재 할꺼임.


그럼 어떻게 해야 되냐? 어떻게 해야 객체 지향을 잘할수 있냐 ?


이에 대한 답은 결국 비 프로그래밍인적인 시야에서 온다고 생각된다.


비 프로그래밍적인 시야라는게 무엇이냐면, 문제를 이해한후, 어떤것을 공통의 클래스를 묶을것인지 또한 나눌것인지, 이질적인 것을 논리의 오류를 피해 동적으로 합치고 


분리하고.. 어쩌구 저쩌구.... 


문제에 대한 본질적 이해력이 높을 수록 좋을 설계가 나올 가능성이 높으며 ,좋은 설계는 곧.. 좋은 객체 지향 이라고 볼수 있는거지 !


좀더 쉽게 애기하자면, 좋은 객체지향은 현재 발생된 문제에 대한 높은 이해도와 기본 이상의 코딩 실력의 기반으로 부터 생성된다 라는 거지.


그렇타고 ~



48개의 댓글

2015.03.17
미안한데 객체지향이 무슨말이야???
오늘 파이썬 수업시작했는데 객체지향객체지향 그러던데 당최 무슨뜻인지를 모르겠어
0
2015.03.17
@Isis
혹시 카이스트 ?
0
2015.03.17
@ssonacy
아냐ㅋㅋ 안좋은대학이야
0
2015.03.19
@Isis
쉽게 이야기 해서

이전 세대 프로그램은 사람이 먹다/자다/섹스하다라는 걸 따로 만들었는데 개나 고양이가 추가되면 좆망이었어

객체지향 프로그램은 먹다/자다/섹스하다를 만든 다음에 사람에게도 개나 고양이에게도 기능을 넣어서
여기에 일베충이 들어와도 적용이 되게 하는 프로그램 컨셉이야.
0
@Isis
모든 프로그래밍 언어들이 궁극적으로 추구하는 목표.... 객체지향의 목적은 위 글에서 처럼 유지보수를 쉽게 하고 재 사용성을 높이기 위해서라고 볼수 있어. 객체지향의 특징이라고 한다면 캡슐화, 상속, 다형성 이라고 볼 수 있는데 아마 프로그래밍을 공부하다 보면 필연적으로 알게 되는 것들이야.

객체지향의 핵심은 현실에 실제로 존재하거나 논리적으로 존재하는 것들을 추상화를 통해 객체로 만드는 것임

예를들어 자동차를 객체로 추상화 하면 차종이나 이름, 제조사, 색, 바퀴, 속도, 문 같은 자동차를 구성하고 있는 요소들은 자동차 라는 개체의 속성이 되는것이고 속도를 올린고 내린다던가, 문을 연다던가 하는 행동들이 오퍼레이션, 즉 흔히 말하는 메소드가 되는것. 객체지향은 이 객체를 만들수 있어야 비로소 시작 할수 있는것이며 객체와 메소드를 정의하고 사용할 수 있어야 프로그래밍에 입문했다고 할 수있음
0
2015.03.17
Object Oriented 라는 프로그래밍법인데,

일반적으로 코딩하는건 Procedural Programming이라 그래서 그냥 쭉 짜야될걸 아래로 짜내려가는 스타일인데

이게 정리가 존나 병신같이 안되서 프로젝트가 커지면 알아먹기 힘듬.


그래서 객체지향(OO라고 부르겠음) 을 사용해서, 클래스마다 필요한 메쏘드나 정보를 묶어서 처리하게 하는건데,

글에서 써논것처럼 어렵지 않음.

한국에 제대로 C++을 가르치는 기관도 없고, 현재 실무뛰는 사람들이 2-3류라 그렇지.

엔진 몇번 짜보고나면 Component Based같은 나름 중급정도의 프로그래밍 구조체정도는 만들 수 있음.
0
mvc 검색해서 공부해봐
0
하 내 심정을 너무 잘 알아준다 군대갔다와서 복학하는데 적성도 안맞는 컴공갔다가 진짜 미쳐버릴판이다 2학년인데 자바 인터넷 프로그래밍 하나도 모르겠어진짜 이걸 싹 외워야하는건지 뭐를 이해햐야하는지 모르겠어 고등학교떄 암기만 처 해서 성적은 좋았는데 대학교가서 너무깨진다 조언좀부탁해
0
2015.03.18
@하프로그래밍어려워
프로그래밍을 왜 암기하는 거라고 생각하는거지? 그냥 블록조립놀이하는 거라고 생각하면 편함
0
2015.03.17
솔직히 말해서 자기 적성에 알맞지 않으면, 정말 제대로 설계하기도 힘들다.
0
그럼 어케 나가 디저야대나 대학은 그래도 좀 좋아서 포기하긴싫다
0
2015.03.18
@하프로그래밍어려워
니새끼 하루에 3시간도 따로 공부하는데 안쓴다에 피자한판 건다 ㅡㅡ

자바나 네트워킹 그거 좆도 아닌건데; 니가 빠가가 아니면 시간들이면 할 수 있는 것들임.
0
2015.03.18
@Quia
ㅋㅋㅋ 김연아가 애들보고 피겨 그거 좆도 아닌건데 니네가 빠가가 아니면 시간 들이면 할 수 있는거라고 하면 뭐라 할래?

뭐든지 할줄 아는 입장에서는 그거처럼 쉬운게 없다. 니 입장에서 쉽다고 해서 다른 사람도 쉽게 여길거라 생각지 마라

왜 벼는 익을수록 고개를 숙인다고 할까?? 김연아 같은 사람도 벽을 넘기 전까지는 그 벽이 너무 높아보였다는걸 기억하고 있기 때문이지
0
2015.03.19
@어랏
아니 병신아, 하루에 3시간도 투자안하고 뭘 하겠다고 하는새끼가 도둑놈심보지 ㅡㅡ

네트워킹은 그렇다쳐도 자바는 세상에서 제일쉬운 언어중에 하난데,

그거 하루에 2시간만 붙잡고 한달만 봐도 어느정도 각나오는 언어인걸 가지고 "대학을 포기할까?" 라는새끼가 병신인거지

그게 내가 잘나서 저새낄 무시하는거냐? 기본은 해놓고 저딴소릴해야 들어주지
0
2015.03.19
@Quia
쟤가 하루에 몇시간 공부했는지 어케 아냐?
니가 잘 이해하는 부분을 재가 못 이해하는 경우도 있고, 쟤가 잘 이해하는 부분을 남들은 전혀 이해하지 못하는 경우도 있다. 따라서 쟤가 몇시간을 공부했냐는 큰 의미도 없고, 잘 알지도 못하는 상황에서 섣불리 그렇게 말하면 안된다는거지
니 능력과 기준으로 하루에 3시간이면 족할지 몰라도, 다른 사람까지 그럴거라고 착각하진 말자
0
2015.03.19
@어랏
ㅡㅡ

이 새끼가 무슨 정신지체아가 아닌이상 큰차이 없다.


너처럼 생각하면 공공기관에서 교육은 어떻게 시키냐, 다들 평균기준이 있으니까 그걸로 하는거고 나도 그거에 맞춰서 얘기를 하는건데.
0
2015.03.19
@Quia
얘가 정신지체가 아니란 보장이 있냐? 라고 말하고 싶지만 너무 억지 부리는것 같다 ㅋㅋ

니 말도 일리가 있는데, 노력 안해서 안된다는 말이 가장 도움이 안되는 도움이라 본다. 정말 쟤를 도와주고 싶다면 니가 어떻게 공부 했는지, 니가 이해하고 있는 부분은 어떤건지를 설명해 주는게 맞지 않나 싶네
0
2015.03.19
@어랏
하루에 세시간만 기본서 잡고 예제 직접해보면서 공부하면 됨.


아니 근데 진짜 저건

"이차방정식 어떻게 품? ㅠㅠ 이차방정식 진짜 어려운데 그냥 이과 때려칠까?"

이런 수준임
0
@Quia
사람마다 프로그래밍이 이해가 잘 안되는 사람이 있을수도있음

너무 뭐라하지마셈
0
2015.03.20
@인생게임해볼려고가입
넹 'ㅅ'
0
2015.03.21
@어랏
그래도 자바는 좀... 누가들으면 서버나 기계어 배우는지 알겄소. 자바는 컴공 1학년때듣는 학교가 많을정도로 쉬운부분인데
0
2015.03.26
@코스포
기계어 의외로 쉬운데...

IA16기준으로 혼자 배우긴했는데 규칙이 좀 많은거 빼고 기계어 매핑 테이블만 잘보면 금방함..
0
2015.03.18
[삭제 되었습니다]
2015.03.19
@hellsong
관련 책 즘 추전 부탁해 .
0
2015.03.20
@ssonacy
지나가다가 이 댓글을 본 게이다. 책 한번 추천해본다.
컴언어쪽이니까 비트겐슈타인의 논리철학논고와 철학적 탐구가 매우 괜찮을 듯 싶다.
그냥 보기는 어렵고 해설참고하면서 봐야됨
대충이라도 읽다가 보면 언어적 사고에대한 시아가 많이 넓어질 것이라 장담함
0
2015.03.18
0
2015.03.18
니가 안좋은 회사만 다녀서 주변에 잘하는 사람이 없는거 아니냐?
0
2015.03.18
사실 객체지향이 어려운 이유는 상속 때문 아니냐
0
2015.03.18
객체지향은 결국 덩어리를 하나 만드는데, 그게 어떻게 작동하는지 사용하는 측은 전혀 알필요가 없음.
그 덩어리를 굴리고 던지고 하면서 프로그래밍하도록 만드는게 객체지향

그 덩어리가 존나 대단해져서 여기저기서 다 쓸수 있고 그걸로 레고쌓듯 뚝딱뚝딱 만들게 되는수준이 되면
그 덩어리를 객체보다 더 대단한 표현인 컴포넌트라고 부르고, 그렇게 뚝딱뚝딱 하는 방식을 컴포넌트베이스디벨롭 (CBD)라고 부름
0
2015.03.18
@에르가
첫번째 댓글에 대한 답글인데..그냥 달렸네;
0
객체 지향에 대한 정확한 정의는 객체 지향에 대해 정확한 정의를 내릴수 없다는거다.

해봐야 안다. 할 줄 알게 되어야 비로소 이해가 된다.

그러나 여전히 남에게 설명할 수는 없다. 단지 알고 있을 뿐
0
2015.03.19
@어화둥둥어기야
뭐래, 바로위에 설명 잘해놨구만
0
2015.03.19
객체지향 다음 패러다임은 뭐가 나올까?
0
2015.03.19
아직 배우는 중인가 본데 C++은 진정한 의미의 객체지향은 아니고 자바나 .NET(C#)을 파는게 좋을듯.

그리고 OO쪽은 객체지향 CBD 개발 방법론(.NET) - 전병선 이 아자씨꺼 읽어보셈.

OO는 유즈케이스, 케이스 시나리오 제대로 못 만들면 그냥 뜬구름 잡는 소리만 하게 됨.
0
2015.03.20
@구리연
ㄹㅇ
0
2015.03.19
객체지향은 초반스타트 설계가 가장 중요하지
리얼 뼈대 병신같이 만들면 파츠붙이다가 다시 만들어야되서 좆같음
0
2015.03.19
자바가 채고시다
0
2015.03.19
객체지향 말이 어렵지 실제 생각해보면 그렇게 어려운 감이 아니던데 물론 그걸 C언어로 자유자재로 구성하는건 .. 노력은기본이요 재능좀 있어야겠지만 ^_^
한마디로 프로그램짤때 융퉁성있게 만드는거자나 이프로그램이 쓰일수있는 모든경우를 디테일하게는 못해도 전반적으로 고려해 가면서
빠른 문제해결이 가능하도록 프로그램전체에 일관된 원리일관된 규칙에근거하여 작성한뒤 마찬가지로 일관된 룰을 기반으로 각프로그램의 구석구석을 조작할수있는 최초위치를 선정하고 그 하위기관?을 뿌리내려가듯이 설정해 놓는거 아냐?

마치 공부방이나 도서관 책장배열/정리 할때 인식표 심고 바코드 심고 그 뭐냐 ㅁ10000181 ? 이런식으로 정리하는거같은거 말야
0
2015.03.22
@응응뭐뭐쳇
객체지향을 C언어로 구성한다는거 자체가, 존나 높은 수준의 프로그래밍 기법인데;;;
존나 뜬금포 C언어 말하네, C어는 애초에 절차지향적 언어로 나왔기때문에 객체지향적 개발기법이 힘든데;;;

공부 더 하시고 오세요;;;
0
2015.03.19
C++은 멀티 패러다임 언어라고하지... 보통...

OOP를 강제하는것도 아니고, 구조적 프로그래밍도 강제하는것도 아님..
0
2015.03.19
진짜 언어를 배울때 객체지향이라는 뜻을 완벽히 이해하고 배우는 애들이 없는거같다. 배우면서 알게되면 모를까.
0
2015.03.20
완벽한 객체지향이 가능하려면 완벽한 기획이 먼저 있어야 된다는게 함정이지.
이 기능 추가 저 기능 추가....아 이거 별론거 같은데 삭제하고 이 기능으로 바꿔주세요....
이 지랄하면 객체지향의 신이 와도 안 됨.
고수라도 기껏해야 경험에 의거해서 이 부분은 분명히 수정요청이 들어오겠군 하고 미리 짐작한 다음
언제든지 수정할 수 있게 짜놓는 정도지.

물론 기획자만의 문제는 아니야. 개발 프로세스 자체가 아직 성숙하지 않은거지.
완벽한 코딩이 존재할 수 없는것처럼 완벽한 기획 또한 존재할 수 없는거고...
0
@비공
ㄹㅇ 개공감
0
2015.03.21
어렵다. 실제로 실무 개발자 중에서 얼마나 많은 사람들이 객체 설계를 제대로 할까 ?

나는 거의 5% 미만 이라고 생각된다
-----------------------------------------------------------------------------------
너 도대체 어디서 일하길래 이런 수치가 나오냐?
좆문대나 학원출신 코더들중에선 객체설계 제대로하는 사람 5%미만이겠지
내 주면 PKS나 해외대학 CS출신들은 OOP개념 제대로 안박혀있는놈 찾기 힘들던데?
0
2015.03.26
@존폰노이만
ㅇㄱㄹㅇ

나 학부 2학년때 사람들한테 OOP개념에대해서 물어봤느넫

대답 못하는 학생 몇안됨...
0
2015.03.22
난 반대인데 절차지향 너무 어려웠는데 객체지향은 이해가 잘 됬음

뭐 개발 쪽 으로 안 가서 잘은 모르지만 대학교애서 공부할때는 객체지향 진짜 좋다 이렇게 생각했는데
0
2015.03.22
C언어를 기반으로 시작해서 객체지향이 어려운거지, C++이나 Java와 같이 객체지향적 언어로 시작한놈들은 객체를 안 쓰는걸 더 이상하게 여긴다

나도 C언어로 시작해서, 객체 개념잡으려고 2년동안 같은책 들여다보고, 여러선배들한테 물어보고 온갖 난리를 다 피웠었다.
물론 웹쟁이로 갈아타서 그런 패러다임에 손 놓은지 오래이긴 하나, 이제 시작하는 사람들은 객체지향으로 코딩을 먼저 배우길 바람 ㅇㅇ
0
2015.03.22
프로그래밍 언어는 자바든 씨샵이든 씨든 어떤 언어 하나만 제대로 이해하고 있어도 초입부는 대체적으로 다 쉽게 쉽게 이해한다.
여기서 말하는 초입부는 학부수준에서 다루는 교육+알파이며, 교육을 받았음에도 어렵다고 느껴지는것은 가르쳐주는 교수자가 미흡하거나, 전공에 흥미가없는경우 둘 중 하나로 나뉠수 있고 전자의 경우에도 전공에 흥미가 있으면 알아서 찾아 잘하게되므로 현실 자위는 그만하고 모두 전공에 흥미를 가지도록 합시다.
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 12 21 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23