전체 글199 5장 객체 지향 프로그래밍 5장 객체 지향 프로그래밍태그비어 있음날짜2024년 4월 23일객체지향 프로그래밍이란 무엇일까?어떤 이들은 캡슐화, 상속, 다형성으로 oo의 본질을 설명한다.이 세 가지 개념을 차례대로 살펴보자캡슐화c에서는 point.h(데이터 구조, 함수)를 사용할 때 struct Point(구현 파일에 있음) 멤버에 접근할 방법이 전혀 없다.즉 완벽한 캡슐화가 가능했다.c++에서는 완벽한 캡슐화가 깨졌다. 멤버 변수를 헤더 파일에(.h) 선언하게 되었다.자바와 c#은 헤더와 구현체를 분리하는 방식을 모두 버렸고 캡슐화는 더 훼손되었다.많은 oo언어가 캡슐화를 강제하지 않는다. ⇒ 즉 oo를 제공한다고 주창한 언어들이 완벽한 캡슐화를 약화시켜왔다.상속oo언어가 고안되기 이전에도 비슷한 기법이 사용되고 있었다.상속만큼 .. 2025. 3. 17. 3장 패러다임 개요 3장 패러다임 개요태그비어 있음날짜2024년 4월 11일구조적 프로그래밍최초로 적용된 패러다임으로 비버 데이크스트라가 발견했다. 데이크스트라는 goto 문장이 프로그램 구조에 해롭다는 사실을 제시하고 if/then/else 와 do/while/until 과 같은 구조로 대체했다.구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.객체 지향 프로그래밍요한 달과 크리스텐 니가드에 의해 등장했다. 이들은 알골 언어와 함수 호출 스택 프레임을 힙으로 옮기면, 함수 호출이 반횐된 이후에도 함수에서 선언된 지역변수가 오랫동안 유지될 수 있음을 발견했다. 함수가 클래스의 생성자가 되었고 지역 변수는 인스턴스 변수, 그리고 중첩 함수는 메서드가 되었다. 함수 포인터를 특정 규칙에 따라 사용하는 과정을.. 2025. 3. 17. 1장 설계와 아키텍처란? 1장 설계와 아키텍처란?태그비어 있음날짜2024년 4월 11일설계와 아키텍처는 아무런 차이가 없다.아키텍처는 보다 더 고수준을 가리킬 때 흔히 사용되지만 실제로 하는 일을 보면 이러한 구분은 무의미하다.저수준의 세부사항과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소다. 개별로 존재할 수 없고 이 둘을 구분 짓는 경계는 뚜렷하지 않다.고수준에서 저수준으로 향하는 의사결정의 연속성만이 있을 뿐이다.좋은 소프트웨어 설계의 목표는?소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다.설계 품질을 재는 척도는 고객의 요구를 만족시키는 데 드는 비용을 재는 척도와 다름없다. 사례 연구 개발자 수는 증가했지만 코드 생산성은 낮아진다. (처음제품보다 40배 많.. 2025. 3. 17. 15. 디자인 패턴과 프레임워크 15. 디자인 패턴과 프레임워크태그비어 있음날짜2024년 5월 22일소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법을 디자인 패턴이라고 부른다.디자인 패턴 정의패턴은 추상적인 원칙과 실제 코드 작성 사이의 간극을 메워주며 실질적인 코드 작성을 돕는다.저저가 동의하는 마틴 파울러의 디자인 패턴 정의패턴은 한 컨텍스트에서 유용한 동시에 다른 컨텍스트에서도 유용한 ‘아이디어’다.캡슐화와 디자인 패턴대부분의 디자인 패턴의 목적은 특정한 변경을 캡슐화 함으로써 유연하고 일관성 있는 협력을 설계할 수 있는 경험을 공유하는 것이다.패턴을 맹목적으로 사용하면 안된다.어떤 컨텍스트에서 어떤 패턴을 적용해야 하는지 다양한 실무경험을 통해 감각을 익히자프레임워크와 코드 재사용프레임워.. 2025. 3. 17. 이전 1 ··· 5 6 7 8 9 10 11 ··· 50 다음