컴공 일기175
게시글 주소: https://orbi.kr/00058261276
자료구조 1주차 요약 과제입니다 :)
누가봐도 이해가 되는 글을 쓰고 싶은데, 그게 참 쉽진 않은 것 같아요...
객체지향 프로그래밍(Object-Oriented Programming, OOP)을 한 마디로 설명한다면, “대형화된 소프트웨어에 적합한 설계방식”이다. 소프트웨어가 대형화되었을 때, 개발자는 몇 가지 문제에 직면하게 되는데, 그때 가장 크게 다가오는 것은 유지/보수의 제반 문제일 것이다. 굉장한 규모를 가진 프로그램을 어떻게 유지하고, 보수하느냐에 따라서 개발 회사의 존립이 갈리곤 하기 때문이다. (대표적인 예로, 미국의 Netscape사가 유지/보수의 문제로 주저앉고 말았다.) 그러기에 개발자는 효율적인 방식을 통해 짧은 시간 내 에러를 찾아내고, 새로운 기능을 추가해야만 한다. 오류 수정과 업데이트의 기간이 필요치 않게 늘어난다면 그 프로그램을 이용하는 사용자들에게 불편함을 주고, 그에 따라서 치명적인 비용을 지출해야 하기 때문이다. 이러한 심각성을 고려한다면, 결국 유지 혹은 보수가 쉽게 되도록 “미리” 잘 설계하는 것에 프로그램의 사활이 걸려있다고 해도 과언이 아닐 것이다.
그런 관점에서, 객체지향 방식은 탁월한 측면을 가지고 있다. 객체지향 방식은, 기능별로 독립적 단위를 만든 뒤에 그들을 모두 합쳐서, 하나의 총체적 시스템(프로그램)으로 통합하는 방식이다. 이 도식 안에서는, 놀랍게도 유지/보수가 매우 효율적으로 이루어진다는 장점이 있다. 한 예를 들어보자. 엔진 부분과 차축 부분, 그리고 바퀴 부분을 모두 조립해서 자동차를 만들면, 엔진이 고장 났을 때 엔진 부분만 전체로부터 빼내어서 교체한 후에 재조립하면 된다. 만약 이번엔 엔진이 아니라 바퀴 쪽에 문제가 생겼다면, 마찬가지 방식으로 바퀴 부분만 빼내어서 교체하면 된다. 사정이 그렇다면 자동차에 새로운 기능을 추가하는 것도 어렵지 않아 보인다. 만약 신규로 모델링 된 차축을 자동차에 반영해야 한다면 위와 같은 방식으로 기존의 차축을 뜯어내고 그 자리에 새로운 차축을 끼워 넣기만 하면 되기 때문이다. 이렇게, 기능별로 한 시스템을 “모듈화”하게 되면, 유지/보수가 굉장히 편리해지는 장점을 가지게 되는 것이다. 따라서 객체 지향 방식은 대형화된 소프트웨어에 최적화된 설계 방법이라고 볼 수 있다.
참고로 객체지향 방식에서는 주로 GUI 부분, 데이터 제어 부분, 자료구조 부분으로 나누어서 설계한다. 최근에 많은 주목을 받고 있는 Web 서비스도 이러한 구조를 가지고 있다. 자료구조 부분의 HTML, GUI 부분의 CSS, 데이터 제어 부분의 JAVASCRIPT가 모두 합쳐져 Web이라는 전체 시스템을 형성한다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
오늘 엄마 ptsd 소설은 첨봤을땐 찡하긴했는대 봤던거라 극복함
-
이제 이런것 까지
-
국어만 잘볼걸 3
너무 아쉽다
-
근데 아직 모의고사 볼 때 30번 읽지도 못함.. 30번을 읽을 시간 확보 +...
-
헤드라이너 좋네 0
식게이 팬이 되
-
국어 100 수학 47 영어 100 생윤 39 윤사 45 수학은 그냥 할말이없고 생윤ㅅㅂ머야너는
-
힘드네
-
작년 6,9평 다 1에 3 4 5 더프 다 1틀 2틀 1등급인데 왜 작수는...
-
궁금
-
진짜 기발한 수학 문제 풀이 보면 따라할 엄두도 안 나던데 0
현장에서 멋 모르고 구사하다가는 점수도 시간도 날릴 거 같음 ㅋㅋ
-
어렵겠져..? 아니 왜 우리 부모님은 무보정 등급컷만 보시려할까...하
-
학원에서 6모볼때 점심시간에 밖에 나가는거 가능하죠? 0
다른 학원에서 보는거라..나가서 먹고와도 괜찮나용?
-
금요일에 학교 안갈거라 그때 풀거싶은데
-
바람을 타고 날아갔다고 생각해줄래
-
89점인데 주나 하
-
아 10
언매 84면 어느정도인가요 많이 떨어졌네..
-
하 계속 똥방귀나오는데 14
냄새 개좃되는데 과외하는동안 2시간 참을수 잇을까
-
국어 80 화작 생윤 30 사문 33
-
죄송합니다 1
깝쳐서 죄송합니다 그냥 확통하겠습니다
-
거품끼게 만드는줄 알겠음 지문난도는 작수가 5모보다 훨씬 떨어지는데 컷은 오히려...
-
어떤가요 수학난이도? 오늘 수학 얼마나 털렸을지 가늠도 안됨
-
5덮 사문 4
계층이동이랑 유부노는 작년 온갖실모 다 생각해봐도 5덮이 젤 어려웟음
-
숙제를 해오는게 뭔가 의심스러워서 과외생들 모두 중간점검 날짜 정해서 동시에 숙제...
-
그냥 읽으면서 풀었는데 중간에 전 것도 없는데 6문제를 넘게 보지도 못하고 끝남...
-
실질적법치능 형식적법치와 달리 형식적 합법성보다 내용적 정당성을 강조한다다이거 맞는거아님??
-
사실 0
언매 70점댄데 진도를 아직 다 못빼서 문법 3개틀렷어요 ㅠㅠ 보정 3등급일듯
-
youdo
-
둘다 애매해보이네.. 딱 되거나 안되거나 둘 중 하나일듯
-
25분 남기고 100점 ㅎ 제시문은 쉬운데 몇 개 선지가 헷갈릴만 하네요 24 33...
-
너무 덥다
-
그냥 윤사가 낫나요? 윤사도 이런거 많나요?
-
예비고1. 리터니라 리딩은 순전히 감으로ᆢ모고1 ~2등급. 문법은 1번 봤는데...
-
5월 더프 0
성적표 언제 나오나요? 그리고 언 확 영 생윤 사문 91/92/94/47/47 인데...
-
투투 표점 달달하네
-
더프 보니까 0
머리 깨질거같네 오늘은 그냥 집가서 자다가 일어나서 미3누 라이브 채점이나 보고...
-
둘다 40초반인데 난이도 어느정도인가요
-
다시 돌아갈까..
-
아무리 시간이 부족했다지만 푼것도 틀린건 아니지………하
-
생윤 39 윤사 45인데 보정 몇등급일까요 ㅠㅠ
-
작년 나의 이력 3
본인 강대출신 89덮 수학 4등급(원점수는 비밀) 9덮 수학끝나고 탈주함 11덮때 학원쨈
-
목적없는반수 8
그냥작년수능에서맞출수있던걸틀렸던게아쉬워서하는반수 시대 반수반 고민 중 진지하게
-
국어 잘보면 수학 망하고 수학 잘보면 국어 망하고 99.4~7을 벗어난 적이 거의 없음
-
국어 백분위 70 수학 백분위 98 영어 3 과탐 백분위 97 94
-
생명과학 백호 16 모의고사 같이 제일 어려운 문제 몇개 뺀 그런 모의고사...
-
5덮 어땠나요 13
-
그래도 72점 ㅅㅂ
-
수학 4
92점 14번 30번 틀 보정 백분위 100 가능한가요
-
부럽다
학부 수준에서 접근하셨을 때 무난한 답변이라고 생각합니다. 사실 그런데 소프트웨어 공학은 특히나 다른 과학적 원리와 비슷해서, 시대가 변하면서 관점이 약간씩 변하는 부분도 있습니다. 말씀하시는 부분은 2000~2010년 사이에는 거의 모범 답안과도 같은 정리라고 보여집니다. 역사적인 맥락에서 정리하신 부분은 컴포넌트 기반 프로그래밍과도 비교해가면서 정리 해 보셨으면 하네요.
그리고 음... 대부분의 객체지향 프로그래밍 교과서가 위와 같은 설명을 하고 있기는 합니다만 사실, 바퀴쪽에 문제가 생겼다고 교체를 한다거나, 문제가 생기는 부분을 교체하거나, 기능이 추가될 때 교체를 하는 것이 예를 들어, C를 깊게 하고 계시는 듯한데, 객체개념이 없는 C에서는 불가능한 방법일까요? 그리고 "대형화된 소프트웨어" 라는 설명을 90년대의 역사적 맥락과 연관지어 한 번 조사해보시면 어떨까 싶습니다. 사실 20~30년 전에 했던 정의가 교과서에 여전히 내려오는 경우도 많거든요.
대박이네요... 피드백 감사드립니다 :) 추후에 차근차근 정리해야겠어요. 객체지향 같은 경우는 참 재미있는 설계적 접근 방식인 듯해서 흥미가 많이 생겨요.
감사합니다 (__)