[CS] 프로그래밍 패러다임 - 함수형 프로그램링, 객체지향 프로그래밍, 절자지향 프로그래밍
·
CS
프로그래밍 패러다임프로그래머에게 프로그래밍의 관점을 가지게 해주는 방법론 객체지향 프로그래밍: 상호 작용하는 객체들의 집합함수형 프로그래밍: 상태 값을 지니지 않는 함수 값들의 연속 선언형 프로그래밍‘무엇을’ 풀어내는가에 집중하는 패러다임‘프로그램은 함수로 만들어진 것이다’라는 명제순수함수: 출력이 입력에만 의존하는 것고차함수: 함수가 함수를 값처럼 매개변수로 받아 로직을 생성 일급객체변수나 메서드에 함수를 할당 가능함수 안에 함수를 매개변수로 가능함수가 함수를 반환 가능 객체지향 프로그래밍추상화복잡한 시스템으로부터 핵심적인 개념 또는 기능을 간추려내는 것캡슐화객체의 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것상속성사위 클래스의 특성을 하위 클래스가 이어받아서 재사용하거나 추가, 확장하..
[CS] 디자인 패턴
·
CS
디자인 패턴프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약으로 만들어 놓은 것 싱글톤 패턴하나의 인스턴스를 가지는 패턴인스턴스: 클래스를 바탕으로 메모리에 실제로 생성된 구체적인 실체(객체는 소프트웨어 세계에 구현된 대상을 통칭, 인스턴스는 특정 클래스와의 관계 강조) (장점, 단점)인스턴스를 다른 모듈들과 공유 → 비용⬇️, 의존성⬆️의존성이 높아 단위 테스트를 진행하는 TDD(Test Driven Development)를 진행하기 어려움의존성 주입자를 활용하여 하위 모듈에 대한 의존성을 떨어뜨림 → 테스팅⬆️, 복잡성⬆️데이터베이스 연결 모듈에 많이 활용 팩토리 패턴객체 생성 부분을 떼어내 추상화한 패턴으로, 상위 클래스가 중요한 뼈대를 결정..