절차적 프로그래밍과 객체지향 프로그래밍

송수용·2022년 6월 4일
0

웹 개발의 봄, Spring

목록 보기
25/25

AllInOneController

  • 33) AllInOneController 클래스의 문제점
    1. 한 개의 클래스에 너무 많은 양의 코드가 존재

      1. 코드 이해가 어려움: 처음부터 끝까지 다 읽어야 코드 내용을 이해할 수 있음
    2. 현업에서는 코드 추가 혹은 변경 요청이 계속 생김

      [변경 요청의 예]

      1. 신규 상품 등록 시 Client 에게 응답 (Response) 하는 값 변경
        1. 등록된 Product 전체 정보 → 등록된 Product 의 id
      2. 최저가 (Myprice) 업데이트 조건 변경
        1. Client 가 최저가를 0원 이하로 입력 → 에러 발생
      3. DB 테이블 이름 변경
        1. Product 테이블의 lpricelowprice 변경

절차적 프로그래밍

  • "절차적 프로그래밍"
    • 초기 프로그래밍 방식 🎈

    • 컴퓨터가 해야할 일들을 쭈~욱 순차적으로 나열해 놓는 코딩 방식

    • 예) AllInOneController 클래스의 각 API 처리내용

    • 절차적 프로그래밍

      : 아무 메모장을 띄워서, 생각나는데로 사고의 흐름을 적는다 (퀵메모)

    1. 장점:
      • 메모를 작성하기에 편함 (직관적)
    2. 단점:
      • 메모양이 많아지면 정리가 어려움
      • 내가 원하는 메모 내용을 찾기 어려움

객체지향 프로그래밍

  • 소프트웨어의 규모가 점점 커지면서 필요성이 부각이 됨
  • 대부분의 사람들은 한 번에 여러가지 다른 생각을 하는데 취약
  • 하나의 사물 (객체) 에 하나의 의미를 부여하는 것처럼 프로그래밍하게 됨
    • 예)
      • 뭔가 자를 것이 필요하면 '✂️' 를 떠올림 (class Sciccors)
      • 종이에 적을 게 필요하면 '✏️' 을 떠올림 (class Pen)
      • "하나의 역할" → 객체
    "주제별"로 정리해서 메모한다. (ex. 주식 투자, 바리스타 공부)
  1. 장점: 메모를 관리하기 쉬움

  2. 단점:

    • 주제를 어떻게 나눠야 할지, 고민이 필요
      • 잘못 주제를 나누면..
        • 중복된 메모 내용이 생길 수 있음 (ex. "나중에 읽을 책", "도움이 되는 책")
        • 하나의 주제에 너무 적거나, 너무 많은 메모 내용이 들어갈 수 있음 (ex. "88 올림픽 한국 순위와 금메달 개수", "공부")
    • 주기적으로 주제별 (카테고리별) 정리가 필요할 수 있음
    • 떠오르는 생각들을 적을때 주제가 다른 메모내용들을 적기 어려움

    추천 프로그래밍 방식

    1. 처음엔 "절차적 프로그래밍"
    2. "객체지향 프로그래밍"으로 리팩토링 💡 '**리팩토링**' 이 뭐죠?? : 기능 상의 변경 없이 프로그래밍 구조를 개선하는 것 1) 하나의 파일에 **너무 많은 코드**가 들어가지 않게! 2) **역할별**로 코드 분리!! 3) 코드를 좀 더 **읽기 편하게**!!!
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글