카테고리 없음

[정보처리기사 실기] 5장 인터페이스 구현

햄❤️ 2023. 4. 15. 11:21
728x90

 

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 

 

5-1.인터페이스 기능 구현

5-1.1. 인터페이스 기능 구현 정의

📌  모듈 간 세부 설계서 확인

- 컴포넌트 명세서: 컴포넌트의 개요, 내부 클래스의 동작, 인터페이스를 통해 외부와 통신하는 명세 정의

- 인터페이스 명세서: 컴포넌트 명세서에 명시된 인터페이스 클래스의 세부적인 조건 및 기능을 명시한 명세서
   인터페이스ID, 인터페이스 명, 오퍼레이션 명, 오퍼레이션 개요, 사전 조건, 사후 조건, 반환값 등 

 

📌  인터페이스 기능 구현 기술

1. JSON(JavaScript Object Notation)

 - 속성-값 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

- AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷

- 장점: XML보다 가볍고 빠름. 자료 종류에 큰 제한이 없음. JavaScript 코드 안에서 JSON 객체에 접근이 쉬움

- 단점: 태그가 없어서 가독성이 떨어진다. DTD같은 것이 없어서 데이터 형식이 틀렸을 경우 체크가 쉽지 않다.

 

2. XML(Extensible Markup Language)

 - HTML의 단점을 보완한 인터넷언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어

- 트리 구조로 되어있어 상위 태그는 여러개의 하위 태그를 갖는다.

- 단점: JSON에 비해 무겁고 비효율적이다. 

 

3. AJAX(Asynchronous JavaScript and XML)

 - 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술

- 브라우저의 XMLHttpRequest 객체를 이용하여 전체 페이지를 새로 롤드하지 않고 필요한 일부 페이지의 데이터만 로드

- 주요기술

  • XMLHttpRequest: 웹 브라우저와 웹 서버 간에 메서드가 데이터를 전송하는 객체 폼의 API. 비동기 통신을 담당하는 JS 객체
  • JavaScript, XML, HTML, CSS
  • DOM: XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
  • XSLT(Extensible Stylesheet Language Transformations): XML문서를 다른 XML 문서로 변환하는데 사용하는 XML 기반 언어

 

4. REST(Representational State Transfer)

  • 웹같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처
  • 리소스(자원), 메서드(처리), 메시지 3가지 요소로 구성
  • 행위에 대한 메서드: POST- Create, GET-Read, PUT-Update, DELETE-Delete

 

📌  인터페이스 구현 

 1. 데이터 통신을 사용하는 인터페이스 구현: 인터페이스 객체 생성위해 DB정보를 SQL을 통하여 선택한 후 JSON으로 생성 -> 송신측에서 제이슨으로 작성된 인터페이스 객체를 AJAX 기술을 이용하여 수신측에 송신

2. 개체를 사용하는 인터페이스 구현: DB 커넥션이 수신 측 인터페이스 테이블과 연계되도록 구현. 프로시저/트리거/배치 작업 등의 방법을 통해 수신 테이블로 데이터 전송 하도록 구현 -> 수신 측에서는 인터페이스 데이터를 읽은 후 사전에 정의된 데이터 트랜잭션을 진행할 수 있도록 구현

 

5-1.2. 인터페이스 보안 기능 적용

📌  인터페이스 보안 구현 방안

1. 시큐어 코딩 가이드 적용

  • 입력 데이터 검증 및 표현: 프로그램 입력값에 대한 검능 누락, 부적절한 검증 -> 입력값 유효성 검증 체계 수립
  • 보안 기능:  인증, 접근 제어, 기밀성, 암호화 등의 부적절한 구현 -> 인증, 접근 통제, 비밀번호 정책 반영 설계
  • 시간 및 상태: 동시 수행 병렬 시스템 및 멀티 프로세스 동작 환경에서 부적절한 시간 관리 -> 접근 직렬화, 블록문 내에서만 재귀 함수 호출, 병렬 실행 가능 프레임 워크 사용
  • 에러 처리: 에러 미처리, 에러 메시지에 중요 정보 포함 -> 에러 상황 처리
  • 코드 오류: 개발자의 코딩 오류 -> 코딩 규칙 적용
  • 캡슐화: 기능성이 불충분한 캡슐화로 비인가 유저에 데이터 누출 -> 디버거 코드 제거 및 프라이빗 접근자 설정
  • API 오용: 의도된 사용에 반하는 방법으로 API 사용 -> 취약 API 확보 및 검출

 

2. 데이터 베이스 보안 적용

  • 대칭 키 암호화 알고리즘: 암/복호화에 같은 암호키를 쓰는 알고리즘 ex) ARIA 128/192/256, SEED
  • 비 대칭키 암호화 알코리즘: 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만 알 수 있도록 공개키와 비밀키를 사용하는 알고리즘 ex) RSA, ECC, ECDSA
  • 해시 암호화 알고리즘: 해시값으로 원래 입력값을 찾아낼 수 없는 일방향성의 특성을 가진 알고리즘 ex) SHA-256/384/512

✏️ 데이터 베이스 암호화 기법

  • API 방식:  애플리케이션 레벨에서 암호모듈(API)을 적용하는 애플리케이션 수정 방식. 서버 부하 발생
  • Plug-In 방식: 암/복호화 모듈이 DB 서버에 서치된 방식. DB 서버에 부하 발생
  • TDE 방식: DB서버의 DBMS 커널이 자체적으로 암/복호화 기능을 수행
  • Hybrid 방식: API 방식 + Plug-in 방식 결합. DB 서버와 애플리케이션 서버로 부하 분산

 

3. 중요 인터페이스 데이터 암호화 전송

✏️ 데이터 암호화 보안 기술

  • IPSec:  IP 계층(3계층)에서 무결성과 인증을 보장하는 인증헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용하여 양 종단간 구간에 보안 서비스를 제공하는 터널링 프로토콜. 동작 모드는 전송모드와 터널모드가 있음
  • SSL/TLS: 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송시 데이터 무결성을 보장하는 보안 프로토콜
  • S-HTTP: 웹 상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로서 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송

 


 

5-2. 인터페이스 구현 검증 

5-2.1. 인터페이스 구현 검증

📌  인터페이스 구현 검증 도구 개념

- 인터페이스 동작을 검증하기 위해 구현 및 감시도구를 통해 인터페이스 동작 상태를 검증하고 모니터링 함

 

📌  인터페이스 구현 검증 도구 종류 

  •  xUnit:  자바, C++ 등 다양한 언어를 지원하는 단위테스트 프레임워크
  • STAF: 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크. 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 수행
  • FitNesse: 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트프레임워크
  • NTAF: FitNesse의 장점인 협업 기능과 STAF의 장점인 재사용 및 확장성을 통합한 NHN의 테스트 자동화 프레임워크
  • Selenium: 다양한 브라우저 지원 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
  • watir: 루비(Ruby) 기반 웹 애플리케이션 테스트 프레임워크

 

📌  인터페이스 감시 도구

  • 스카우터(SCOUTER): 애플리케이션에 대한 모니터링 및 DB Agent를 통해 오픈 소스 DB 모니터링 가능, 인터페이스 감시 기능
  • 제니퍼(Jennifer): 애플리케이션의 개발부터 테스트, 오픈, 운영, 안정화까지 전 생애주기 단계 동안 성능을 모니터링하고 분석해주는 APM 소프트웨어(Application Performance Management)

 

728x90