인터페이스 구현
- 인터페이스 시스템
- 개념
- 서로 다른 시스템, 장치 사이에서 정보나 신호를 주고받을 수 있도록 도움을 주는 시스템
- 구성
- 송신
- 연계할 데이터를 생성해, 연계 테이블 또는 파일 형태로 송신하는 시스템
- 수신
- 수신할 데이터를 데이터 형식에 맞게 저장하고 활용하는 시스템
- 중계
- 송/수신 시스템 사이에서 데이터를 송수신하고 현황을 모니터링 하는 시스템
- 송신
- 개념
- 송수신 데이터 식별
- 개념
- 송수신 시스템 사이에서 교환되는 데이터는 규격화된 표준 형식에 따라 전송
- 송수신 전문 구성
- 전문 공통부
- 인터페이스 표준 항목을 포함
- 전문 개별부
- 업무처리에 필요한 데이터를 포함(실제 사용할 데이터)
- 전문 종료부
- 전송 데이터의 끝을 표시하는 문자 포함
- 전문 공통부
- 개념
- 인터페이스 설계서 구성
- 목록
- 연계 업무와 연계에 참여하는 송수신 시스템의 정보, 연계 방식과 통신 유형 등에 대한 정보
- 인터페이스 정의서
- 데이터 송신 시스템과 수신 시스템 간의 속성과 제약조건 등을 상세히 포함
- 목록
- 내.외부 모듈 연계 방식
- EAI(Enterprise Application Integration) → Integration (통합)
- 개념
- 기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션
- EAI 구축 유형
- Point to Point
- 중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결
- 솔류션 구매 없이 통합
- Hub & Spoke
- 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
- 모든 데이터 전송 보장
- 확장, 유지 보수 용이
- 허브 장애 시 전체 영향
- Message Bus(ESB 방식)
- 애플리케이션 사이 미들웨어(버스)를 두어 처리
- 미들웨어를 통한 통합
- 어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성, 대용량 처리 가능
- Hybrid
- 그룹 내에는 Hub & Spock방식, 그룹 간 Message Bus 방식을 사용
- Point to Point
- 개념
- ESB(Enterprise Service Bus)
- 다양한 시스템과 연동하기 위한 멀티 프로토콜 지원
- 버스를 통해 이기종 애플리케이션을 유연하게 통합하는 핵심 플랫폼
- EAI(Enterprise Application Integration) → Integration (통합)
- 인터페이스 연계 기술
- Link
- 데이터베이스에 제공하는 DB Link 객체를 이용
- 수신 시스템에서 DB Link를 생성하고 송신 시스템에서 해당 DB Link를 직접 참조하는 방식
- DB Connection
- 수신 시스템의 WAS에서 송신 시스템 DB로 연결하는 DB Connection Pool을 생성 후 연계 프로그램에서 해당 DB Connection Pool명을 이용
- JDBC(Java Database Connectivity)
- 수신 시스템의 프로그램에서 JDBC 드라이버를 이용하는 송신 시스템
- API/ Open API
- 송신 시스템의 애플리케이션 프로그래밍 인터페이스 프로그램
- API 명, 입출력 파라미터 정보가 필요
- Web Service
- SOAP: UDDI에서 WSDL을 받아서 통신을 하기 위한 프로토콜
- UDDI: ex) 도서관
- WSDL: ex) 설명서
- Hyper Link
- 웹 어플리케이션에서 하이퍼링크를 이용
- Socket
- 통신을 위한 소켓을 생성해 포트를 할당하고 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술
- Link
- 인터페이스 전송 데이터
- JSON(Javascript Object Notation)
- JavaScript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맥
- JSON 데이터는 이름과 값의 쌍으로 이루어진다.
- XML(eXtensible Markup Language)
- 웹에서 구조화한 문서를 표현하고 전송하도록 설계한 마크업 언어
- 다양한 표현이 가능하고, 확장성이 뛰어나며 간단하다
- HTML처럼 데이터를 보여주는 목적이 아닌 데이터를 저장하고 전달할 목적으로 만들어짐
- 태그를 더욱 확장해서 사용가능
- ex) <dog></dog>
- YAML(YAML Ain’t Markup Language)
- 구성 파일 작성에 자주 사용되는 데이터 직렬화 언어
- CSV(Comma Separated Values)
- 몇 가지 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일
- JSON(Javascript Object Notation)
- 인터페이스 구현
- AJAX(Asynchronous JavaScript and XML)
- 개념
- 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신
- 비동기 방식
- 웹 페이지를 리로드하지 않고 데이터를 불러오는 방식
- 개념
- SOAP(Simple Object Access Protocol)
- 개념
- HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크상에서 교환하는 프로토콜
- SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다.
- DCOM이나 CORBA의 호환성과 보안 문제로 등장
- SOA(서비스 지향 어플리케이션) 개념을 실현하기 위한 기술.
- 구성
- SOAP
- UDDI
- 인터넷에서 전 세계의 비즈니스 업체 목록에 자신의 목록을 등록하기 위한, XML 기반의 구격
- WSDL(Web Services Description Language)
- 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술
- 개념
- REST
- 개념
- HTTP URI를 통해 자원을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미.
- ROA(자원 기반 구조)의 개념으로 구현.
- 여기서 잠시 용어 정리😉
- URI vs URL
- URI는 식별하고
- URL은 위치를 가르킨다*.*
- SOAP vs REST
- 공통점
- 서로 데이터를 주고 받고 하는 기능은 같다.
- 차이점
- SOAP은 SOA로 표준이 있지만 구현이 힘들다.
- REST는 ROA로 표준이 따로 없지만, 구현이 편하다.
- 공통점
- URI vs URL
- REST 구성요소
- 자원(Resource), URI
- 서버에 존재하는 데이터의 총칭
- 모든 자원은 고유의 URI를 가지며 클라이언트는 URI를 지정하여 해당 자원에 대해 CRUD 명령을 수행한다.
- 행위(Verb), Method
- 클라이언트는 URI를 이용해 자원을 지정하고 자원을 조작하기 위해 Method를 사용한다.
- HTTP 프로토콜에서는 GET, POST, PUT, DELETE 같은 Method를 제공
- 표현(Representation)
- REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태로 나타낼 수 있다.
- 자원(Resource), URI
- 개념
- AJAX(Asynchronous JavaScript and XML)
- 인터페이스 보안
- 인터페이스 보안 취약점 분석
- 인터페이스의 보안 취약점을 분석
- 인터페이스 각 구간의 구현 현황을 분석
- 인터페이스 각 구간의 보안 취약점을 분석
- 분석된 보안 취약점을 근거로 인터페이스 보안 기능을 적용
- 네트워크 구간에 보안 기능을 적용
- SSL, HTTPS, S-HTTP, IPSec
- 애플리케이션에 보안 기능을 적용
- 시큐어 코딩 가이드
- 데이터베이스에 보안 기능을 적용
- 민감 데이터를 암호화, 익명화 등을 통해 데이터 자체 보안 방안도 고려
- 네트워크 구간에 보안 기능을 적용
- 인터페이스의 보안 취약점을 분석
- 인터페이스 보안 취약점 분석
- 인터페이스 검증
- 인터페이스 구현 검증 도구
- xUnit
- 다양한 언어를 지원하는 단위 테스트 프레임워크
- STAF(Software Testing Automation Framework)
- 소프트웨어 테스트 자동화 프레임워크
- 서비스 호출 및 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- NTAF(NHN Testing Automation Framework)
- 네이버 오픈소스
- FitNesse의 장점과 STAF의 장점을 통합한 네이버의 테스트 자동화 프레임워크
- FitNesse
- 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
- Selenium
- 다양한 브라우저 및 개발 언어를 지원하는 웹 애플리케이션 테스트 프레임워크
- watir(Web Application Testing in Ruby)
- Ruby를 사용하는 웹 애플리케이션 테스트 프레임워크
- xUnit
- 인터페이스 검증 감시 도구
- 개념
- 데이터 이동시 감시하는 도구
- APM(Application Performance Management)을 사용하여 동작상태 감시
- 종류
- 스카우터(Scouter)
- 제니퍼(Jennifer)
- 개념
- 인터페이스 구현 검증 도구
객체지향 구현
- 객체지향(OOP, Object Oriented Programming)
- 개념
- 현실 세계의 유/무형의 모든 대상을 객체로 나누고, 객체의 행동과 고유한 값을 정의하여 설계하는 방법
- 객체지향 구성요소(클객메메인속)
- 클래스
- 유사한 종류의 유/무형의 존재를 속성과 연산을 정의해서 만든 틀
- 객체
- 자신 고유의 데이터를 가지며 클래스에서 정의한 행위를 수행
- 메서드
- 객체가 가지고 있는 속성들을 변경할 수 있는 하나의 연산
- 메시지
- 객체에게 어떤 행위를 하도록 지시
- 인스턴스
- 클래스에 속한 각각의 객체
- 속성
- 객체들이 가지고 있는 고유한 데이터를 단위별로 정의한 것
- 클래스
- 객체지향 언어의 특징
- 캡슐화
- 상속
- 다형성
- 오버로딩
- 오버라이딩
- 추적성
- 정보은닉
- 관계
- 객체지향 설계원칙(SOLID)
- 단일 책임 원칙(SRP, Single Responsibility Principle)
- 한 클래스는 하나의 책임만을 가져야한다.
- 개방 폐쇄 원칙(OCP, Open-Closed Principle)
- 확장에는 열려 있고, 수정에는 닫혀 있어야 한다.
- 기존의 코드를 변경하지 않으면서 기능을 추가로 구현할 수 있도록 설계
- 리스코프 치환 원칙(LSP, Liskov Substiution Principle)
- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.
- 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
- 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.
- 자신이 사용하지 않는 인터페이스 떄문에 영향을 받아서는 안된다.
- 의존성 역전 원칙(DIP, Dependency Inversion Principle)
- 의존 관계를 맺을 때 자주 변화하는 것보다, 변화가 거의 없는 것에 의존해야 한다.
- 구체적인 클래스보다 인터페이스나 추상 클래스와 의존 관계를 맺어야 한다.
- 단일 책임 원칙(SRP, Single Responsibility Principle)
- 개념
- 디자인 패턴
- 디자인 패턴(Design Pattern) 개념
- 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들에 대해 재사용할 수 있도록 만들어놓은 패턴들의 모음
- GoF 디자인 패턴
- 개념
- 개발 영역에서 디자인 패턴을 구체화하고 체계화시킴
- Gof 디자인 패턴 분류
- 생성 패턴: 객체 생성에 있어 프로그램 구조에 영향을 크게 주지 않는 유연성 제공
- Builder
- 복합 객체의 생성과 표현을 분리하여 동일한 생성 절차에서도 다른 표현 결과를 만들어낼 수 있음
- ex) new User.Builder(10).name(’xx’).pwd(’123’).age(20)
- Prototype
- 원본 객체를 복사함으로써 객체를 생성
- java의 clone()을 이용해 생성하고자 하는 객체에 clone에 대한 Override를 해준다.
- Factory Method
- 객체 생성을 서브클래스로 위임하여 캡슐화 함
- Abstract Method
- 구체적인 클래스에 의존하지 않고, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- Singleton
- 어떤 클래스의 인스턴스는 하나임을 보장하고 어디서든 참조할 수 있도록 함
- getInstance로 오직 하나만 생성
- 어떤 클래스의 인스턴스는 하나임을 보장하고 어디서든 참조할 수 있도록 함
- Builder
- 구조 패턴: 클래스나 객체를 조합해서 더 큰 구조를 만드는 패턴
- Bridge
- 구현부에서 추상층을 분리하여 각자 독립적으로 확장할 수 있게 함
- Decorator
- 주어진 상황 및 용도에 따라 어떤 객체에 다른 객체를 덧붙이는 방식
- Facade
- 서브 시스템에 있는 인터페이스 집합에 대해 하나의 통합된 인터페이스를 제공
- 서브 시스템의 가장 앞쪽에 위치
- Flyweight
- 크기가 작은 여러 개의 객체를 매번 생성하지 않고 가능한 공유할 수 있도록 하여 메모리를 절약함
- Proxy
- 접근이 어려운 객체로 의 접근을 제어하기 위해 객체의 대리나 대체글을 제공
- Composite
- 객체들의 관계를 트리 구조로 구성
- 하나 이상의 유사한 객체를 구성으로 설계된 객체로 모두 유사한 기능을 나타냄
- Adapter
- 110v, 220v 를 변환할 수 있는 것처럼 클래스의 인터페이스를 다른 인터페이스로 변환하여 다른 클래스에서 사용 가능하도록 함
- Bridge
- 행위 패턴: 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
- 행 메 인이 템옵 스테 비커 스트 메체
- Mediator
- 중재자
- 한 집합에 속해있는 객체들의 상호작용을 캡슐화하여 새로운 객체로 정의
- Interpreter
- 특정 언어의 문법 표현을 정의함
- Iterator
- 반복자
- 내부를 노출하지 않고 접근이 잦은 어떤 객체의 원소를 순차적으로 접근할 수 있는 동일한 인터페이스 제공
- Template Method
- 상위클래스는 알고리즘의 골격만을 작성하고 구체적인 처리는 서브클래스로 위임함
- Observer
- 객체 상태가 변할 때 관련 객체들이 그 변화를 통지받고 자동으로 갱신될 수 있게 함
- State
- 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용
- Visitor
- 객체의 원소에 대해 수행할 연산을 분리하여 별도의 클래스로 구성함
- 객체지향 원직(SOLID) 중 하나인 개방-폐쇄 원칙(OCP)을 적용하는 방법
- Command
- 요청을 객체의 형태로 캡슐화하여 재사용하거나 취소할 수 있도록 저장함
- Strategy
- 동일 계열의 알고리즘군을 정의하고 캡슐화하여 상호교환이 가능하도록 함
- Memento
- 객체가 특정 상태로 다시 되돌아올 수 있도록 내부 상태를 실체화
- Chain of Responsibility
- 요청을 받는 객체를 연쇄적으로 묶어 요청을 처리하는 객체를 만날 때까지 객체 Chain을 따라 요청을 전달함
- 생성 패턴: 객체 생성에 있어 프로그램 구조에 영향을 크게 주지 않는 유연성 제공
- 개념
- 디자인 패턴(Design Pattern) 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 구축 (7) (0) | 2023.07.06 |
---|---|
[정보처리기사] 소프트웨어 구축 (6) (0) | 2023.07.05 |
[정보처리기사] 소프트웨어 구축 (4) (0) | 2023.07.05 |
[정보처리기사] 소프트웨어 구축 (3) (0) | 2023.07.04 |
[정보처리기사] 소프트웨어 구축 (2) (0) | 2023.07.04 |