Programming (208) 썸네일형 리스트형 추상클래스 추상클래스 추상클래스 정의- 추상클래스는 서로 다른 유형의 클래스들 간에 공통된 행위를 추출하여 정의한 가상의 클래스이다.공통된 행위들에 대해 일반화시켜 만들었기 때문에 추상 클래스도 상속 구조를 취하게 된다.그리고 일반화 시킨 클래스가 추상 클래스이기 때문에 추상 클래스는 상속 구조에서 슈퍼 클래스에 해당한다.이에 반해 추상클래스의 하위 클래스들을 구체화 클래스(Concrete Class)라고 한다. 추상 클래스는 원래 클래스로 존재한 것이 아니라 여러 클래스들 간에 공통 행위들이 있어서 중복성을 배제하기 위해 일반화 시킨 클래스이기 때문에 실제 객체로 생성할 수 없다.따라서 상속구조에서 객체를 생성할 수 잇는 슈퍼 클래스와 구별하기 위해 추상클래스를 별도로 구분하여 정의하고 있다.예) Payment(.. 상속 상속의 개념 상속의 정의- 객체지향의 가장 큰 특징 가운데 하나가 재사용성의 향상이다. 객체지향 기술이 도입되게 된 이유이기도 함.- 객체지향에서 이러한 재사용성을 향상시키기 위해 등장한 개념이 상속(Inheritance)이다. 상속은 동일한 데이터나 함수의 중복 정의를 피하고 공통된 데이터나 함수를 함 곳에 정의하여 재사용하는 개념이다. 클래스들로부터 공통된 속성과 함숟르을 추출하여 이들이 갖는 새로운 클래스를 정의할 수 있도록 하는 기법.down-top 방식의 의한 상속이라 하며, 일반화(Generalization) 특정 클래스로부터 세부적인 여러 형태의 클래스들로 분류하여 상속을 표현.top-down에 의한 상속이라 하며, 특수화(Specialization) 둘다 상속을 지칭하는 것으로서 상속관계를.. 복합객체 복합객체의 개념복합객체- 객체지향에서 객체란 단순히 데이터와 함수만을 갖는 작은 단위뿐만 아니라 데이터 부분에 다른 객체를 갖을 수 있는데 이와 같은 관계를 복합화(Composition) 또는 복합관계라고 한다. - 복합화는 한 객체가 다른 객체를 포함하는 것으로 집단화(Aggregation)라고도 한다.- 한 객체가 다른 객체를 포함할 때 이 객체를 복합객체. 객체가 다른 객체를 포함할 경우포함하는 객체를 전체객체(Whole Object)포함되는 객체를 부분객체(Part Object) 예) 자동차와 자동차 내의 부품(엔진, 바퀴), 주문과 결제 간의 관계 자동차 객체는 부분객체인 엔진, 바퀴 등과 같은 부분객체들이 모여서 만들어진 객체이다.복합객체인 자동차는 부분객체들이 없으면 자동차로서의 제기능을 다.. 메시지 메시지의 개념-객체와 다른 객체를 접근하기 위한 장치이다.-한 객체가 다른 객체에 서비스를 요청하기 위한 장치이다.-객체.함수명(매개변수) 형태로 구성된다. 메시지의 정의객체지향 프로그램은 객체들의 집합체이다.즉, 서로 상호작용하는 객체들로 구성된 시스템이라고 할 수 있다.따라서 단일 객체 그 자체만으로는 의미가 없으며 하나 이상의 객체들이 모여서 그들 간에 서로 상호 작용해야 객체지향 프로그램으로써 의미가 있게 된다. 객체지향 프로그래밍을 클래스 지향 프로그래밍이 아닌 객체지향 프로그래밍이라고 표현하는 데도 이 철학이 담겨있다.프로그램의 작동 주체는 클래스가 아닌 객체들이며, 이러한 객체들이 모여서 서로 정보를 주고 받으면서 프로그램이 작동되기 때문이다. 이처럼 객체들이 서로 상호작용하기 위해서 객체가.. 백세코딩#소프트웨어 개발의 기본 소프트웨어 개발의 기본'객체지향'의 원리는 현대의 소프트웨어 개발의 핵심인 유지보수하기 쉽고 유연하게 확장되는 소프트웨어를 만드는데 가장 충실한 기초 역할을 한다. OOP의 기본원칙은'하나의 클래스나 모듈은 하나의 기능을 해야 한다.''가능한 확장성을 고려해서 만들어져야 한다''클래스와 모듈 접근하는 인터페이스는 단일해야 한다.''인터페이스는 하나의 기능과 모듈을 불러야 한다''모듈이나 클래스는 메시지를 통해서 연결되어야지 직접호출하거나 직접 연계되어서는 안된다.' 이러한 원리는 SOLID라는 기본적인 원칙소프트웨어 개발자들은 경험이 풍부해지기 전에 '내가 만든 코드가 재사용되기보다는 선배나 다른 사람이 만들어 놓은 코드를 흉내내기' 때문에 SOLID의 원칙에 대해서는 충분한 연습을 한 다음에 다시 생각.. 백세코딩#코드리뷰 코드리뷰개발자에게 코드 리뷰가 어려운 이유 1. 리뷰는 언제나 상호 합의가 된 상황에서 진행되어야 한다.2. 리뷰어의 해당 결과물에 대해서 객관성을 가지고 서로 인지해야 한다3. 개발자 자신의 작업물에 대해서 정말 객관적으로 바라볼 수 있는 작성자가 선정되어야 한다. 소프트웨어 코드는 정량적인 검토와 정성적인 검토를 구분해야 한다.구분이 모호해지면 리뷰는 그 방향성을 상실하게 된다.주목받는 개발 방법론의 추세는 '테스팅'을 주로 하고 있다. SRS와 같은 요구사항에 집중하기 보다는 TDD와 같은 방법으로 완성된 산출물의 품질을 높이는 방법을 주로 사용하고 있다.당장의 성과물을 위해서라면 코드 리뷰보다는 테스팅에 집중하는 것이 더 효율적이다. 빠르게 고속개발하고 테스트를 통해서 버그를 찾은 다음 수정하는 .. 백세코딩 #빅데이터 정보시스템을 다루는 소프트웨어 아키텍트들은 이제 근본적인 데이터의 흐름과 그 가치에 대해서 관여하기 시작했다. 그동안 축적된 경험과 과학적인 판단을 근거로 기업의 정보시스템이 경영진드르이 경영판단 보조수단에서 새로운 사업의 가치와 방향성에 대해서 제시하기 시작했다.데이터 사이언티스트의 시대가 시작됐다. 데이터 사이언티스트?데이터에서 패턴을 찾아내 비즈니스 기회로 만든다라는 목적으로 데이터와 정보를 다루는 사람들이다.그들은 프로그래머이며 통계학자이고 컨설턴트인 사람들이다.빅데이터를 다루는 데이터 사이언티스트들이 이런 통찰력을 갖춘사람으로 성장하려면 기본적으로 IT 기술에 능숙하고 소프트웨어 프로그래밍의 알고리즘에 익숙하며 패턴인식에 대한 경험이 풍부해야 한다.프로그래머가 소프트웨어의 도움을 받아 도달할 수.. 백세코딩 #소프트웨어 개발 방법론과 DevOps 객체지향의 개념객체지향이라는 개념은 어느정도 프로그래밍을 한 사람에게 이해가 되는 개념이다.대부분의 개발자 중에는 객체 중심 분석/모델링(OOA/M)에 대해 믿음이 없는 분들도 많다.객체중심이라는 개념은 '소프트웨어의 정적구조'에 무게중심을 두고 서술하고 있기 때문에 동적인 구성과 환경을 기반으로 소프트웨어를 개발하는 분들에게는 이 개념은 의미가 작게 느껴질 수 밖에 없다.그렇다면 소프트웨어 환경에서 '정적'과 '동적' 구조의 차이는 무엇인가?그것은 데이터의 흐름을 중요시하게 여기는 비즈니스 환경이나 서비스 중심의 환경은 대부분 순간적인 데이터 흐름을 중요시 하게 된다.그런 환경을 '정적' 환경이라고 하고 이 환경에서는 OOA/M는 매우 효과적으로 발현된다.하지만, 실시간으로 데이터가 흐르고 게임과 가이.. 이전 1 ··· 12 13 14 15 16 17 18 ··· 26 다음