사전과제 : 의존, 객체, 전략패턴...
https://tiny-immj.tistory.com/51
1차시는 객체지향과 의존에 대한 내용에서부터 시작해서
절차지향 프로그래밍과 객체지향 프로그래밍의 차이에 대해 코드를 보고 공부하였다.
절차지향 :
- 프로시저에 중점을 둔다.
- 프로그램은 일련의 절차적 단계로 구성되고, 데이터와 프로시저가 별도로 존재한다.
객체지향 :
데이터와 기능을 하나의 객체로 묶는다.
예시로 들어주셨던 코드를 살펴보면 절차지향은 입금, 출금, 잔액 출력의 절차가 순차적으로 진행된다.
객체지향은 BankAccount 클래스로 객체화를 해 잔액상태, 입금, 출금, 잔액 출력 기능을 넣었다.
요구사항 변경(수수료 면제)이 생길 경우 절차지향 프로그래밍 코드에서는 수수료 적용 기능을 새로 넣어줘야하는 반면에,
객체지향은 잔액과 수수료 면제 대상 고객여부만 체크해주면 되는 코드였다.
의존을 최소화했기 때문에 객체지향에서는 간단한 수정이 가능했다.
앞부분의 소프트웨어의 가치에 대해 말씀해주셨는데 이 부분과도 연결이 되었다.
변화에 적응하는 소프트웨어의 3가지 특징 : 유연성, 확장성, 유지보수성
다른 분들의 의견과 내가 강의를 들어보면서 정리하게 된 개념은 다음과 같다.
=> 절차지향은 어떤 이벤트를 중심으로 코딩하는 것이고 객체 지향은 객체를 정의하여 그 속에 상태와 행위를 넣어두는 것
=> 절차지향에선 메소드가 분리되어 여러 곳에서 사용이 되다보니 의존에 따른 변경전파가 넓지만 객체지향에선 데이터와 메소드가 한 묶음으로 되어 변경 전파 범위를 줄여 유지보수가 용이하다.
절차지향과 객체지향의 차이에 대해서는 다음 시간에 추가로 더 설명해주시기로 하셨다.
* 앨런케이가 말하는 객체지향 핵심
- Message Passing
- Encapsulation
- Dynamic Binding
유튜브에서 추가로 영상을 보았다.
https://youtu.be/MXLw0EsxBjI?si=qsQGQHwD2JoUsivf
3가지 개념에 대해 정리를 잘 해주셔서 도움이 되었다.
멘토님의 강의 자료가 탄탄해서 다음 차시도 기대가 된다. 퇴근하고 나면 추가과제도 정리해서 올려봐야지
'개발 기록 > backend' 카테고리의 다른 글
[백엔드] 프리온보딩 객체지향 2차시 - 프로젝트로 시작하는 객체지향 (1) | 2024.01.09 |
---|---|
[백엔드] 원티드 프리온보딩 챌린지 객체지향 과제 - 설계 (0) | 2024.01.08 |
[백엔드]대규모 설계 시스템 기초_사전미션 (1) | 2023.12.29 |
[백엔드] 원티드- Mysql 기본기 다지기_사전미션 (0) | 2023.12.29 |
[백엔드]원티드 - 프로젝트 유연함을 높이는 객체지향 첫걸음_사전미션 (0) | 2023.12.27 |