생활코딩 객체지향프로그래밍 (2/3) : 추상화 > PHP

PHP

PHP Web Programming 강의 리스트

생활코딩 | 객체지향프로그래밍 (2/3) : 추상화

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 PHP강의 청각장애인을 위한 자막
15444116327853.jpg

 자 그러면 객체지향 프로그래밍과 관련해서 어떻게 보면 객체지향

프로그래밍에 대한 얘기는 아니지만
여러분이 소프트웨어를 만드는 과정에서 어떤 좀 도움이 될 많은
또는 객체 지향 이라는 것에 좀 직간접적으로 영향을 줬을 만한 여러 가지
그 생각들
그런 것들에 대해서 좀 편안하게 얘기를 하고 2부 체적인 문법은 다음
시간에 살펴보죠
자 객체지향 프로그래밍을 교육학의 되면 크게 두 가지의 접근이 필요합니다
다섯번째는 문법적인 거에요 그런데 이번 튜토리얼에서는 이번 수업에서는
문법적인 요소는 얘기하지 않습니다
문법적인 것은 다음 시간부터 우리가 마지막 수업까지
쭉 문법적인 것을 배우게 되는 것이고 여러분들이 객체 지향 을 배운다면
일단은 문법을 먼저 정복한 수 밖에 없습니다
그래서 객체지향 프로그래밍을 하기 위해선 어떤 코드를 어떻게 작성해야
되고 그것은 어떤 기능을 갖고 있는가 이런 것들을 익히는게 기본적인
것이고 어떻게 보면 제일 쉬운 일입니다
근데 정말로 어려운 것은 객체지향 이라고 하는 것을 이용해서
현실을 잘 담아낼 수 있는 소프트웨어를 개발하는 것이 사실은 정말 어려운
일입니다
다른 말로는 이 설계를 잘하는 법 이라고 할 수 있는데요
어 현실은 설계 라고 하는 것은 현실을
천 실에서 우리가 관심이 있는 어떠한 특성 또는 어떤 관점을
소프트웨어와 시켜서 어떠한 문제를 해결하는 것이 프로그래밍
또 프로그램이라고 할 수가 있는 것이죠 그런데 문제는 이 현실주
복잡하다 는 겁니다
그리고 소프트웨어는 현실보다 훨씬 단순해요
왜냐 소프트웨어 자체도 현실 안에 포함되기 때문에 당연히 현실이 훨씬 더
복잡한 것이죠
자 여기 제가 준비한 그림을 한번 보실까요
자 요건은 영국 런던의 지도입니다 그리고 여기 있는 각각의 지도 들은
예 같은 지역을 좀 다른 뷰로 표현하고 있는지도 들이에요
그런데 여러분들이 지금 만약에 지하철을 타고 영국에서 어딘가로 번 더
내서 어딘가로 이동하고 싶다고 한다.면
여기 있는 네 개의 지도 중에 과연 어떤 지도를 선호 하실 까요
예 저라면 마지막에 있는 이 지도를 선택하겠습니다
그래서 보시는 것처럼 여기 있는 이 지도는 현실을 가장 충실하게 반영하고
있는 위성 사진 이예요
예 어떤 건물이 있고 그 건물을 어떻게 생겼고 여러가지 정보들이 다 들어
있습니다
그리고 밑에 있는 요 지도는
이 현실의 복잡한 것들을 많이 걷어 내고 이 지하철에 노선을 그리고 있는
예 지하철노선 옵니다 그리고 마지막에 있는 이 그림은 현재 영국
지하철에서 채택하고 있는 노선도 인데요
어 이 노선에 특징은 기존의 이것을 개선한 건데 여기 있는 이 노선도는
어쨌든 지하철이 라고 하는 그 지금 이 지도를 보는 사람이 관심을
가질만한 것에 집중 하긴 했지만 여전히 역과 역사이 에 거리
또는 그 여기 실제로 지도상에 어디에 위치 하는가 와 같은 여러가지
정보들이 여전히 포함되어 있습니다
그런데 지금 보고 계신 이 지도 같은 경우는 바로 그런 복잡성에 서 더
나아가서 이 지하철을 타는 사람의 유일한 관심사 즉 어떤 여기 환생
여기고 또 어떤 역 다음에는 어떤 여기 나타나고
그리고 어디서부터 어디까지 갈 때는 몇 개의 역을 경유해야 되는가 라고
하는 이 관심사 에만 집중 안 형태의 지도 핀 것이죠 그래서 우리가 알고
있는 또 우리가 쓰고 있는 뭐 서울 지아 전력의 노선도 이런 것들이 다
이것에 영향을 받은 것이고 이것을 만드신 분은
예 그 전기의 회로도 있잖아요 그 회로도 에서 영감을 얻어서
2 지하철 노선도를 만든 겁니다 자 여기에 있는 복잡한 요것은 현실이고
그리고 여기에 있는 요 지도는 그 현실을 현실에서 우리가 관심을 갖고
있는 관심사
우리의 관점에 초점을 맞춰서 우리가 필요로 하는 것만은 현실에서 추출해
낸 것입니다
그래서 이런 이런 현실을
간단하게 단순화 시켜서 이 만든 이런 것을 뭐라고 하냐면 추상화 라고
합니다 추 상황
영어로는
업스 트렉터 라고 해요 자 이거 외울 필요는 없습니다
하지만 이 추상화 나 이런 개념들은 없트렉 트 같은 개념은 일단
자바에서는 문법적으로 스트라이트 는 단어가 나오고 그 여러분들이
프로그래밍을 하는 과정에서 추상화 란 말을 많이 듣게 될 겁니다
즉 추상화 라는 것은 해결해야 될 문제 또는 반영에 대한 현실을
소프트웨어 적으로 단순화 시켜서 만든 것을 만드는 행위
얠 이제 추상 하라고 하는 것이고 어떻게 하면은 소프트웨어를 설계
한다.라는 것은
복잡한 현실에서 현실을 추상화 하는 과정이 라고도 볼 수 있는 것이죠
그래서 그 영국의 지도 그 제지도 같은 경우는
되면 디자인이 추가하는 추상 아야 잘된 사례라고 볼 수가 있는 것이고
우리가 이제부터 해야 될 것은 어 현실을 프로그래밍 적으로 잘 추상화
하는
잘 만들어진 설계를 최종적으로 우리가 하는 것이 예 우리가 프로그램으로써
도달해야 되는 지점인 거죠
난 답게 깨도 이런 좋은 설계 라고 하는 것은 저는
지식의 영역이 라기보다는 지혜의 경기라고 생각합니다 요지에 특성은
예 자 전수 되지 않는다는 특성이 있다고 생각해요
그 얘기는 젠 지식은 전달될 수 있지만 지혜는 스스로 추구해야 되는
것이라고 생각합니다
오랜시간이 코드와 많은 시간을 같이 보내면서
자신의 맥락에서 처해있는 그 문제를 스스로 해결하는 그 이 지루하고 긴
시간을 거쳐서
좋은 프로그래머 또는 좋은 설계자가 나오는 것닐까라고 생각하고
여기서 이런 얘기를 하고 있는 저역시도 사실 이런 얘기할 작용은 없는
사람입니다
저도 그 여정을 따라 가고 있는 겸 습 생 에 불과하기 때문에 어떻게
보면 은 지금 이 점을 보시는 분들과
저는
같이 가고 있는 거예요 예 저는 그렇게 생각합니다
자 그래서 제가 얘기하고 싶은 것은 어 객체 지향의 설계 원칙이나 제가
이 철학적인 의미를 대단히 중요하지만 지금 이런 것을 언급한다.면 여러분들
미국 속의 빠지실 거에요 그래서 제가 제안하는 것은
지혜는 나중에 일이고 일단은 지식부터 이끼 자는 겁니다
예 그래서 언어가 지원하는 개체 지향 의 문법을 배우고
이것이 어떻게 동작하는 지를 충분한 충분히 이해한 다음에 야 우리가 설계
원칙 또 얘기할 수 있고 또 지혜라고 하는 것도 스스로 추가할 수 있는
상태가 되는 겁니다
그래서 이번 시간에는 뭐 설계와 관련해서 조금만 더 얘기를 하고요
다음시간에 서부터 우리는 객체지향 프로그래밍의 이 구체적인 문법적인
요소들을 살펴볼 겁니다

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu