본문 바로가기
개발자 일기/일일회고 (TIL)

부트캠프 22일차 (객체 지향 프로그래밍)

by MS_developer 2022. 9. 22.

 

오늘의 생각

객체 지향 프로그래밍은 학부 때부터 자주 들어왔던 개념이었기 때문에 매우 반가웠다. ...딱 30분만 반가웠다. 흥미로웠던 점은 클로저 모듈 패턴이 객체를 생성하는 방식이 객체 지향 프로그래밍을 따르는 방법이라는 것을 미처 생각하지 못했다가 이번 공부를 통해 알게 되었다는 것이다. 

 

또한 메서드 호출방식에서 화살표 함수를 사용하지 않는 이유를 알게 되어서 흥미로웠다. this, super에 대한 바인딩이 없다는 한계점은 알고 있었지만 이 외에도 일반적으로 스코프를 지정할 때 사용하는 메서드들을 사용할 수 없다는 것이 새로웠다. ES6의 위대함은 프론트엔드를 배우면 배울수록 느끼고 있었지만, 클래스를 배울 때만큼 감사할 수가 없었다.

 

자바를 배웠던 나로서는 class 키워드를 사용하지 못한다면 자바를 사용했을 때와 같은 불편함을 느꼈을 것 같다. (오히려 더 불편했을지도...자바는 최소한 파일을 따로 만드니까...private 키워드도 있고)

 

객체 지향 프로그래밍의 네 가지 개념들(캡슐화, 추상화, 상속, 다형성)은 마찬가지로 학부 때 들었던 내용이라 어렵지 않게 이해할 수 있었다. 하지만 오늘 배웠던 개념들을 블로그에 정리하는 건 너무나도 어려운 것 같다. 개발을 모르는 일반인이 들어도 이해할 수 있게 설명하는 것이 목표인데, 특정 용어를 쓰면서 쉽게 이해할 수 있는 예시를 들고 정리하는 것이 생각보다 매우 어려운 것 같다.

 

처음 예시를 들었을 때 자동차가 너무 식상해 고양이를 통해 객체 지향 프로그래밍을 적으려던 시도가 너무 후회됐을 정도..


오늘의 키워드

객체 지향 프로그래밍Object Oriented Programming, 클로저 모듈 패턴, 클래스, new 키워드, 인스턴스 객체, this 키워드, 캡슐화, 추상화, 상속, 다형성


오늘의 학습내용

  • 객체 지향 프로그래밍의 정의
  • 객체 지향 프로그래밍과 절차 지향 프로그래밍의 차이점
  • 클래스 키워드와 생성자 함수를 활용한 인스턴스 객체 생성법
  • this 키워드와 new 키워드
  • 캡슐화의 정의와 은닉화, 느슨한 결합의 연관성
  • 추상화의 정의와 인터페이스를 쓰는 이유
  • 상속의 정의와 자식 클래스가 부모 클래스로부터 메서드와 속성을 활용하는 방법
  • 다형성의 정의와 상속을 활용한 클래스 변환

어려웠던 keyword / 활용한 질문

  • 절차 지향 프로그래밍을 사용하면 생길 수 있는 불편함을 객체 지향 프로그래밍을 통해 어떻게 보완할 수 있나요?
  • ES6 이전에 클래스를 통해 함수로 클래스를 정의하는 방법을 설명할 수 있나요?
  • 화살표 함수는 왜 메서드 호출 방식에서 채택되지 않나요?
  • 인터페이스가 유용한 점과 추상화를 사용하는 이유가 뭔가요?

댓글