컴공 일기175
게시글 주소: https://orbi.kr/00058261276
자료구조 1주차 요약 과제입니다 :)
누가봐도 이해가 되는 글을 쓰고 싶은데, 그게 참 쉽진 않은 것 같아요...
객체지향 프로그래밍(Object-Oriented Programming, OOP)을 한 마디로 설명한다면, “대형화된 소프트웨어에 적합한 설계방식”이다. 소프트웨어가 대형화되었을 때, 개발자는 몇 가지 문제에 직면하게 되는데, 그때 가장 크게 다가오는 것은 유지/보수의 제반 문제일 것이다. 굉장한 규모를 가진 프로그램을 어떻게 유지하고, 보수하느냐에 따라서 개발 회사의 존립이 갈리곤 하기 때문이다. (대표적인 예로, 미국의 Netscape사가 유지/보수의 문제로 주저앉고 말았다.) 그러기에 개발자는 효율적인 방식을 통해 짧은 시간 내 에러를 찾아내고, 새로운 기능을 추가해야만 한다. 오류 수정과 업데이트의 기간이 필요치 않게 늘어난다면 그 프로그램을 이용하는 사용자들에게 불편함을 주고, 그에 따라서 치명적인 비용을 지출해야 하기 때문이다. 이러한 심각성을 고려한다면, 결국 유지 혹은 보수가 쉽게 되도록 “미리” 잘 설계하는 것에 프로그램의 사활이 걸려있다고 해도 과언이 아닐 것이다.
그런 관점에서, 객체지향 방식은 탁월한 측면을 가지고 있다. 객체지향 방식은, 기능별로 독립적 단위를 만든 뒤에 그들을 모두 합쳐서, 하나의 총체적 시스템(프로그램)으로 통합하는 방식이다. 이 도식 안에서는, 놀랍게도 유지/보수가 매우 효율적으로 이루어진다는 장점이 있다. 한 예를 들어보자. 엔진 부분과 차축 부분, 그리고 바퀴 부분을 모두 조립해서 자동차를 만들면, 엔진이 고장 났을 때 엔진 부분만 전체로부터 빼내어서 교체한 후에 재조립하면 된다. 만약 이번엔 엔진이 아니라 바퀴 쪽에 문제가 생겼다면, 마찬가지 방식으로 바퀴 부분만 빼내어서 교체하면 된다. 사정이 그렇다면 자동차에 새로운 기능을 추가하는 것도 어렵지 않아 보인다. 만약 신규로 모델링 된 차축을 자동차에 반영해야 한다면 위와 같은 방식으로 기존의 차축을 뜯어내고 그 자리에 새로운 차축을 끼워 넣기만 하면 되기 때문이다. 이렇게, 기능별로 한 시스템을 “모듈화”하게 되면, 유지/보수가 굉장히 편리해지는 장점을 가지게 되는 것이다. 따라서 객체 지향 방식은 대형화된 소프트웨어에 최적화된 설계 방법이라고 볼 수 있다.
참고로 객체지향 방식에서는 주로 GUI 부분, 데이터 제어 부분, 자료구조 부분으로 나누어서 설계한다. 최근에 많은 주목을 받고 있는 Web 서비스도 이러한 구조를 가지고 있다. 자료구조 부분의 HTML, GUI 부분의 CSS, 데이터 제어 부분의 JAVASCRIPT가 모두 합쳐져 Web이라는 전체 시스템을 형성한다.
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
국어를잘하는이원준이부럽구나...
-
못 만나 봄....
-
어떨까요 제기분이좋겟죠아마
-
가는 길 버스에서 6평 풀고 저녁에 해설하러 가야함 토깽이가 할 수 있을까..
-
현재 기원쌤 수강하면서 드릴6 풀고 있어요(막히는거 한두문제) 문제 빠르게 쳐내면서...
-
낼 학교 쉴까 0
오늘ㅇ,..여자친구랑도 헤어지고 낼 6교신데 수행이 5개 있네 곧 6모인데 이게...
-
국어 : '재수때 ㅈㄴ 다 했는데 수능에서 2등급으로 미끄러진거임 걍 실모랑 문학...
-
사료해석은 길이에 비해 쉽다고 생각합니다(사실 사료도 엄청 어렵게 만들려다가 실패)...
-
겨울이 가장좋아 4
벌레가 제일싫어 날파리,모기,진드기,화상벌레 등등 다 꺼져버려 빨리 벌레없는 겨울이왔으면
-
현대사에서 무난한 문항보다 살짝 더 깊게 들어갔습니다 그러나 힌트를 곳곳에 배치했고...
-
다들 왜 이런 얘기하는지 좀 알 거 같음 최근에 뭔가 그린라이트 떴다가 망한 적이...
-
가능한 모든 어려운주제 + 당황스러움까지 너무 벽이 느껴지는데
-
감귤 먹는 시골쥐의 우당탕탕 육지 여행 2(서울 편) 9
***사진 많아요. 데이터 & 스압 주의*** 전 편 아 부산에서 서울로 가는 게...
-
옯스타 맞팔해줘 2
unforgettablesnu
-
현실은 벌레만도 못했죠 몰랐어요 난 내가 버러지란 것을 괜찮지가 않아 난 모자르니까...
-
. 10
-
큐레깅!!!! 글씨 너무 예뽀오
-
좋은 밤 보내시고
-
죄책감시발
-
ㅈㄴ무서웠다 12
갑자기 누워있는데 화상벌레(청딱지개미반날개)가 나타난거임.. 그래서 당장 화장실가서...
-
자러 감 1
근데 자다가 죽으면 어캄
-
큰거왔다 1
캬 네버엔딩스토리라니
-
잡담글만 써야지
-
ㄹㅇ 다 존나 못하는데 입만 존나 터네 재명 마렵ㄴㅔ
-
수학. 물2만 쓸꺼야
-
자지마요 0
고추마요
-
이제 자야지 13
유튜브 하나만 보고 낼 더프 보는 사람들 잘자
-
문제집몇장푸나요 난이도상관 ㄴㄴ
-
허 11
이게 난이도 중이라고?
-
모킹버드 쓸꺼얌
-
좆이 내가 된다 2
좆된다
-
6모 묙포 잇음 3
10000점임
-
노래..추천 0
https://youtu.be/OB-ngSYIlV8?si=NQOsDmpFoKNV2pK...
-
와 극적Save. 간신히 분량도 다 채움 햐~
-
저 오늘 생일이애오 이륙이 소원입니다
-
중간에 스트레칭하고 방구끼는거 제외 다이렉트로 몇분정도 집중해서 문제푸심 전...
-
오르지 여러분들 15
안녕하십니까!
-
미적 과외생이 계속 벅벅 지우고 식 여기저기 적어가며 급하게 풀어서 오은영쌤마냥...
-
작수 52214 인가경에서 이정도면 감사해야지..ㅇㅇ
-
아 낼 왜 더프인거야 16
나 킬캠 해강 나머지 들어야한다고오오 시험치기 귀찮다고오 4등급뜨기 싫다고오
-
강민철은 뒷북쳐서 별로 김승리는 별것 아닌걸 굉장히 심각하게 말해서 별로 김동욱은...
-
저런게 재능이구나 싶음 그냥
-
보통 수능전까지 5
과목당 실모 얼만큼 푸나요? 100개 넘게 푼다는 글을 봐서
-
반박 안받음
-
지금까지 본 학평, 더프 다 14152122확통주관식2개 이렇게 틀렸는데...
-
물2 개같이 1컷 50 화2 무난하게 1컷 45? 생2 n수생 유입으로 1컷...
-
지2는 잠깐 나가있어 지1화2로 간다
-
지금 테스트이즈리듬 듣는데 좀만 내용 어려워지면 내용이 붕 떠서 정석민쌤 국어...
-
그럼 낮은 22222 뜨면 경외시까지 갈 수 있으니까 서성한중부터는 재능의 영역인거심? 이거 맛나?
-
김범준쌤께서 그런말 하신듯 ㅇㅇ.....
학부 수준에서 접근하셨을 때 무난한 답변이라고 생각합니다. 사실 그런데 소프트웨어 공학은 특히나 다른 과학적 원리와 비슷해서, 시대가 변하면서 관점이 약간씩 변하는 부분도 있습니다. 말씀하시는 부분은 2000~2010년 사이에는 거의 모범 답안과도 같은 정리라고 보여집니다. 역사적인 맥락에서 정리하신 부분은 컴포넌트 기반 프로그래밍과도 비교해가면서 정리 해 보셨으면 하네요.
그리고 음... 대부분의 객체지향 프로그래밍 교과서가 위와 같은 설명을 하고 있기는 합니다만 사실, 바퀴쪽에 문제가 생겼다고 교체를 한다거나, 문제가 생기는 부분을 교체하거나, 기능이 추가될 때 교체를 하는 것이 예를 들어, C를 깊게 하고 계시는 듯한데, 객체개념이 없는 C에서는 불가능한 방법일까요? 그리고 "대형화된 소프트웨어" 라는 설명을 90년대의 역사적 맥락과 연관지어 한 번 조사해보시면 어떨까 싶습니다. 사실 20~30년 전에 했던 정의가 교과서에 여전히 내려오는 경우도 많거든요.
대박이네요... 피드백 감사드립니다 :) 추후에 차근차근 정리해야겠어요. 객체지향 같은 경우는 참 재미있는 설계적 접근 방식인 듯해서 흥미가 많이 생겨요.
감사합니다 (__)