class
흉내내기가 아닌 class
interface
generics
활용하여 객체지향 프로그래밍 가능동적타입인 자바스크립트는 코드의 가독성이 떨어지고 함수에 어떤 인자를 받아서 어떤 연산을 하는지 유추하기 어렵다.
개발을 할때 이슈를 빠르게 잡을수 있는것이 아니라 사용자가 애플리케이션을 사용하면서 예상치 못한 에러가 발생할 수 있다.
명시적인 정적타입은 개발자의 의도를 명확하게 코드로 기술할 수 있어서 가독성이 높고 디버깅이 쉽다.
컴파일 단계에서 에러를 포착하므로 실시간으로 에러에 대한 검사를 받을 수 있고 조금 더 안정적이고 확장이 쉬운 소프트웨어를 만들 수 있다.
프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
1. 객체 위주로 모듈성있는 코드 작성
2. 모듈 별로 원하는 것을 재사용할 수 있기에 재사용성이 높음
3. 객체 단위로 확장하므로 확장성이 높음
4. 기존 코드에 새로운 기능을 추가할때 쉽게 할수있다. *유지보수성이 높음