JI-DUM
  • 용어사전
  • 아이리포
  • 아이리포카페
  • 데지덤
    • 데이터베이스 개념
      • 데이터베이스 개념
        • DBMS
        • DBS
        • DBMS발전단계
        • 데이터베이스개념
        • 데이터
        • 유일성
      • DBMS
        • 데이터독립성
        • 데이터사전, 카탈로그
        • 객체지향 DBMS
        • 관계형DBMS
        • 객체관계DBMS
      • 데이터베이스 개발과운영
        • 데이터베이스 분석,설계,구축 프로세스
        • 클러스터링 테이블
    • 데이터베이스 설계(1/2)
      • 데이터표준
        • 데이터, 정보, 지식, 지혜
        • 릴레이션, 도메인, 튜플
      • 데이터모델링
        • 기본키
        • 데이터모델링 개념
        • 엔터티
        • 속성
        • 관계
        • 식별자
        • 개념적 데이터모델링
        • 논리적 데이터모델링
        • 물리적 데이터모델링
    • 데이터베이스 설계(2/2)
      • 프로세스 및 상관모델링
        • 업무기능분해와 CRUD 매트릭스
      • 정규화
        • 정규화개요
        • 함수종속성
        • 이상현상
        • 1차 정규화
        • 2차 정규화
        • 3차 정규화
        • 보이스코드 정규화
        • 4차 정규화
        • 5차 정규화
      • 반(역)정규화
        • 반정규화개요
      • DB물리설계
        • DB 물리설계
        • 무결성제약의 조건
    • 인덱싱과 DB프로그래밍
      • 인덱스와 해싱
        • B+Tree
        • B-Tree
        • T Tree구조
        • R Tree구조
        • 인덱스(Index)
        • 해싱개요
      • 관계연산
        • 외부조인 & 세미조인
        • Nested,Sort,Hash 조인
        • 관계대수
      • DB언어
        • 데이터언어
      • SQL
        • SQL:1999/2003
        • SQL 문장의 유형들
        • SQL-집합, 서브쿼리, 아우터
        • Embedded SQL
        • Dynamic SQL
        • SQL 부분범위처리
        • SQL Full table scan
        • SQL실행계획
    • 데이터베이스 운영
      • 트랜잭션
        • 트랜잭션
        • 2pc
        • ACID
        • ACID vs BASE
      • 데이터베이스 복구
        • 장애와 회복기법
      • 데이터베이스 성능
        • 데이터베이스 접근과정
        • 데이터베이스 성능튜닝
        • 데이터베이스 접근
      • 병행제어(동시성제어)
        • 동시성제어개요
        • 잠금(Lock)
        • 2PL
        • Deadlock
        • 낙관적제어(Validation)
        • Isolation Level
    • 분석계 및 빅데이터기술
      • 빅데이터기술
        • NoSQL
        • No-SQL 데이터모델링
    • 데이터베이스 종류와 보안
      • 데이터베이스 종류
        • 멀티미디어DB
        • 분산 데이터베이스
        • XML 데이터베이스
        • 공간 데이터베이스
        • 메모리 데이터베이스
        • 임베디드 데이터베이스
        • 다중레벨 데이터베이스
        • 이동객체 데이터베이스
        • 모바일 데이터베이스
  • 소지덤
    • 소프트웨어
      • 소프트웨어
        • ISO25000, SQUARE
        • ISO/IEC 12207
        • Good S/W인증
        • CMMi
        • PSP/TSP
        • ITSM
        • ITIL
        • 객체지향
        • 모듈화, 결합도/응집도
        • 3R
        • UML
        • SW 아키텍처
        • 품질보증
        • Peer Review
        • 형상관리
        • SW 신뢰성과 가용성
        • SW 유지보수
        • SOA
        • OOP 5대원칙
        • AOP 웹공학
        • SW Metrics
        • 코딩
        • 코딩오류, 코드스멜, 리팩토링
        • SWEBOK
        • 스프링프레임웍
        • SW비주얼라이제이션
  • 네지덤
    • 네트워크
      • 네트워크
        • CAN(Controller Area Network)
        • NFC
        • 홈네트워크 미들웨어
        • 성능향상 WLAN 표준
        • WAVE
        • WPAN
        • 망중립성
        • 통신망
        • 차량통신(V2X: Vehicle to Everything)
        • DWDM
        • Femtocell
        • 세션계층
        • 저전력광역무선망(LPWAN)
        • 6LoWPAN
        • SDR
        • 데이터링크 계층
        • XMPP
        • VLAN
        • 스마트안테나
        • 통신모델
        • CIDR
        • 5G (IMT2020)
        • 아날로그/디지털 신호
        • 사물통신(사물인터넷, IoT: Internet of Things)
        • CSMA/CA
        • HSPA+
        • 통신이론
        • FBMC(Filter Bank Multi Carrier)
        • NFV(Network Function Virtualization)
        • 변조 (Modulation)
        • LTE
        • TRS
        • NOMA(Non Orthogonal Multiple Access)
        • 응용통신
        • TCP/IP 흐름제어
        • CoIP
        • 오버레이네트워크
        • SDN(Software Defined Network)
        • 재난통신
        • 인터네트워킹
        • BCN
        • VPN
        • LTE-A(Advanced)
        • LIN(Local Interconnect Network)
        • Ad-hoc
        • QoS
        • GSM/CDMA
        • IVN(In Vehicle Network)
        • SON
        • 홈네트워크
        • WiFi(WLAN)
        • DSRC
        • WLAN
        • MVNO
        • TCP/IP
        • NB-IoT(NarrowBand)
        • TDMA, FDMA, CDMA
        • NFV
        • 전송계층
        • 소물통신(IoST: Internet of Small Things)
        • IPv4/IPv6
        • CR
        • 물리계층
        • CoAP
        • NAT
        • MIMO
        • 다중화/다중접속
        • IP Multicast
        • LTE-A
        • 통신기술
        • MEC(Mobile Edge Cloud)
        • CSMA/CD
        • HSDPA
        • USB3.0
        • 이동무선백홀
        • OpenFlow
        • 오류정정기법 FEC, BEC
        • 4세대 이동통신
        • M2M 외
        • C-RAN(Cloud Radio Access Network)
        • LTE기반 국가재난안전무선통신망(PS-LTE)
        • TCP / IP
        • VoIP
        • P2P
        • 네트워크 슬라이싱(Network Slicing)
        • ITS/C-ITS
        • 계층별 네트워크 프로토콜
        • USN
        • Tunneling
        • LTE(Long Term Evolution)
        • FlexRay
        • RFID
        • FTTH
        • 이동통신
        • V2V
        • WBAN
        • ISM
        • 기본통신
        • V2I(Vehicle to Infrastructure)
        • 회선교환 vs 패킷교환
        • FMC, FMS
        • 어플리케이션계층
        • LoRa(Long Range)
        • TDM, FDM, WDM
        • SDN
        • 네트워크계층
        • LwM2M
        • DHCP
        • OFDM
        • OSI 7 Layer
        • DNS
        • Wibro
        • 변조/복조
        • MQTT
        • 라우팅 프로토콜
        • HSUPA
        • 통신원리
        • IBFD(In Band Full Duplex)
        • 양자통신
        • 네트워크 부호화
        • WCDMA
        • IEEE1394
        • Massive-MIMO
        • SDN(Software Defined Network)
        • TCP/IP 혼잡제어
        • Mobile IP
        • 웹가속기
        • NFV(Network Function Visiulation)
        • 국가재난안전통신망
        • 계층별 장비
        • 소프트스위치
        • CDN
        • 5G/IMT-2020
        • MOST
        • OSI 7 Layer
        • 무선매쉬네트워크
        • NMS
        • 4G
      • 네트워크 기출문제
        • 네트워크 감리사 기출문제[2/2]
        • 네트워크 기술사 기출문제[2/2]
        • 네트워크 감리사 기출문제[1/2]
        • 네트워크 기술사 기출문제[1/2]
  • 컴지덤
    • 컴퓨터 구조
      • 컴퓨터 구조
        • VTL
        • 멀티코어
        • 프로세스 성능향상
        • 병렬컴퓨터
        • 길더의 법칙(Guilder's Law)
        • 무어의 법칙
        • 안드로이드 (Android)
        • Fault Tolerant, High Availability
        • Network Storage
        • CPU 성능평가 (HW용량산정)
        • CISC & RISC
        • 폰 노이만형 아키텍처, 하버드 아키텍처
        • 암달의 법칙 (Amdal's Law)
        • JVM ,GC
        • 차세대 저장장치
        • 반도체 기억장치
        • 파이프라인 해저드 (Pipeline Hazard)
        • 명령어
        • 파레토의 법칙
        • 멧칼프의 법칙 (Metcalfe’s Law)
        • 가상화
  • 경지덤
    • IT경영
      • IT경영
        • IT 거버넌스
        • ISO 38500
        • COBIT
        • IT 경영전략
        • SEM
        • VBM
        • 가상기업
        • 전략수립도구
        • EA
        • EAP
        • EA 참조 모델
        • ISP/ISMP
        • 전자정부표준프레임웍
        • 정보기술아키텍처 성숙도 모델 v3.1
        • ERP
        • GSI
        • ALM
        • APM
        • EAI
        • B2Bi
        • ITSM
        • ISO20000
        • ILM
        • ITAM
        • SAM
        • ITO
        • BPO
        • Offshoring Outsourcing
        • EO
        • MDM
        • MRO
        • ECM
        • RTE
        • BPM
        • Social BPM
        • BRE
        • BAM
        • CRM
        • CEM
        • EIP
        • X-Commerce
        • IT투자분석
        • BSC
        • SLA, SLM, SOW
        • BCM, BPC, DRS
        • DRS
        • SCM
        • PLM
        • CIM
        • MES
        • IT Compliance
        • 바젤, 사베인즈 옥슬리
        • 그린 IT
        • 그린 IT 인덱스
        • TRIZ
        • Cobit 5.0
        • 산업혁신 3.0
        • Open Innovation
  • 관지덤
    • 프로젝트관리
      • 프로젝트관리 개요
        • 조직관리론
        • 프로젝트 관리 개요
        • 프로그램관리, 포트폴리오관리
        • PMO
        • PM
        • 프로젝트 생애주기와 조직
        • 프로젝트 관리 프로세스
      • 프로젝트관리 영역
        • 프로젝트 통합관리
        • 프로젝트 범위관리
        • 프로젝트 일정관리
        • CPM
        • CCM
        • 프로젝트 원가관리
        • 프로젝트 품질관리
        • 프로젝트 인적자원 관리
        • 프로젝트 의사소통 관리
        • 프로젝트 위험관리
        • 프로젝트 조달관리
      • 프로젝트관리 기출문제
        • 프로젝트관리 감리사 기출문제[1/4]
        • 프로젝트관리 감리사 기출문제[2/4]
        • 프로젝트관리 감리사 기출문제[3/4]
        • 프로젝트관리 감리사 기출문제[4/4]
        • 프로젝트관리 기술사 기출문제
  • 테지덤
    • 테스트
      • 테스트개요
        • TDD
        • SW 테스트의 개요
        • V-Diagram
        • SW 테스트의 유형
        • SW 테스트 프로세스
      • 프로젝트 단계별 테스트
        • 통합테스트
        • 성능테스트 – Little’s law 포함
        • 단위 테스트
        • 기능테스트 / 비기능테스트
        • 시스템테스트
        • 인수테스트
      • 다양한 테스트 유형
        • Black Box Text & White Box Test
        • 경험기반 테스트
        • 리스크 기반 테스트
        • 유스케이스 테스트
        • 경계값 분석(Boundary Value Analysis)
        • 조건커버리지(Condition Coverage)
        • 구조기반 테스트 – 테스트커버리지
        • Mutation Test(비버깅)
        • 유지보수 테스트
        • 조합테스트
        • 상태전이테스트
        • 등가분할 테스트(Equivalence Partitioning)
        • 결정 커버리지(Decision Coverage)
        • 탐색적 테스팅
        • 확인/리그레션테스트
        • 분류트리기법테스트
        • 결정테이블테스트
        • 명세기반 테스트(Specification-based)
        • 구문커버리지
      • 테스트지원
        • Peer Review
        • Cyclomatic Complexity(McCabe)
        • 리뷰
        • Record & Replay
        • 정적기법
        • 테스트케이스(Test Case)
      • 테스트인증평가
        • TPI
        • TMMi
        • TMM(Test Maturity Model)
      • SW오류종류 및 기타
        • 테스트오라클
        • 퍼지 테스트
        • 테스트 주요용어 정리
        • 퍼즈 테스팅(Fuzz Testing)
        • 글로벌화 테스트
        • 소프트웨어 오류
        • 크라우드테스트
        • Sanity Test
        • 임베디드 테스트
  • 돈지덤
    • 비용산정
      • 비용산정
        • COCOMO2
        • Function Point 절차 및 규칙 상세 2-2
        • SW사업대가 산정법
        • COCOMO
        • Function Point 절차 및 규칙 상세 2-1
        • Function Point 문제풀이
        • Function Point(ISO/IEC 14143) 개요
  • 분지덤
    • 분석
      • 분석
        • DW모델링
        • Mobile Web 2.0
        • 기계학습(Machine Learning)
        • EDW
        • SOAP
        • 전문가시스템 (Expert System)
        • REST
        • 트롤리 딜레마
        • AJAX
        • 인공지능 개념
        • Map/Reduce
        • 웹서버 부하분산
        • NoSQL
        • RDF
        • DW 어플라이언스
        • 퍼지
        • Apriori 알고리즘
        • 프로세스마이닝
        • WebOS
        • 몬테카를로 트리 서치 (Monte Carlo Tree Search)
        • 데이터마이닝-신경망
        • XQuery
        • 데이터마이닝-연관규칙(Association)
        • XML Schema
        • KNN (K Near Neighborhood)
        • OLAP
        • HyWAI
        • 로지스틱 회귀분석(Logistic Regression Analysis)
        • ETT
        • Web2.0
        • 유사도측정-유클리디안거리, 코사인유사도, 마할라노비스거리, 자카드계수
        • 데이터웨어하우스(DW)
        • SOA
        • 킬 스위치
        • JSON
        • 튜링 테스트
        • Advanced Analytics
        • Node.js
        • 몽고 DB
        • SPARQL
        • 하둡
        • Ontology
        • 웹마이닝
        • 프로덕션시스템
        • 연관분석
        • 지지도/신뢰도/향상도
        • DOM/SAX
        • 기억기반추론(MBR)
        • XLL
        • 은닉마르코프모델(HMM, Hidden Marcov Model)
        • 데이터마이닝-클러스터 탐지
        • DTD
        • 의사결정트리(Decision Tree)
        • BI, Bi2.0
        • WOA
        • 회귀분석(Regression Analysis)
        • ODS
        • UDDI
        • 추천엔진 (Recommendation Engine)
        • 웹서비스
        • 아실로마 인공지능 원칙
        • ESB
        • 인공지능 역사
        • HDFS
        • 웹스토리지
        • 카산드라
        • Agent
        • 빅데이터
        • Semantic Web
        • 앙상블학습
        • 텍스트마이닝
        • 인공지능
        • 군집화 K-means
        • 데이터마이닝-분류
        • XRX
        • 데이터마이닝-연속규칙
        • XPATH
        • 베이즈 정리
        • 데이터마이닝의 개요와 절차
        • XML
        • 서포트 벡터 머신(Support Vector Machine)
  • 시지덤
    • 보안
      • 보안
        • IAM
        • 생체인식
        • OTP
        • 빅데이터 보안
        • SIEM
        • 무선랜보안
        • Secure Coding
        • 세션 하이재킹
        • IDS
        • XSS
        • APT 공격
        • DOI, INDECS
        • DRM
        • 사회공학
        • PMI
        • EAM
        • 접근통제
        • VPN(IPSec, MPLS, SSL)
        • 유비쿼터스 보안
        • ESM
        • 스마트그리드 보안
        • Secure OS
        • Forensic
        • Firewall
        • OWASP
        • DDOS
        • Watermarking
        • CC
        • 데이터베이스 보안
        • PKI
        • SSO
        • AAA
        • 암호화(DES, SEED, ARIA 등)
        • RFID 보안
        • Secure SDLC
        • 클라우드 컴퓨팅 보안
        • IPS
        • SQL Injection
        • 관리적보안, 물리적보안, 기술적보안
        • 해킹
        • SET
        • MPEG21
        • ISO27001
        • 개인정보보호법
  • 오지덤
    • 운영체제
      • 운영체제
        • System Call
        • Disk Scheduling
        • Memory Mapped IO, I/O Mapped I/O
        • Thrashing
        • 메모리 관리기법
        • Banker’s 알고리즘
        • Race Condition
        • 프로세스, 쓰레드
        • 유닉스 파일시스템
        • 가상메모리
        • 메모리 인터리빙
        • Locality
        • 우선순위 역전
        • 세마포어, 뮤텍스
        • 인터럽트
        • 모노리틱 커널, 마이크로 커널
        • 버디메모리 할당
        • RAID
        • DMA (Cycle Stealing)
        • Cache Memory
        • 단편화
        • CPU Scheduling
        • 교착상태(Deadlock)
        • Context Switching
        • 운영체제
  • 컨지덤
    • IT컨설팅
      • IT컨설팅
        • Value Proposition
        • McKinsey’s 7S’ model
        • 시장 세분화
        • 시나리오 기법(Scenario Planning)
        • 3C분석
        • TRL
        • 특허
        • Logic Tree
        • Matrix 분석 기법
        • 기술 수용 주기 분석-Chasm, 경쟁 포지셔닝 나침반
        • 벤치마킹
        • 제품개발의 손익분기점 분석(BEP)
        • 마이클포터의 5 Forces 분석
        • SWOT분석
        • PI
        • 정보기술 적용가능성분석
        • TRIZ
        • 게임 이론-동시적 게임의 손익행렬,전략적 게임보드
        • 포트폴리오 관리기법-BCG Growth/Share Matrix
        • Porter의 경쟁 전략
        • Value Chain
        • 사업의 경제성 분석
        • 거시환경분석
        • 가트너하이퍼사이클
        • 상표권
        • MECE/LISS
        • 6 Sigma
  • 유지덤
    • UML/DF
      • UML
        • UML의 개요
        • 객체지향
        • 다형성
        • 추상클래스
        • 인터페이스
        • UML
        • UML 2.0
        • UML의 확장
        • 4+1 view
        • UML 다이아그램
        • Use Case 다이아그램 – 요구사항부터 구현까지
        • Sequence 다이아그램
        • Class 다이아그램
        • 액티비티 다이어그램
        • State Machine 다이어그램
        • 클래스와 자바코드
        • OCL (Object Constraint Language)
      • DF
        • 디자인패턴의 개요
        • 상속과 위임
        • Abstract Factory Pattern
        • Factory Method Pattern
        • Prototype Pattern
        • Adapter Pattern
        • Bridge Pattern
        • Composite Pattern
        • Decorator Pattern
        • Facade Pattern
        • Fly Weight Pattern
        • Chain of Responsibility Pattern
        • Command Pattern
        • Interpreter Pattern
        • Iterator Pattern
        • Mediator Pattern
        • Memento Pattern
        • Observer Pattern
        • State Pattern
        • Strategy Pattern
        • Template Method Pattern
        • Visitor Pattern
        • 헷갈리는 디자인패턴 간단한 구분
        • 프레임워크, 디자인패턴, 아키텍처 스타일의 비교
        • POSA(GoF 디자인패턴외)
        • J2EE
  • 알지덤
    • 알고리즘
      • 자료구조
        • 스택
        • 트리 (Tree)
        • 자료구조
        • 연결 리스트 (Linked List)
        • 그래프
      • 알고리즘
        • 철학자들의 만찬
        • 문자열 탐색
        • 순차 탐색 (Sequential Search)
        • 힙 정렬 (Heap Sort)
        • 삽입 정렬 (Insert Sort)
        • 백트래킹 알고리즘
        • 최단 경로 탐색 알고리즘
        • 해시 탐색 (Hash Search)
        • 계수 정렬 (Counting Sort)
        • 합병 정렬 (Merge Sort)
        • 선택 정렬 (Selection Sort)
        • 알고리즘
        • 논리회로
        • 최소신장트리 알고리즘
        • 이진 탐색 (Binary Search)
        • 기수 정렬 (Radix Sort)
        • 퀵 정렬 (Quick Sort)
        • 버블 정렬 (Bubble Sort)
  • 신지덤
    • 신기술
      • 신기술
        • 압축표준(MPEC-H)
        • SoC, SoB, SiP
        • 초연결사회
        • Bluetooth 5.0
        • OVF
        • SIEM
        • FMEA
        • FDS
        • 하이퍼바이저
        • 잊혀질 권리
        • 소셜러닝
        • 미라이 봇 넷
        • S/W대가산정가이드-2013
        • 빌딩로보틱스
        • HW용량산정
        • 에너지하베스팅
        • NFC (Near Field Communication)
        • Open API
        • AMI
        • CKAN
        • e-Pub
        • 마이그레이션
        • 오픈소스(라이선스 비교)
        • 스미싱
        • PaaS-TA(파스타)
        • 창조경제와 IT
        • ISO 29119
        • Phishing
        • Beacon
        • ITS
        • 플럽드 러닝
        • LOD (Linked Open Data)
        • Contents 2.0
        • CASB (Cloud Access Security Broker)
        • 증강인간/인지증강
        • 가시광통신
        • 오픈스택
        • 웹접근성 법제화
        • FEMS
        • Dublin core
        • 사이버 망명
        • SW기능 안정성
        • IPCC
        • 양자컴퓨터
        • HTML 5
        • Smart Work
        • 클라우드 DR
        • 증강현실 (Augmented Reality)
        • Telematics
        • IoT 표준화 현황 및 추진전략
        • 튤립버블, 알트코인
        • SDN
        • BIM
        • 2D 바코드(2D Barcord)
        • 데이터 사이언티스트
        • AUTOSAR
        • EMS (Enterprise Mobile Solution)
        • 소셜 CRM
        • 린 스타트업
        • 스마트그리드
        • O2O(Online to Offline) 서비스
        • FMEA
        • LAS
        • 4차산업혁명 보안
        • 서비스 동향 및 사회적 이슈
        • 썬더볼트 2
        • ESS
        • 메타버스
        • NOSQL
        • ISO26262
        • EMR, HL7, PACS, DICOM
        • 전력절감 컴퓨팅 기술
        • 카파 아키텍쳐
        • SNS
        • 스낵컬처
        • CKAN
        • IMS
        • 표준화
        • 드론 플랫폼
        • TSM
        • 에너지 그리드
        • Streaming DBMS
        • 에너지관리
        • 제니비 연합
        • 스턱스넷
        • 정보보안 거버넌스 표준 ISO27014:2013
        • 파티셔닝
        • 문서중앙화
        • 스마트 워치
        • 탈중심웹 (Decentralized Web)
        • ENUM
        • CPS(Cyber Physical System) 활용분야 및 최적화 전략
        • 드론 보안
        • NBA
        • 하둡 3.0
        • SW 가시화
        • 자율주행 자동차 - V2X
        • IPv6보안
        • FTL
        • HDFS 2.0
        • 디지털교과서
        • 스파크
        • 린 6 시그마
        • BaaS
        • 스마트팩토리
        • Tactile Internet
        • Wifi P2P WIFI Direct
        • 하둡에코 (sqoop)
        • 557(금융권)
        • LKAS
        • 지능형서비스로봇(URC)
        • KWCAG 2.0
        • Hadoop 2.0
        • Ubiquitous Computing
        • 아이디어 플랫폼
        • 디지털 홀로그램
        • ISO 26262
        • 보안 MCU
        • 레그테크
        • MEAP
        • 하둡에코 (Spark)
        • 망분리(지침과 금융권이슈)
        • 자율주행 5대서비스,10대부품
        • iOS (아이폰 OS)
        • MMT
        • Wear Leveling
        • RTSP
        • 핀테크
        • 가상현실
        • 오픈스택
        • 빅데이터 보안
        • DMBok
        • 디지털 큐레이션
        • 하둡에코 (Chukwa),CPS(Cyber Physical System) [SAC]
        • 분리/분할발주 법령내용
        • HEVC(MPEC-H Part2)
        • User Interface
        • MPEG
        • 블루본
        • RFID
        • 운영감리
        • 증강현실 (Augmented Reality)
        • 감성 ICT 기술 및 산업동향
        • 도커(Docker) [이컨엘엔허]
        • SWEBOK
        • 소셜 TV
        • IoT 보안 가이드라인
        • MPEC-UD (User Description)
        • OLED
        • 가트너 10대기술
        • Bluetooth 4.0
        • OSGi
        • IoT보안
        • FTA
        • VDI
        • 가상화 (Type1/2, 대상)
        • 오픈소스 도입 전략 및 이슈
        • 비싱
        • 하둡에코 (YARN)
        • PMO-기준(법령)
        • 그린인덱스
        • GRC
        • RFID
        • NUI
        • ESS
        • CKAN, DKAN, OGPL, Socrata, Junar
        • e-Discovery
        • 클라우드테스트
        • 오픈소스(오픈소스 도입 전략 및 이슈)
        • 카산드라 DB
        • Open Cloud Foundry vs Open Shift(PaaS)
        • CKAN
        • 의무화 동향
        • ISO 26000
        • 개인정보 익명화
        • WPAN (Wireless Personal Area Network)
        • IPTV 보안
        • MOOC
        • 탈중심웹 (Decentralized Web)
        • 재난통신
        • SECaaS(Security As A Service)
        • VR VS AR
        • UMB
        • 개방형 IoT 플랫폼 (모비우스 기반)
        • 반응형 웹(CSS3, 미디어쿼리)
        • CEMS
        • 3D TV
        • 사이버 상조
        • 자동차 사이버 보안 위협
        • IoT (Internet of Things)
        • SDX(SDN,SCDC,SDS,SDR)
        • 린 6 시그마
        • 스마트 카드
        • 모바일클라우드보안
        • 증강현실 (Augmented Reality)
        • M2M
        • IoT 플랫폼
        • 안티 드론
        • Wearable Computer(구글glass)
        • 무선충전기술
        • ARC (Augmented Reality Continuum)
        • 빅데이터 큐레이션
        • ASIL
        • emergent EA
        • 하둡2.0, 하둡에코
        • 그로스 해킹(코호트:(cohort)
        • 마이크로 블로그
        • 오픈소스 하드웨어
        • FTA
        • IP-USN
        • 4차 산업혁명 [디생물]
        • 블록체인 기반의 가상화폐
        • 모바일 가상화
        • 스마트 미터링
        • 증강현실(AR)
        • 컬럼기반 DB
        • MirrorLink: CCC
        • u-Health
        • CCN
        • 람다아키텍쳐
        • SNG
        • 디지털 발자국
        • 오픈데이터 플랫폼
        • GPS
        • 제조업 혁신 3.0
        • 드론 정책
        • gTLD
        • 스마트 (파워)그리드
        • 악성코드패턴
        • C-ITS
        • 내부통제
        • CISO
        • 샤딩
        • 모바일 오피스, 스마트 오피스
        • 샌드박스
        • WebRTC
        • DMB
        • CPS(Cyber Physical System) 핵심기술
        • AI 스피커
        • SDP
        • 하둡에코 (Pig)
        • Anonymous
        • 자율주행 자동차 - WAVE
        • DAP/LDAP
        • 해커톤
        • HDFS
        • 디지털 홀로그래픽
        • 마이핀
        • 린 UI/UX
        • ISO 61508
        • IoT 보안 인증제
        • 제로UI
        • 데이터 압축기법
        • 하둡에코 (Kafka)
        • 영상기기보안
        • 자동차 자율주행 - ADAS
        • OSS (Open Source Software)
        • HTTP 적응적 스트리밍
        • 빅데이터기술상세 Map/Reduce
        • SVC
        • SW BMT
        • HCI
        • AUTOSAR
        • 미라이 봇 넷
        • 리걸테크(Legaltech)
        • RCS
        • 하둡에코 (Flume)
        • 취약점 발견자 현상금
        • 자율주행
        • 안드로이드 아키텍처
        • HEVC
        • SSD
        • RTLS
        • 매그니튜드 익스플로잇 킷
        • 가상현실
        • 그로쓰해킹
        • 도커(Docker) 아키텍처
        • REBok
        • 아키텍쳐 비즈니스 사이클
        • 스마트팩토리
        • MMT(MPEC-H Part1)
        • User eXperience
        • Node.js
        • ZING
        • PACS
        • 분할발주
        • Hazop
        • 스트레처블 디스플레이 기술
        • LXC (LinuX Container)
        • 디지털소멸
        • 소셜커머스
        • 보안 MCU
        • SP인증
        • 압축표준(MPEG-21)
        • ODF vs OOXML
        • ISMS
        • Zigbee
        • SOAP
        • CSB
        • 초연결 사회, 데이터 거래소, Data 브로커
        • GRID Computing
        • 인티크레이션
        • 오픈소스(오픈소스화)
        • 큐싱
        • 하둡에코
        • BYOD(CYOD, BYON)
        • 그린네트워킹
        • Parming
        • 비콘 플랫폼 (beacon platform)
        • N-Screen
        • WAVE
        • 오픈데이터 플랫폼
        • e-Book
        • 클라우드 개발방법론
        • BCI
        • 무선전력전송기술
        • 오픈스택 동향
        • 정부 3.0
        • HEMS
        • ISO 26262
        • 인터넷 윤리
        • ISO 61508
        • IPTV, Mobile IPTV
        • 지능형 메모리 반도체(PIM)
        • WebRTC
        • 인포그래픽스
        • DRaaS
        • HMD (Head Mounted Display)
        • TPEG
        • 모비우스(Mobius)
        • LTE-A(광대역과 비교)
        • BEMS
        • 3D Chip
        • 잊혀질 권리
        • ASPICE
        • HCI (Human Computer Interaction)
        • MEMS
        • 린 UI/UX
        • 마이크로 그리드
        • 퍼블릭클라우드보안
        • Hazop
        • LBS
        • PLM
        • 드론정책, 표준
        • 3D Printer/4D
        • 에너지하베스팅
        • 라이프 로그(Life Log)
        • 샤딩
        • ISO 26262
        • u-Learning
        • 하둡
        • 그로스 해킹(Growth Hacking)
        • 소셜표준
        • 자동차 자율주행
        • 초연결 사회, 데이터 거래소, Data 브로커
        • IPC
        • 4차 산업혁명 [경계가 없어짐 / 융합]
        • 안티드론
        • BCI
        • 마이크로그리드
        • 도메인테스트
        • Appliance
        • IVI/OAA/지니비
        • Bio-Infomatics
        • NFV
        • 리플리케이션
        • SNA
        • 스마트교육
        • LOD (Linked Open Data)
        • Femtocell
        • 인더스트리 4.0
        • 드론보안
        • 스토리지 재해복구
        • 엔터프라이즈 하둡
        • 코드 난독화(마스킹)
        • 라이다(LiDAR, Light Detection And Ranging)
        • RPD
        • 칸반
        • HDFS 1.0/HDFS 2.0 기능비교 (Hadoop2.0)
        • 멀티모달 인터페이스
        • STORM
        • HTML 5
        • DLNA
        • CPS(Cyber Physical System) [SAC]
        • 초연결 신뢰 네트워크
        • Application Processor
        • 하둡에코 (Hive)
        • xDDOS(PDOS, DDOS, EDOS 등)
        • C-V2X
        • APT (Advanced Persistent Threat)
        • ACID / BASE
        • Hadoop 3.0
        • U-City 보안
        • 스마트팩토리
        • 린 스타트업
        • ASIL
        • IoT 보안 가이드라인
        • 인슈어 테크
        • Cloud Service Brokerage
        • 하둡에코 (Storm)
        • 보안거버넌스
        • 자율주행
        • CCL (Creative Commons License)
        • DASH
        • 3D D램
        • SBC
        • 크라우드 펀딩
        • MR
        • 오픈스택2
        • IoT보안(키교환)
        • PMBok 5th, ISO 21500, 비교
        • OTT
        • 하둡에코 (Mahout)
        • 보안사고(3.20, 6.25)
        • 3D Audio(MPEC-H Part3)
        • X Internet vs RIA
        • H.264/AVC
        • FTL(Flash Translation Layer)
        • RSS
        • CI
        • HMD (Head Mounted Display)
        • 사이버공격 역추적 기술동향
        • 도커(Docker) 컨테이너 생성 관리 기술
        • BABok
        • Zero Client / Thin Client
        • IoT 보안 인증제
  • 인지덤
    • 인공지능
      • 인공지능 개요
        • 인공지능 개요
        • 인공지능 역사
        • 인공지능 평가 - 튜링 테스트
        • 인공지능 아키텍처 - 규칙기반 모델(Rule-Based Model)
        • 인공지능 아키텍처 - 전문가시스템 (Expert System)
        • 인공지능 아키텍처 - 추천엔진 (Recmmendation Engine), 협업필터링
        • 인공지능과 윤리 – 트롤리 딜레마
        • 인공지능과 윤리 – 아실로마 인공지능 개발 원칙
        • 인공지능과 윤리 – 킬 스위치
        • 유한 오토마타
        • 지능형 에이전트
        • 유전자 알고리즘
      • 인공지능 수학이론(통계와 확률)
        • 상관분석(correlation analysis)
        • 유사도측정(Similaraty Measure)
        • 회귀분석(Regression Analysis)
        • 로지스틱 회귀분석(Logistic Regression Analysis)
        • 연관분석(Association Analysis)
        • Apriori 알고리즘
        • 앙상블학습(Ensemble learning)
      • 머신러닝
        • 기계학습(Machine Learning) 개요
        • 의사결정트리(Decision Tree)
        • KNN (K Near Neighborhood)
        • 서포트 벡터 머신(Support Vector Machine)
        • 베이즈 정리
        • 클러스터링 K-means
        • 밀도추정방식 DBSCAN Clustering
        • 차원축소, Feature Extraction, PCA, ICA
        • 은닉마르코프모델(HMM, Hidden Marcov Model)
        • 몬테카를로 트리 서치 (MCTS, Monte Carlo Tree Search)
        • Q-Learning
      • 딥러닝
        • 딥러닝 개요
        • 신경망 알고리즘 원리 - 헵의 규칙
        • 신경망 알고리즘 원리 - 퍼셉트론
        • 신경망 알고리즘 원리 - 아달라인
        • 신경망 학습 - 활성화 함수
        • 신경망 학습 - Feed Forward Neural Network
        • 신경망 학습 - 역전파(Backpropagation)
        • 신경망 최적화 - 기울기 소실 (Vanishing Gradient Problem)
        • 신경망 최적화 - 경사하강법(Gradient Descent)
        • 학습 최적화 - 적합(overfitting), 부적합(underfitting)
        • ANN, DNN
        • CNN (Convolutional Neural Network)
        • RNN (Recurrent Neural Network)
        • LSTM, GRU
        • RBN(Restrict Boltzmann Network)
        • DBN(Deep Brief Network)
        • DHN(Deep Hyper Net)
        • DQN(Deep Q-Network)
        • GAN(Generative Adversarial Network)
      • 알고리즘 평가
        • 혼동행렬 (Confusion Matrix)
        • ROC 커브
        • Cross Validation
        • 통계적 가설검정
      • 분야별 지능기술
        • TF-IDF
        • Tokenization, n-gram, 자연어처리
        • Word2vec
        • SNA
      • 참고. AI플랫폼
        • IBM Watson
        • 텐서플로우(Tensor flow)
        • Learning4J
        • Mahout
        • CNTK
        • 인공지능 라이브러리 – MATLAB
        • 인공지능 라이브러리 – Theano
        • 인공지능 라이브러리 – Caffe
        • 엑소브레인 (ExoBrain)
        • 딥뷰 (Deepview)
        • MS 코타나
  • 통지덤
    • 통신이론
      • 통신이론
        • 통신이론
        • 통신이론 – 통신원리
        • 통신이론 – 통신기술
        • 통신이론 – 통신기술 – 아날로그/디지털 신호
        • 통신이론 – 통신기술 – 변조/복조
        • 통신이론 – 통신기술 – 다중화/다중접속
      • 통신모델
        • 통신모델
        • 통신모델 – OSI 7 Layer
        • 통신모델 – OSI 7 Layer - 물리계층
        • 통신모델 – OSI 7 Layer – 데이터링크 계층
        • 통신모델 – OSI 7 Layer – 네트워크계층
        • 통신모델 – OSI 7 Layer – 전송계층
        • 통신모델 – OSI 7 Layer – 세션계층
        • 통신모델 – OSI 7 – 프리젠테이션계층
        • 통신모델 – OSI 7 – 어플리케이션계층
        • 통신모델 – TCP/IP
      • 통신망
        • 통신망
    • 무선통신
      • 기본통신
        • 기본통신
        • 기본통신 – WiFi(WLAN)
        • 기본통신 – 성능향상 WLAN 표준
      • 이동통신
        • 이동통신
        • 이동통신 – GSM/CDMA
        • 이동통신 – 4G
        • 이동통신 – 4G – LTE(Long Term Evolution)
        • 이동통신 – 4G – LTE-A(Advanced)
        • 이동통신 – 5G/IMT-2020
        • 이동통신 – 5G/IMT2020 – 네트워크 슬라이싱(Network Slicing)
        • 이동통신 – 5G/IMT2020 – SDN(Software Defined Network)
        • 이동통신 – 5G/IMT-2020 – NFV(Network Function Visiulation)
        • 이동통신 – 5G/IMT2020 – C-RAN(Cloud Radio Access Network)
        • 이동통신 – 5G/IMT2020 – NOMA(Non Orthogonal Multiple Access)
        • 이동통신 – 5G/IMT2020 – Massive-MIMO
        • 이동통신 – 5G/IMT2020 – 이동무선백홀
        • 이동통신 – 5G/IMT-2020 – FBMC(Filter Bank Multi Carrier)
        • 이동통신 – 5G/IMT2020 – IBFD(In Band Full Duplex)
        • 이동통신 – 5G/IMT2020 – MEC(Mobile Edge Cloud)
      • 사물통신
        • 사물통신(사물인터넷, IoT: Internet of Things)
        • 사물통신 - MQTT
        • 사물통신 - CoAP
        • 사물통신 – XMPP
        • 사물통신 – LwM2M
      • 소물통신
        • 소물통신(소물인터넷, IoST: Internet of Small Thinsg)
        • 소물통신 – 저전력광역무선망(LPWAN)
        • 소물통신 – 저전력광역무선망 – LoRa(Long Range)
        • 소물통신 – 저전력광역무선통신 – NB-IoT(NarrowBand)
      • 차량통신
        • 차량통신(V2X: Vehicle to Everything)
        • 차량통신 – V2I(Vehicle to Infrastructure)
        • 차량통신 – V2I - DSRC
        • 차량통신 – V2I - WAVE
        • 차량통신 - V2V
        • 차량통신 – IVN(In Vehicle Network)
        • 차량통신 – IVN – CAN(Controller Area Network)
        • 차량통신 – IVN - FlexRay
        • 차량통신 – IVN – LIN(Local Interconnect Network)
        • 차량통신 – IVN – MOST
        • 차량통신 – ITS/C-ITS(Cooperative Intelligent Transport System)
      • 재난통신
        • 재난통신
        • 재난통신 - 국가재난안전통신망
        • 재난통신 - LTE기반 국가재난안전무선통신망(PS-LTE)
      • 응용통신
        • 응용통신
        • 응용통신 – SDN(Software Defined Network)
        • 응용통신 – SDN - OpenFlow
        • 응용통신 – NFV(Network Function Virtualization)
      • 양자통신
        • 양자통신

OOP 5대원칙

태그 :

개념
객체지향 소프트웨어 설계의 근본 원칙, 디자인 패턴의 근본 원칙 객체지향 소프트웨어 설계 도구들의 근본이자 목적이 되는 원칙

1. 보다나은 프로그래밍을 위하여, 객체지향 설계의 5대 원칙의 개요

  가. 객체지향 설계의 5대 원칙의 개념

객체지향 소프트웨어 설계의 근본 원칙, 디자인 패턴의 근본 원칙

 객체지향 소프트웨어 설계 도구들의 근본이자 목적이 되는 원칙

 

  나. 객체지향 설계의 5대 원칙의 중요성

 재사용성, 유지보수성의 향상을 위해(높은 응집도, 낮은 결합도)

 설계 원칙을 기반으로 디자인 패턴 또는 유용한 개발론들이 등장하고 있음

 

2. 객체지향 설계의 5대 원칙  (SOLID)

원칙

설명

사례

단일 책임의 원칙

(SRP)

- 객체는 하나의 책임만을 맡아야 함
(억지로 나누지 말 것)

- DB 정규화와 비슷함

(성능저하라는 부작용이 없음)

- 핵심: 변화

- 목적: 변화에의 유연성 확보

(낮은 결합도, 높은 응집도 추구)

- 데이터 매퍼

패턴(DAO)

개방폐쇄 원칙

(OCP)

- 모듈은 확장에는 열려있어야 하고

변경에는 닫혀있어야 함

- 방법: 변화는(확장되는) 것과 변하지

않는 것을 엄격히 구분한 후

이 두 모듈이 만나는 지점에

인터페이스를 정의

- 상속과 어댑터

클래스를 통한

클라이언트

클래스 접속

- 컴파일러,

POSIX 표준

리스코프 치환원칙

(LSP)

- 기반 클래스는 파생 클래스로 대체

가능해야 함

- 즉, 인터페이스만 알면 구현체를

몰라도 사용 가능해야 함

-

인터페이스 분리의 법칙

(ISP)

- 하나의 일반적인 인터페이스보다는

구체적인 여러 개의 인터페이스가

나음

- 핵심: 변화

- 목적: 변화에의 유연성 확보

- 효과: 인터페이스의 통합과 분리

- 파일입력은

InputInterface,

파일출력은

OutputInterface

- 공유 리파지토리

패턴

의존관계 역전의 원칙

(DIP)

- 클라이언트는 구체 클래스가 아닌

인터페이스나 추상 클래스에 의존해야

함

- Bridge 패턴처럼 인터페이스/추상

클래스 간에만 서로 의존관계를

가지며 참조

- 모든 클래스에 인터페이스를 생성하면

클래스가 엄청나게 증가하고

복잡해지므로 필요한 것만 생성

- 이벤트 드리븐,

콜백, JMS, 통신

프로그래밍 모델

 

 

2. 사례를 통한 객체지향설계의 5대 원칙

  가. SRP(Single Responsibility Principle ) : 단일책임원칙

1) 원칙 : 하나의 클래스는 하나의 책임만 가져야 한다.

 

2) 상세설명 :

-하나의 클래스에 책임이 너무 많아지면 Collaboration(협력) 관계를 통해 클래스를 세분화해야 한다. 즉 책임을 나누는 것이다. 여기서 책임을 나누는 기준, 범위 등에 대한 정답은 없다. 다만, 유지보수 및 관리의 차원을 면밀히 고려하여 나눠야 한다.

-시스템의 모든 객체는 하나의 책임만을 가지며,객체가 제공하는 모든 서비스는 그 하나의 책임을 수행하는 데 집중되어 있어야 한다.

Example

  나. ISP(The  Interface  ISegregation  Principle ) : 인터페이스 격리 원칙

1) 원칙 :

-파생 클래스 입장에서 사용할 때 100% 구현할 수 있는 인터페이스만 사용해야 한다.

-인터페이스를 함수를 통해 사용할 때 자신의 목적에 맞게 사용해야 한다.

 

2) 상세설명 :

-최소한의 인터페이스만 구현한다. → 재사용성 극대화

 : 예를 들어 은행 관련 입금, 송금, 출금 모듈을 만들었을 경우 상황에 따라 각 모듈을 골라서 사용할 수 있어야 한다. 만약 여러 기능을 하나로 묶어두면 재사용이 어렵게 된다.

-다중 인터페이스 상속:

두 개 이상의 인터페이스가 필요한 경우 다중 인터페이스 상속으로 구현하는 것이 좋다.

-인터페이스가 인터페이스를 상속:

인터페이스가 인터페이스를 확장하는 경우는 기존 기능에 대한 확장이 요구될 때 채택할 수 있다. 

 

  다. DIP ( The  Dependency  Inversion  Principle ) : 의존 관계 역전 원칙

1) 원칙 :

-추상 클래스는 파생 클래스를 참조해서는 안되며, 파생 클래스나 추상 클래스는 오직  추상 클래스만을 참조해야한다.

2) 상세설명 :

-DIP 원칙은 클래스 군들 간에 설계원칙에 대한 지침이다.  

-DIP 원칙은 클래스 군들 간의 협업을 어떻게 하느냐에 중점을 둔 원칙이다. 

-파생 클래스가 의존할 때는 추상 클래스에 의존

-추상 클래스가 의존할 때는 추상 클래스에 의존

-결국, 의존의 대상은 추상클래스나 인터페이스가 되야 한다.

-UML Example

 

  라. LSP ( The  Liskov Substitution  Principle ) : 리스코프 치환 원칙

1) 원칙 :

-자식 타입들은 부모 타입들이 사용되는 곳에 대체될 수 있어야 한다.

2) 상세설명 :

-LSP 원칙은 OCP 원칙에 따라 디자인된 클래스들을 활용하는 단계에서 요구되는 원칙이다. 추상적인 클래스를 통해서 추상적인 클래스 이면에 숨어있는 구체적인 클래스를 제어하는 데 관심이 있다. ( 제어의 융통성 )

-LSP 원칙은 함수 의존적이다. :

LSP 원칙은 함수에서 사용될 때에 함수의 인자는 추상클래스나 인터페이스를 받아서 사용한다. 치환하는 대상은 구체적인 클래스에서 기반 클래스로 치환하는 것을 의미한다.

-LSP는 잘 디자인된 상속에 관한 내용입니다. 부모 클래스를 상속할 때, 부모 클래스가 사용되는 곳은 아무 문제없이 자식 클래스도 사용할 수 있어야 합니다. 그렇지 않으면, 상속을 잘못 사용하고 있는 것입니다.

3) 효과 :

-OCP 원칙에 따라 디자인된 클래스를 사용할 때는 치환된 기반 클래스를 활용함으로써 모든 파생 클래스가 자유롭게 돌아다닐 수 있는 공간이 만들어진다.

 

  마. OCP ( The  Open-Closed  Principle ) : 개방-폐쇄의 원칙

1) 원칙 :

-확장에 열려 있고, 변경에 닫혀 있어야 한다

2) 상세설명 :

-라이브러리 개발자에게 변경이 발생하면 라이브러리 사용자에게도 변경이 발생한다.

  ☞ 확장 및 유지보수의 어려움 ( 유연성 ↓ )

-확장, 수정이 가해지는 클래스의 영향이 밖으로 흘러나가지 않도록 중간에 완충장치를 두어야 한다. 라이브러리 개발자에게 일어난 변화가 사용자에게 영향을 주지 않토록 어떤 완충장치를 마련한다.

  ☞  유연성

-OPEN   : 클래스 수직관계(Is-a)에서는 열려있어야 한다. 기반 클래스에서 파생 클래스로 확장

-CLOSE : 클래스 수평관계(has-a)에서는 유연해야 한다. 즉 영향을 받지 않아야 한다.

3) 어떻게? : 추상화 도입 →  추상 클래스, 인터페이스

-변하는 것과 변하지 않아야 하는 것을 엄격하게 구분해야한다. 즉, 변하는 것은 변하기   쉽게, 변하지 않아야 하는 것은 영향을 받지 않게 디자인하는 것이다.

-Step 1    클래스 사이에 존재하는 공통적인 속성을 추출

-Step 2    추출된 속성은 하나의 인터페이스 또는 추상 클래스로 디자인하기

-Step 3    이렇게 디자인된 인터페이스 또는 추상 클래스를 상속하기

6) 효과

-유지보수에 강하고 재사용성을 극대화할 수 있다. →  유연성 ↑

-도둑잡기 →  컴파일 단계 에러 체크 시스템을 사용할 수 있다.

-UML Example

 

3. 재사용성을 극대화하는 객체지향설계의 개념

  가. 객체지향(Object Oriented) 정의

 실 세계의 개체(Entity)를 속성(Attribute)과 메소드(Method)가 결합된 형태의 객체(Object)로 표현하고 객체간의 메시지를 주고 받는 형태로 시스템을 구성하는 개념

 

  나. 객체지향을 위한 class design 5대 원칙의 개념

 객체지향방법론이 지향하는 재사용과 유지보수 극대화를 달성하기 위해 클래스 단위에서의 설계에 대한 원칙을 정의

 

  다. Class Design을 위한 5대 원칙

 

4. 단일 책임의 원칙(SRP: The Single Responsibility Principle)

   가. SRP 정의

 -클래스에는 한 가지 종류의 책임만을 두어야 한다는 원칙

   나. SRP 사례

(변경 전)

-한 개의 클래스(Shopping)에 회원관리와 상품관리 기능이 동시에 있음

 -회원관리, 상품관리 한쪽에 변경이 발생하면 Shopping 클래스가 수정되어야 하고, 관련된 모든 프로그램이 동시에 수정되어야 함
(변경에 취약)

(변경 후)

-Member와 Shopping 클래스로 분리

 

  다. SRP 설계 시 주의사항

 -SRP는 대상이 함수나 메소드가 아닌 객체라는 점에 주목

- 객체는 둘 이상의 책임을 갖지 않는 형태를 가져야 함

- 즉, 두 개 이상의 메소드나 프로퍼티를 가졌을 때 책임이

그 수만큼 늘어나게 된다면 과감하게 분리

(Extract Class, Extract Method)

 

 -SRP는 하나의 객체가 두 개의 책임을 가지는 것 만큼이나 두 개의 객체가 하나의 책임을 나누는 것에 주의를 기울여야 함

- 단일 요구사항의 변경으로 둘 이상의 객체가 변경을 요하는

상황에 처 한다면 책임이 나뉘었다고 판단하고, 하나의 객체가

온전히 책임을 다 가질 수 있도록 해 주어야 함

(Move Method, Move Field)

 

 

5. 인터페이스 분리의 원칙(ISP: Interface Segregation Principle)

  가. ISP 정의

 클라이언트는 자신이 사용하지 않는 메소드와 의존 관계를 갖지 않도록 해야 함

 ISP를 ‘하나의 일반적인 인터페이스보다는, 여러 개의 구체적인 인터페이스가 낫다’라고도 정의할 수 있음

 만약 어떤 클래스를 이용하는 클라이언트가 여러 개 있고, 이들이 해당 클래스의 특정 부분집합만을 이용한다면 이들을 따로 인터페이스로 빼내어 클라이언트가 기대하는 메시지만을 전달할 수 있도록 하는 것임

   나. ISP 사례

(변경 전)

-IManager 인터페이스 변경 시, 클래스 A, B, C 모두 변경되어야 함

 

(변경 후)

-각각의 인터페이스 변경 시 이를 참조하는 클래스만 수정

 

 6. ISP vs SRP 접근법의 차이

ISP 접근법

SRP 접근법

- 하나의 인터페이스가 여러 개의 역할로 구성된 경우

- 아래 이체는 Façade 패턴이 됨

- 하나의 역할은 여러 인터페이스로 분해되기도 함

사례> ”이체”

(1) 트랜잭션 시작

(2) 상대 계좌 존재 여부 확인

(3) 고객 계좌에서 금액 출금

(4) 상대 계좌에 입금

(5) 트랜잭션 종료

사례> java.io.PrintWriter 클래스

- printXX()류의 인터페이스로 역할을 세련되게 수행

 

 -일반적으로 인터페이스와 역할은 1:1 관계를 가짐 즉, SRP를 접근할 때와 ISP를 접근할 때의 접근법은 차이를 두어야 하며, 비즈니스의 목적과 용도에 맞게 접근할 필요가 있음

 

객체지향 주요특징

SWOT

상위개념

소프트웨어 개발 방법론

핵심키워드

현실세계의 반영,객체,클래스

캡추다정상(캡슐화, 추상화, 다형성, 정보은닉, 상속성)

비교개념

정보공학방법론, CBD

출제된 회차

 

 

7. 현실세계의 반영, 객체지향의 개요

  가. 객체지향의 개념

실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 이 개념을 컴퓨터로 그대로 옮겨놓아 적용한 개념.

 

  나. 객체지향의 등장배경

등장배경

내용

S/W 위기 극복

- 낮은 생산성, 납기 지연 극복

S/W복잡도 증가

- 기술발달, 다양성 증대로 시스템 규모 증가

사용자 요구증대

- 보다 많은 기능, 단순성, 사용용이성에 대한 요구 증대

 

8. 객체지향의 구성요소 및 주요특징

  가. 객체지향의 구성요소

구분

내용

객체(Object)

- 속성(데이터)과 행위(함수 또는 프로시져)를 갖는 사물 또는 개념

클래스(Class)

- 객체들을 같은 속성과 행위를 가진것으로 분류해 놓은 틀

  Ex) 붕어빵 틀, 사람

인스턴스(Instance)

- 클래스에 의해서 생성되는 각각을 지칭. 즉, 실제 메모리상

  에 할당된 객체  Ex) 붕어빵, 홍길동

메서드(Method)

- 클래스로부터 생성된 객체를 사용하는 방법

메시지(Message)

-Sender와 Receiver객체들간의 상호작용의 수단으로 다른 객체에 특정 작업을 요청하는 신호

-수신객체이름, 오퍼레이션 이름, 매개변수로 구성

 

  나. 객체지향의 주요특징 (캡추다정상)

특징

상세내용

캡슐화

Encapsulation

-속성(데이터)과 메소드(연산)을 하나로 묶어서 객체로 구성

개념도

특징

-접근제어

 public : 외부 접근 가능

 private : 외부 접근 불가

장점

-Readability 향상 : 유지보수 용이

-재사용성이 높은 S/W 개발 가능

-정보은닉으로 내부자료 일관성 유지

-객체간 인터페이스를 이용, 종속성 최소화

예제 코드

class Encapsule {

private ArrayList widths = new ArrayList();

public ArrayList getWidths() {

return widths

}

}

-private 선언한 widths 는 외부 접근 불가, getWidths 메소드를 통한 접근

추상화

Abstraction

-공통 성질을 추출하여 수퍼클래스로 구성

유형

설명

사례

기능추상화

클래스 내 메소드를 정의

obj.getName()

자료추상화

객체 클래스 체를 데이터타입으로 사용

String, Cass

제어추상화

제어 행위 개념화, 명령 이벤트

If, for, while

 

개념도

특징

-객체지향 언어에서는 클래스를 이용함으로써 데이터와 프로세스를 함께 추상화의 구조에 넣어 보다 완벽한 추상화 실현

장점

-객체 중심의 안정된 모델 구축

-현실 세계를 자연스럽게 표현

-분석의 초점이 명확

예제 코드

abstract class GraphicObject {

int x, y;

void moveTo(int newX, int newY) { … }

abstract void draw();

}

class Circle extends GraphicObject {

void draw() { … }

}

class Rectangle extends GraphicObject {

void draw() { … }

}

-공통성질(draw)을 추출하여 추상화

다형성

Polymorphism

-동일한 이름의 여러 오퍼레이션(메소드)을 다른 사양으로 정의 가능

 

종류

Over-loading

-메소드명 동일, argument or return type 이 다른 경우

Over-riding

-부모클래스 메소드를 자식클래스에서 재정의. argument, return type 동일

예제 코드

class Parent {

void parentMethod() {}

}

class Child extends Parent {

void parentMethod() {} // Over-riding

void parentMethod(int i) {} // Over-loading

}

정보은닉

Information Hiding

-캡슐화된 항목을 다른 객체(Object)로부터 숨김

-메시지 전달에 의해 다른 클래스 내의 메소드가 호출됨

예제 코드

class InformationHiding {

private List widths = new ArrayList();

public List getWidths() {

return widths

}

}

외부에서는 widths 의 타입을 알 수 없음

상속성

Inheritance

-부모 클래스의 속성과 메소드를 상속받아 사용

종류

단일

-부모와 자식 클래스 간의 관계가 수퍼클래스와 서브클래스로 유지

다중

-하나의 클래스가 하나 이상의 클래스로부터 상속 받음

반복

-같은 조부모 클래스로부터 상속 받은 두 부모 클래스로부터 상속 받는 것

예제 코드

class Animal {

public void move() { … }

}

class Dog extends Animal {

public void bark() { … }

}

-Dog는 Animal 을 상속 받았기 때문에 move 와 bark 메소드 호출 가능

(주)씨에스리 서울특별시 마포구 월드컵북로 396, 누리꿈스퀘어 8층 대표이사 이춘식

Copyright © 2013 CSLEE. All right reserved.