객체지향 기초개념

Weed·2024년 3월 5일
0

웹 개발 기초 완성

목록 보기
4/4

객체지향 기본 개념

  • SW는 매우 복잡하고 점점 거대해짐
    --> 요구사항 대로 동작하는 SW를 정해진 기간/예산 안에 만드는것이 어려움
    --> How 큰 규모 SW 잘 개발 및 관리?
    --> SW 개발 방법론

SW 개발 방법론

Process

  • 요구사항 수집
  • 요구사항 분석
  • 고수준 설계
  • 상세 설계
  • 구현
  • 테스트

방법론 종류

  • 구조적 방법론
  • 정보공학 방법론
  • 객체지향 방법론
  • 컴포넌트 기반 방법론
  • 애자일 방법론

객체지향 프로그래밍

  • 데이터와 데이터에 대한 연산을 수행하는 코드를 그룹화 한 개겣를 중심으로 SW를 설계 개발하는 패러다임

  • 시스템의 행위 보다, 시스템에 참여하고 책임을 갖는 객체가 무엇인지에 주목

  • 다수의 객체가 각자의 역할을 하고 객체 간에는 메시지를 주고 받으며 전체 시스템 구성

예시

초안 운영

  • 직원 A, B, C가 있음
  • 커피숍은 커피 내리기, 빵 굽기, 계산 하기, 청소 하기가 중요 (행위)
    • 목표를 위한 행위에 집중
      • 행위를 중심으로 커피숍의 작업을 설계
    • 모든 직원이 커피추출, 빵 굽기, 청소, 계산 및 주문 업무 이해해야함
      • 빵 굽는 기계가 변경되면? --> 직원 A, B, C 모두 새로운 기계 학습 필요
    • 사장이 모든 상황에 대해 직원들에게 직접 지시 내리고 관리
  • (A 출근) A씨 커피 내려주세요
  • (B 출근) B씨 빵 구워주세요
  • (C 출근) C씨 계산해주세요
  • (A가 커피 내림 완료) A씨 청소 해주세요
  • (B가 빵 굽기 완료) B씨 커피 내려주세요

개선된 운영

  • 팀 설계
    • 바리스타 팀
    • 제빵 팀
    • 운영팀 (주문, 계산 및 청소)
  • A는 바리스타팀으로 가서 에스프레소 기계를 이용해서 커피를 내려주세요
  • B씨는 제빵팀에 가서 오븐으로 빵을 구워주세요
  • C는 운영팀에 가서 청소, 주문 및 계산을 해주세요

  • A-바리스타, B-제빵, C-운영
  • 각각 어떤 업무를 해야하는지 누구와 커뮤니케이션해야하는지 안다.
  • 빵 굽는 기계가 변경되면? --> B만 새로운 기계 학습법을 학습
  • 모든 직원은 각자의 업무에만 집중하고 다른 업무에 대해 알 필요 X
  • 사장이 모든 상황에서 직원들에게 업무 지시를 안해도 됨

설계의 중요성

절차지향 vs 객체지향

  • 절차 지향
    • 시스템의 행위에 집중
  • 객체 지향
    • 시스템에 참여하는 요소들에 집중

이러닝 시스템을 설계한다면?


객체 지향 프로그래밍의 장점

  • 복잡한 SW 시스템이 역할 / 책임에 따라 모듈화 될 수 있음
  • SW 구성 요소 간의 더 명확한 커뮤니케이션이 가능
  • 결과적으로 SW를 쉽게 유지보수 할 수 있음
profile
개발자로 전직해보자

0개의 댓글