객체지향 ?
어렵다. 실제로 실무 개발자 중에서 얼마나 많은 사람들이 객체 설계를 제대로 할까 ?
나는 거의 5% 미만 이라고 생각된다. ( 솔직한 맘에 5%로 안되고 거의 0%로 수렴한다고 생각된다.. )
C++ 언어를 배우는건 어찌보면 문법적인 부분이거구, 진정한 개발자라면 비 문법적인 시야를 가져야 된다.
사람의 생각의 형태는 당연하게도, 너무도 놀랍지 않게도, 절차지향적인 사고를 지니고 있다.
왜냐면 우리의 생각은 시간 순에 따라 추척하는게 편하기 때문이다. 이는 병렬 프로그래밍이 어려운 이유와 같은 맥락이다.
그럼 우리는 이 어려운 객체 지향 프로그래밍을 왜 왜!! 배우려는걸까 ?
나의 개인적인 소견은, 객체 지향을 배우는 이유는 결국 쉬운 유지 보수 와 재사용이 라 생각된다.
이 이유는 결국 객체지향이 어려운 이유와도 동일 맥락을 지니게 된다.
좀더 말을 쉽게 풀자면, 유지보수를 쉽게 하기 위해서 객체지향 으로 프로그램을 만들었는데,
결국 객체지향 때문에 유지보수가 어려워 지는 경우가 되는것이다.
이래서 객체지향은 결코 몇년 만에 만들어지는 생각의 구조가 아니며,
또한 C++ 언어 몇년 했다고 객체 지향의 사고 형식을 가지게 되는것도 아님! 디자인 패턴 몇개 알고 있다는 자체만으로도 객체지향의
형식으로 설계했다가. 나중에 오히려 그 코드에 자기가 압사 당하는 일도 비일 비재 할꺼임.
그럼 어떻게 해야 되냐? 어떻게 해야 객체 지향을 잘할수 있냐 ?
이에 대한 답은 결국 비 프로그래밍인적인 시야에서 온다고 생각된다.
비 프로그래밍적인 시야라는게 무엇이냐면, 문제를 이해한후, 어떤것을 공통의 클래스를 묶을것인지 또한 나눌것인지, 이질적인 것을 논리의 오류를 피해 동적으로 합치고
분리하고.. 어쩌구 저쩌구....
문제에 대한 본질적 이해력이 높을 수록 좋을 설계가 나올 가능성이 높으며 ,좋은 설계는 곧.. 좋은 객체 지향 이라고 볼수 있는거지 !
좀더 쉽게 애기하자면, 좋은 객체지향은 현재 발생된 문제에 대한 높은 이해도와 기본 이상의 코딩 실력의 기반으로 부터 생성된다 라는 거지.
그렇타고 ~
Isis
오늘 파이썬 수업시작했는데 객체지향객체지향 그러던데 당최 무슨뜻인지를 모르겠어
ssonacy
Isis
구리연
이전 세대 프로그램은 사람이 먹다/자다/섹스하다라는 걸 따로 만들었는데 개나 고양이가 추가되면 좆망이었어
객체지향 프로그램은 먹다/자다/섹스하다를 만든 다음에 사람에게도 개나 고양이에게도 기능을 넣어서
여기에 일베충이 들어와도 적용이 되게 하는 프로그램 컨셉이야.
벼와쌀을분리해주마
객체지향의 핵심은 현실에 실제로 존재하거나 논리적으로 존재하는 것들을 추상화를 통해 객체로 만드는 것임
예를들어 자동차를 객체로 추상화 하면 차종이나 이름, 제조사, 색, 바퀴, 속도, 문 같은 자동차를 구성하고 있는 요소들은 자동차 라는 개체의 속성이 되는것이고 속도를 올린고 내린다던가, 문을 연다던가 하는 행동들이 오퍼레이션, 즉 흔히 말하는 메소드가 되는것. 객체지향은 이 객체를 만들수 있어야 비로소 시작 할수 있는것이며 객체와 메소드를 정의하고 사용할 수 있어야 프로그래밍에 입문했다고 할 수있음
Quia
일반적으로 코딩하는건 Procedural Programming이라 그래서 그냥 쭉 짜야될걸 아래로 짜내려가는 스타일인데
이게 정리가 존나 병신같이 안되서 프로젝트가 커지면 알아먹기 힘듬.
그래서 객체지향(OO라고 부르겠음) 을 사용해서, 클래스마다 필요한 메쏘드나 정보를 묶어서 처리하게 하는건데,
글에서 써논것처럼 어렵지 않음.
한국에 제대로 C++을 가르치는 기관도 없고, 현재 실무뛰는 사람들이 2-3류라 그렇지.
엔진 몇번 짜보고나면 Component Based같은 나름 중급정도의 프로그래밍 구조체정도는 만들 수 있음.
뿌잉뿌잉합니다
하프로그래밍어려워
깻잎전
년후 디자이너
하프로그래밍어려워
Quia
자바나 네트워킹 그거 좆도 아닌건데; 니가 빠가가 아니면 시간들이면 할 수 있는 것들임.
어랏
뭐든지 할줄 아는 입장에서는 그거처럼 쉬운게 없다. 니 입장에서 쉽다고 해서 다른 사람도 쉽게 여길거라 생각지 마라
왜 벼는 익을수록 고개를 숙인다고 할까?? 김연아 같은 사람도 벽을 넘기 전까지는 그 벽이 너무 높아보였다는걸 기억하고 있기 때문이지
Quia
네트워킹은 그렇다쳐도 자바는 세상에서 제일쉬운 언어중에 하난데,
그거 하루에 2시간만 붙잡고 한달만 봐도 어느정도 각나오는 언어인걸 가지고 "대학을 포기할까?" 라는새끼가 병신인거지
그게 내가 잘나서 저새낄 무시하는거냐? 기본은 해놓고 저딴소릴해야 들어주지
어랏
니가 잘 이해하는 부분을 재가 못 이해하는 경우도 있고, 쟤가 잘 이해하는 부분을 남들은 전혀 이해하지 못하는 경우도 있다. 따라서 쟤가 몇시간을 공부했냐는 큰 의미도 없고, 잘 알지도 못하는 상황에서 섣불리 그렇게 말하면 안된다는거지
니 능력과 기준으로 하루에 3시간이면 족할지 몰라도, 다른 사람까지 그럴거라고 착각하진 말자
Quia
이 새끼가 무슨 정신지체아가 아닌이상 큰차이 없다.
너처럼 생각하면 공공기관에서 교육은 어떻게 시키냐, 다들 평균기준이 있으니까 그걸로 하는거고 나도 그거에 맞춰서 얘기를 하는건데.
어랏
니 말도 일리가 있는데, 노력 안해서 안된다는 말이 가장 도움이 안되는 도움이라 본다. 정말 쟤를 도와주고 싶다면 니가 어떻게 공부 했는지, 니가 이해하고 있는 부분은 어떤건지를 설명해 주는게 맞지 않나 싶네
Quia
아니 근데 진짜 저건
"이차방정식 어떻게 품? ㅠㅠ 이차방정식 진짜 어려운데 그냥 이과 때려칠까?"
이런 수준임
인생게임해볼려고가입
너무 뭐라하지마셈
Quia
코스포
잉텔
IA16기준으로 혼자 배우긴했는데 규칙이 좀 많은거 빼고 기계어 매핑 테이블만 잘보면 금방함..
hellsong
ssonacy
번떡쳐본남자
컴언어쪽이니까 비트겐슈타인의 논리철학논고와 철학적 탐구가 매우 괜찮을 듯 싶다.
그냥 보기는 어렵고 해설참고하면서 봐야됨
대충이라도 읽다가 보면 언어적 사고에대한 시아가 많이 넓어질 것이라 장담함
고양이저장소
뚜르비옹
붕왘
에르가
그 덩어리를 굴리고 던지고 하면서 프로그래밍하도록 만드는게 객체지향
그 덩어리가 존나 대단해져서 여기저기서 다 쓸수 있고 그걸로 레고쌓듯 뚝딱뚝딱 만들게 되는수준이 되면
그 덩어리를 객체보다 더 대단한 표현인 컴포넌트라고 부르고, 그렇게 뚝딱뚝딱 하는 방식을 컴포넌트베이스디벨롭 (CBD)라고 부름
에르가
어화둥둥어기야
해봐야 안다. 할 줄 알게 되어야 비로소 이해가 된다.
그러나 여전히 남에게 설명할 수는 없다. 단지 알고 있을 뿐
Quia
끼에엑
구리연
그리고 OO쪽은 객체지향 CBD 개발 방법론(.NET) - 전병선 이 아자씨꺼 읽어보셈.
OO는 유즈케이스, 케이스 시나리오 제대로 못 만들면 그냥 뜬구름 잡는 소리만 하게 됨.
하하악악
굿게임
리얼 뼈대 병신같이 만들면 파츠붙이다가 다시 만들어야되서 좆같음
듣던중개소리
응응뭐뭐쳇
한마디로 프로그램짤때 융퉁성있게 만드는거자나 이프로그램이 쓰일수있는 모든경우를 디테일하게는 못해도 전반적으로 고려해 가면서
빠른 문제해결이 가능하도록 프로그램전체에 일관된 원리일관된 규칙에근거하여 작성한뒤 마찬가지로 일관된 룰을 기반으로 각프로그램의 구석구석을 조작할수있는 최초위치를 선정하고 그 하위기관?을 뿌리내려가듯이 설정해 놓는거 아냐?
마치 공부방이나 도서관 책장배열/정리 할때 인식표 심고 바코드 심고 그 뭐냐 ㅁ10000181 ? 이런식으로 정리하는거같은거 말야
일째 밤샘중
존나 뜬금포 C언어 말하네, C어는 애초에 절차지향적 언어로 나왔기때문에 객체지향적 개발기법이 힘든데;;;
공부 더 하시고 오세요;;;
잉텔
OOP를 강제하는것도 아니고, 구조적 프로그래밍도 강제하는것도 아님..
삼년
비공
이 기능 추가 저 기능 추가....아 이거 별론거 같은데 삭제하고 이 기능으로 바꿔주세요....
이 지랄하면 객체지향의 신이 와도 안 됨.
고수라도 기껏해야 경험에 의거해서 이 부분은 분명히 수정요청이 들어오겠군 하고 미리 짐작한 다음
언제든지 수정할 수 있게 짜놓는 정도지.
물론 기획자만의 문제는 아니야. 개발 프로세스 자체가 아직 성숙하지 않은거지.
완벽한 코딩이 존재할 수 없는것처럼 완벽한 기획 또한 존재할 수 없는거고...
인생게임해볼려고가입
존폰노이만
나는 거의 5% 미만 이라고 생각된다
-----------------------------------------------------------------------------------
너 도대체 어디서 일하길래 이런 수치가 나오냐?
좆문대나 학원출신 코더들중에선 객체설계 제대로하는 사람 5%미만이겠지
내 주면 PKS나 해외대학 CS출신들은 OOP개념 제대로 안박혀있는놈 찾기 힘들던데?
잉텔
나 학부 2학년때 사람들한테 OOP개념에대해서 물어봤느넫
대답 못하는 학생 몇안됨...
리오베이비
뭐 개발 쪽 으로 안 가서 잘은 모르지만 대학교애서 공부할때는 객체지향 진짜 좋다 이렇게 생각했는데
일째 밤샘중
나도 C언어로 시작해서, 객체 개념잡으려고 2년동안 같은책 들여다보고, 여러선배들한테 물어보고 온갖 난리를 다 피웠었다.
물론 웹쟁이로 갈아타서 그런 패러다임에 손 놓은지 오래이긴 하나, 이제 시작하는 사람들은 객체지향으로 코딩을 먼저 배우길 바람 ㅇㅇ
공숭이
여기서 말하는 초입부는 학부수준에서 다루는 교육+알파이며, 교육을 받았음에도 어렵다고 느껴지는것은 가르쳐주는 교수자가 미흡하거나, 전공에 흥미가없는경우 둘 중 하나로 나뉠수 있고 전자의 경우에도 전공에 흥미가 있으면 알아서 찾아 잘하게되므로 현실 자위는 그만하고 모두 전공에 흥미를 가지도록 합시다.