컴공 일기175
게시글 주소: https://orbi.kr/00058261276
자료구조 1주차 요약 과제입니다 :)
누가봐도 이해가 되는 글을 쓰고 싶은데, 그게 참 쉽진 않은 것 같아요...
객체지향 프로그래밍(Object-Oriented Programming, OOP)을 한 마디로 설명한다면, “대형화된 소프트웨어에 적합한 설계방식”이다. 소프트웨어가 대형화되었을 때, 개발자는 몇 가지 문제에 직면하게 되는데, 그때 가장 크게 다가오는 것은 유지/보수의 제반 문제일 것이다. 굉장한 규모를 가진 프로그램을 어떻게 유지하고, 보수하느냐에 따라서 개발 회사의 존립이 갈리곤 하기 때문이다. (대표적인 예로, 미국의 Netscape사가 유지/보수의 문제로 주저앉고 말았다.) 그러기에 개발자는 효율적인 방식을 통해 짧은 시간 내 에러를 찾아내고, 새로운 기능을 추가해야만 한다. 오류 수정과 업데이트의 기간이 필요치 않게 늘어난다면 그 프로그램을 이용하는 사용자들에게 불편함을 주고, 그에 따라서 치명적인 비용을 지출해야 하기 때문이다. 이러한 심각성을 고려한다면, 결국 유지 혹은 보수가 쉽게 되도록 “미리” 잘 설계하는 것에 프로그램의 사활이 걸려있다고 해도 과언이 아닐 것이다.
그런 관점에서, 객체지향 방식은 탁월한 측면을 가지고 있다. 객체지향 방식은, 기능별로 독립적 단위를 만든 뒤에 그들을 모두 합쳐서, 하나의 총체적 시스템(프로그램)으로 통합하는 방식이다. 이 도식 안에서는, 놀랍게도 유지/보수가 매우 효율적으로 이루어진다는 장점이 있다. 한 예를 들어보자. 엔진 부분과 차축 부분, 그리고 바퀴 부분을 모두 조립해서 자동차를 만들면, 엔진이 고장 났을 때 엔진 부분만 전체로부터 빼내어서 교체한 후에 재조립하면 된다. 만약 이번엔 엔진이 아니라 바퀴 쪽에 문제가 생겼다면, 마찬가지 방식으로 바퀴 부분만 빼내어서 교체하면 된다. 사정이 그렇다면 자동차에 새로운 기능을 추가하는 것도 어렵지 않아 보인다. 만약 신규로 모델링 된 차축을 자동차에 반영해야 한다면 위와 같은 방식으로 기존의 차축을 뜯어내고 그 자리에 새로운 차축을 끼워 넣기만 하면 되기 때문이다. 이렇게, 기능별로 한 시스템을 “모듈화”하게 되면, 유지/보수가 굉장히 편리해지는 장점을 가지게 되는 것이다. 따라서 객체 지향 방식은 대형화된 소프트웨어에 최적화된 설계 방법이라고 볼 수 있다.
참고로 객체지향 방식에서는 주로 GUI 부분, 데이터 제어 부분, 자료구조 부분으로 나누어서 설계한다. 최근에 많은 주목을 받고 있는 Web 서비스도 이러한 구조를 가지고 있다. 자료구조 부분의 HTML, GUI 부분의 CSS, 데이터 제어 부분의 JAVASCRIPT가 모두 합쳐져 Web이라는 전체 시스템을 형성한다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
모두가 같은 덕코 주고 10%씩 받죠?
-
침대랑 옷이랑 마찰되면 불쾌해 뭔가
-
축구하고싶다 2 0
3일전에했는데 또하고싶네
-
근데 잘때는 상의만 입음 0 0
말 그대로 "상의만"
-
이것도 오늘 쳐봤죠
-
나 근데 집에서 속옷만 입음 7 0
상하으ㅏ 안입어
-
근데 원ㄴ래 잘 때는 7 1
남쟈들은 딱히 머 안입지 않냐ㅏ
-
나를 20대 여성으로 오해하고 다가온게 개웃겻음
-
1시 30분까지 덕코 가장 많이 준 사람에게 10% 얹어서 줌 16 0
단, 2등부터 꼴등꺼의 덕코는 내가 꿀걱.
-
근데 나 집에서 상의랑 속옷만 입음 16 0
말 그대로임
-
[피아노 연주] 연세여 사랑한다와 비슷한 SG워너비 곡 4 2
오늘 다시 쳐보고 업로드 해봤습니다
-
재수초반에 호기심반 근심걱정반으로 무당한테 점보러 갔을때 1 0
ㅅㅈㅎ 돌팔이이긴 했는데 입시상담사마냥 공부만 열심히하라고 하고 외모평가하고 남자복...
-
가끔 옷 안입고 인스타하다가 실수로 인스타 캠 켜져서 스토리에 올라가는 상상하게돼서 식겁함
-
사랑합니다 0 0
-
기만자들을 다 차단하니 2 2
오르비에 글이 안올라오는 구나
-
현재 145만덕코 보유 중 7 0
곧 84만 덕코로 쪼그라듬
-
어느순간 퐉 늙어버림 2 0
관리의 중요성
-
탈릅하려고하는데 20 2
저랑 내적 친밀감 있으신 분 dmleorkrhtlv 맞팔해주실수있나요
-
딴건 모르겠고 14 2
9모 에피는 따야겠음 에피 설대생들이 야리돌림을 너무 많이하더라
-
피파 1년동안 팀갈안했다가 0 0
프랑스로 팀갈하고 눈을떠버렷았음 24토티 음바페가 ㄹㅇ 개사기엿는데
-
솔직히 쿼티 3 8
인증 보고 싶으면 개추
-
Bc 찻부분 these shots such shots 박스에 없어서 확신갖고 1번 찍었는데
-
하면 됩니다!!! 오릅니다!!!! 할 수 있습니다!!! 포기하지마세요!!!
-
요즘 피파는 너무 조잡해짐 4 0
딱 22토츠까지가 좋았어
-
n제에 실모 병행한다고 하면 15 0
하루에 둘다 하는건가요? 아니면 격일로 하거나 머 그러나요? 현재 엔제만 풀고잇고...
-
홈페이지에서 찾으려는데 가격을 못찾겠네요.. 지금 대구 러셀 다니고 있는데 바자관...
-
초딩때 썰 2 1
딩초때 kbs 방송국으로 현장학습을 갓단 말이디 암튼돌아댕기구 잇엇는데 웬 중국인...
-
본인 이때부터 피파함 ㅁㅌㅊ? 16 1
ㅇㅇ Hot시절
-
외모관련 종종 듣는게 11 1
피폐하게 아니면 퇴폐적으로 생겼다
-
중딩때 피파로 쌀먹함 2 0
구단가치 1조짜리 계정 12만원에 팔고 돈좀보태서 축구화샀엇음
-
현재 옯창 랭킹 점수 순위판 14 0
1.퀴티9.9 2.파마늘9.8 ------설표-------9.7 3.아랴양9.6...
-
연애라는 개념에 대해 생각해본적이 없어서 그런가 1 0
내 외모가 그닥인건 알아도 크게 불만은 없었던 거 같음
-
잘잘잘 0 0
어떰 이것만 하면은 안될거 같고 만약 한다면 뭐랑 같이 해야할까 잘노기보다 잘잘잘이...
-
근데 요즘도 피파하는 사람들 있음? 18 1
작년 시월인가에 마지막으로 하고 한 번도 안함 꼴에 게임을 다 접은 것도 있지만..
-
마스크 쓰면 사람 외모임 1 0
눈까지는 잘 만들어지다가 코부터 살짝씩 망가지더니 턱에서 급발진
-
원래 정시한다하면 4 0
원래 정시한다하면 담임쌤은 무조건 수시로가라고 하죠? ㅈ반고일수록 오늘...
-
외모로 들어본 말 6 0
왜 이렇게 컸냐? 아랍인 같다 음..? 너정도면 못생겼지
-
7모 수학 21번 4 0
가 조건만 이용해서 개형 대충 그려봤는데 맞나여?3등급따리긴한데 뭔가 21번 올만에...
-
외모로들어본말 10 0
-
시험장에서 물2 화2 진짜 쉽게 느껴짐 하나라도 틀릴시 내 대학 날아간다 싶어서...
-
하루 공부량 평가좀 0 0
국어 피램 독서 day한개, 간쓸개 day한개, kbs3강 수학 이해원 엔제 확통...
-
외모평가당해봣던것들 2 0
담배사러갓는데 사장님왈 되게 베이비페이스다 무당왈 순하고 안 대들것같다(???)...
-
~의미있는지 모르겠음 << 이거 쿨찐 힙스터병 말투 같아서 안좋아하는데 그래도...
-
잘지내야해 다들 3 0
바바이
-
수능장 들어가기 전 담배가 0 1
진짜 맛있었음
-
오르비를 떠나고 싶은 이유 4 3
기만러가 너무 많음 난 도태남만이 좋은데
-
나사실존잘임 2 0
반박안받음
-
외모로들어본 말ㄹ 23 3
탈렌트 할 생각 없나? - 알바하면서 손님 아찌가 말해쥼엣되다~ - 엄마베이비...
-
자(야)지 5 1
졸리고피곤해
-
존못 등장 14 0

학부 수준에서 접근하셨을 때 무난한 답변이라고 생각합니다. 사실 그런데 소프트웨어 공학은 특히나 다른 과학적 원리와 비슷해서, 시대가 변하면서 관점이 약간씩 변하는 부분도 있습니다. 말씀하시는 부분은 2000~2010년 사이에는 거의 모범 답안과도 같은 정리라고 보여집니다. 역사적인 맥락에서 정리하신 부분은 컴포넌트 기반 프로그래밍과도 비교해가면서 정리 해 보셨으면 하네요.
그리고 음... 대부분의 객체지향 프로그래밍 교과서가 위와 같은 설명을 하고 있기는 합니다만 사실, 바퀴쪽에 문제가 생겼다고 교체를 한다거나, 문제가 생기는 부분을 교체하거나, 기능이 추가될 때 교체를 하는 것이 예를 들어, C를 깊게 하고 계시는 듯한데, 객체개념이 없는 C에서는 불가능한 방법일까요? 그리고 "대형화된 소프트웨어" 라는 설명을 90년대의 역사적 맥락과 연관지어 한 번 조사해보시면 어떨까 싶습니다. 사실 20~30년 전에 했던 정의가 교과서에 여전히 내려오는 경우도 많거든요.
대박이네요... 피드백 감사드립니다 :) 추후에 차근차근 정리해야겠어요. 객체지향 같은 경우는 참 재미있는 설계적 접근 방식인 듯해서 흥미가 많이 생겨요.
감사합니다 (__)