컴공 일기175
게시글 주소: https://dev.orbi.kr/00058261276
자료구조 1주차 요약 과제입니다 :)
누가봐도 이해가 되는 글을 쓰고 싶은데, 그게 참 쉽진 않은 것 같아요...
객체지향 프로그래밍(Object-Oriented Programming, OOP)을 한 마디로 설명한다면, “대형화된 소프트웨어에 적합한 설계방식”이다. 소프트웨어가 대형화되었을 때, 개발자는 몇 가지 문제에 직면하게 되는데, 그때 가장 크게 다가오는 것은 유지/보수의 제반 문제일 것이다. 굉장한 규모를 가진 프로그램을 어떻게 유지하고, 보수하느냐에 따라서 개발 회사의 존립이 갈리곤 하기 때문이다. (대표적인 예로, 미국의 Netscape사가 유지/보수의 문제로 주저앉고 말았다.) 그러기에 개발자는 효율적인 방식을 통해 짧은 시간 내 에러를 찾아내고, 새로운 기능을 추가해야만 한다. 오류 수정과 업데이트의 기간이 필요치 않게 늘어난다면 그 프로그램을 이용하는 사용자들에게 불편함을 주고, 그에 따라서 치명적인 비용을 지출해야 하기 때문이다. 이러한 심각성을 고려한다면, 결국 유지 혹은 보수가 쉽게 되도록 “미리” 잘 설계하는 것에 프로그램의 사활이 걸려있다고 해도 과언이 아닐 것이다.
그런 관점에서, 객체지향 방식은 탁월한 측면을 가지고 있다. 객체지향 방식은, 기능별로 독립적 단위를 만든 뒤에 그들을 모두 합쳐서, 하나의 총체적 시스템(프로그램)으로 통합하는 방식이다. 이 도식 안에서는, 놀랍게도 유지/보수가 매우 효율적으로 이루어진다는 장점이 있다. 한 예를 들어보자. 엔진 부분과 차축 부분, 그리고 바퀴 부분을 모두 조립해서 자동차를 만들면, 엔진이 고장 났을 때 엔진 부분만 전체로부터 빼내어서 교체한 후에 재조립하면 된다. 만약 이번엔 엔진이 아니라 바퀴 쪽에 문제가 생겼다면, 마찬가지 방식으로 바퀴 부분만 빼내어서 교체하면 된다. 사정이 그렇다면 자동차에 새로운 기능을 추가하는 것도 어렵지 않아 보인다. 만약 신규로 모델링 된 차축을 자동차에 반영해야 한다면 위와 같은 방식으로 기존의 차축을 뜯어내고 그 자리에 새로운 차축을 끼워 넣기만 하면 되기 때문이다. 이렇게, 기능별로 한 시스템을 “모듈화”하게 되면, 유지/보수가 굉장히 편리해지는 장점을 가지게 되는 것이다. 따라서 객체 지향 방식은 대형화된 소프트웨어에 최적화된 설계 방법이라고 볼 수 있다.
참고로 객체지향 방식에서는 주로 GUI 부분, 데이터 제어 부분, 자료구조 부분으로 나누어서 설계한다. 최근에 많은 주목을 받고 있는 Web 서비스도 이러한 구조를 가지고 있다. 자료구조 부분의 HTML, GUI 부분의 CSS, 데이터 제어 부분의 JAVASCRIPT가 모두 합쳐져 Web이라는 전체 시스템을 형성한다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
사탐런 고민 3 1
현역이고 작수 물지 당일에 모의수능으로 학원가서쳤을때 2/1떴었는데 사탐런하면...
-
사실 저는 어제 생일이였습니다 왜 말하지 않았냐고요? "모두가 날 신경쓰는척 행동하는게 역겨우니까"
-
옯창 리스트 2 3
-
3월 더프 미적 4 1
21 22 30 틀려서 88점이네
-
과학 문제집중에 7 2
가장 어려운거 뭐임요??
-
야 신난다!
-
자꾸 간봐서 그렇긴 한데 3모 기간이 일정이 뭐가 많아서 아무도 안 볼거면 시간...
-
진지한 국어 질문 7 1
현역때 국어 안했고, 올해 3월에 처음 시작했습니다.선택은 화작목표는 6월에 3등급...
-
[이벤트] 2027학년도 Prologue 모의고사 1회 배포 19 12
OMR 링크:...
-
이제 심판의 시간이 다가왔다 5 2
더프 수학 채점해야 함.
-
아니 개어이없네... 2 0
이게 왜 정털리는데.....
-
미적 기준 뭐가 더 쉣임?
-
스블 vs n제 1 0
수1,수2 뉴분감 4월초에 끝날 거 같은데 스블 한번 더 하는게 좋나요? 아니면...
-
뛰어넘었나 0 1
궁금쓰
-
ㅈ같네 씨발씨발
-
자퇴마렵노 4 0
회화가맨날잇서
-
잘생기면 먹는거 조절하게됨 0 0
잘생긴거랑 아닌거랑 대우받는게 다르다는걸 아니깐 체중조절목적이 생기는등 잘생기면...
-
시대인재 근황.... 6 3
한국사 답안 523 투척
-
올해 화학표본은 2 1
잘함?
-
재수하는데 집안형편 4 1
하..올해 재수하는 07인데 ㅅㅂ 집안형편이 생각보다 안좋은것같은데 어캄 우연히...
-
헐 통합과학은 0 1
염색체에서 막 화학식 구하고 외계행성 물리법칙 구할려나
-
ㄹㅇ 오르비가 존나심심해짐
-
더프랑 서프가 왔는데 생각해보니 현역이라 풀 시간이 주말뿐임;;; 지금 모의고사...
-
야심한 밤의 2503 화1 9 0
엄 이게 진짜 말로 하기 뭐한데 생각보다는 어려운데? 등급컷은 잘 모르게씀...
-
근데 통합과학은 어케나온대 0 1
이게 ㄹㅇ궁금함
-
통합과학 현강은 어케함 2 3
현정훈 강준호 김연호 이신혁 막 번갈아서 들어오나 ㅋㅋ
-
13분 후 배포함 4 4
-
좋아하는 강아지가 있는데 8 2
랜선으로만 보는 애기인데도 갈수록 늙어가는 게 눈에 보여서 슬픔
-
님들은 뭐해서 돈벌것같음? 6 0
ㄹㅇ 뭐해야하지
-
ADHD 진단 받아서 울었어 0 0
대학교 졸업하고서야 알다니
-
존나행복했다
-
애니캐릭터가 그렇게 하니까. 그리고 내가 쉽게 변하지 않는 강인하고 안정된 마음을...
-
나의능력 3 0
아무도댓글를안단느능력
-
Stay on fire 개좋음 1 1
앨범에서 유일하게 좋은데 걍 좋음 캬
-
작수 39점 사문 최적 개념 0 0
작수 윤성훈 풀커리 듣고 사문 39점이고 지금까지 윤성훈 스피드 개념 +검더텅...
-
3모 전날 새르비가 8 1
폭발적이겠지?
-
전 오늘부터 3 0
혼자다니기로 했어요
-
저랑 맞팔해요 4 1
-
새르비가 되어가니깐 1 1
조회수가 줄었군
-
학교생활 망햇다 3 0
망햇다고
-
하수: 실모에 기하가 없구나 1 2
고수: 공통 모의고사구나
-
이이이이걸들르셈 2 0
동현이 랩이된다 여기서제일잘하는애야
-
내용을 아는데 문제를 틀림(?)
-
이 앨범 진짜 좋다 0 0
-
좆 0 0
학교실ㄹ러
-
단축수업 너무 야르인데 2 0
앙 기모찌
-
근데 더프나 서프 개인응시면 1 0
걍 안사고 ㅇㅂ에서 뽑아푸는게 낫나요? 일단 3덮 사긴했는데 다음부터 어케할까요?? 현역입니다!
-
N제 작년꺼 풀어도 괜찮나용 0 0
사촌형한테 책 작년 N제 몇개 받았는데 작년꺼여도 풀어봐도 괜찮겠죠? 참고로 기출...
-
무릎도 안 모이는데 안쪽이 왜 아픈지 모르게씀
-
생명 실모 양치기할까 2 1
진짜 n제 푼다고 크게 안느는거같기도하고 시간관리가 필요한데

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