중요한 것 정리

인터페이스 기능 구현 기술(JSON, XML, AJAX, REST), 인터페이스 구현, 인터페이스 오류 처리, 인터페이스 보안 적용, 인터페이스 구현 검증(검증 도구, 감시 도구)

인터페이스 기능 구현

인터페이스 기능 구현 기술

JSON(Javascript Object Notation)

개념

키-값(Key-Value) 쌍으로 이루어진 정보 객체를 사람이 읽기 쉬운 형태인 문자열로 사용하는 데이터 교환 포맷.

특징

  • 특정 프로그래밍 언어에 국한되지 않아 다양한 언어에서 사용 가능
  • 사용자(사람) 또는 컴퓨터(기계)가 읽고 쓰기 쉬움
  • XML을 대체하는 추세며, AJAX에서 사용됨
  • XML보다 가볍고 빠름, 자료형 다양함 ↔ 가독성 떨어짐, 데이터 형식이 틀렸을 때 오류 검출 어려움

표현 자료형

숫자(number), 문자열(String, “”), 객체(Object, {}), 배열(Array, []), 불리언(Boolean) 등

파싱 혹은 매핑 등의 도구

Parser, Renderer, Serializer, Mapper, Validator

XML(Extensible Markup Language)

개념

HTML을 보완한 다목적 마크업 언어로, W3C에서 만들어 여러 가지 목적의 마크업 언어를 만드는 데 사용되는 특수한 목적을 가진 마크업 언어다.

특징

  • 사람과 컴퓨터(기계)가 모두 이해하기 쉬운 텍스트 형태
  • 송,수신 간 데이터 구조 동일
  • 트리 구조로 구성된 태그 사용. 사용자는 태그를 직접 정의하고 수정하고 사용할 수 있음

구성

  • 프롤로그 부분
    • <?xml version="1.0" encoding="utf-8" stadalone="no"?> 와 같은 형식으로 버전, 언어 셋, 문서 참조 여부를 표시함.
  • XML 요소
    • 시작 태그~종료 태그

AJAX(Asynchronous Javascript And XML)

개념

비동기적으로 데이터를 주고받는 방식.

특징

  • 웹 페이지 전체를 로딩하지 않아도 일부분만 갱신할 수 있으므로 빠르게 동적인 웹페이지를 만드는 데 사용
  • XMLHttpRequest 객체를 저장하고 이를 통해 일부만 갱신하는 방식
  • HTML보다 더 확장성 있는 기능 구현 가능

주요 기술

XMLHttpRequest(비동기 통신하는 자바스크립트 객체), JavaScript, XML, DOM(Document Object Model, XML 문서를 트리 형태로 접근할 수 있게 함), XSLT(Extensible Stylesheet Language Transformations, XML 변환 언어), HTML(HyperText Markup Language), CSS(Cascading Style Sheet)

동작 원리

사용자 → UI → JavaScript(비동기, 요청 보내고 다른 동작 가능) -XMLHttpRequest→ Server -HTML/XML/JSON→ JavaScript(일부만 로드) → UI → 사용자

REST(Representational State Transfer)

개념

웹에서 데이터를 처리하고 전송하는 과정을 표준화된 HTTP 메서드로 진행하는 소프트웨어 아키텍처

특징

  • 클라이언트-서버 구조(독립적, 의존성 최소)
  • 무 상태성(들어오는 요청만 처리, 단순한 구현)
  • 일관된 인터페이스(HTTP 표준)
  • 캐시 처리 가능
  • 자체 표현 구조(직관적)

요소

Resource(자원, URI), Method(메서드/처리, HTTP Methods-GET, POST, DELETE, PUT 등), Message(메시지, XML, JSON)

HTTP 메서드

POST(Create), GET(Read), PUT(Update), DELETE(Delete)

인터페이스 구현

데이터 통신 이용

인터페이스 객체 생성 구현

  • DB에 있는 정보를 SQL을 통해 선택 → JSON으로 인터페이스 객체 생성

인터페이스 객체 전송 후 결과를 반환받도록 구현

  • JSON으로 작성된 인터페이스 객체를 AJAX로 수신 측에 송신
  • 수신 측에서 JSON 객체 파싱
  • 수신 측의 처리 결과를 송신측에 불리언(True/False) 형태로 전달

인터페이스 개체(Entity) 이용

송신 시스템의 인터페이스 테이블

  • 인터페이스 이벤트 발생 시 테이블에 내용 기록
  • 데이터 전송을 위해 DB 커넥션이 수신 측 테이블과 연결되도록 구현
  • 프로시저(조건→자동수행), 트리거(이벤트→자동수행), 배치 작업(실시간X, 작업 단위 일괄 처리) 등의 방법으로 수신 테이블로 데이터 전송

수신 시스템의 인터페이스 테이블

  • 데이터 읽고 데이터 트랜잭션 수행할 수 있도록 구현
  • 오류 발생시 오류 코드와 내용 입력하도록 구현

인터페이스 예외 처리

데이터 통신

  • 송신 측 : Success/Fail
  • 수신 측 : try~catch 구문

인터페이스 개체

  • 송신 측 : 예외 코드, 프로시저, 트리거 등으로 예외 정의 + 원인 입력
  • 수신 측 : 예외 코드 + 원인 입력

인터페이스 보안 적용

시큐어 코딩 가이드

적용 대상

입력 데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용

  • 각 적용 대상에 대한 대응 방안을 따라 보안을 적용한다.

데이터베이스 보안 적용

암호화 알고리즘

  • 대칭 키
    • 암호화, 복호화에 같은 키 사용
    • ARIA 128/192/256, SEED
  • 비대칭 키
    • 암호화, 복호화에 다른 키 사용. 모두에게 공개되는 공개 키와, 나만 알고 있는 개인 키(비밀 키) 사용.
    • RSA, ECC, ECDSA
  • 해시 키
    • 해시값 사용. 일방향
    • SHA-256/384/512, HAS-160

암호화 기법

  • API
    • 애플리케이션 레벨에서 암/복호화 수행
  • Plug-In
    • DB 서버에 암/복호화 모듈 설치
  • TDE(Transparent Data Encryption)
    • DBMS 커널이 암/복호화 수행
  • Hybrid
    • API + Plug-In ⇒ 애플리케이션, DB 각 서버의 과부하 방지 가능

인터페이스 데이터 암호화

  • IPSec(IP Security)
    • OSI 3계층(IP 계층)에서 인증 헤더와 암호화를 사용해 종단 간 보안 서비스 제공
    • 전송(Transport) 모드, 터널(Tunnel)모드
    • AH, ESP, IKE, SPD, SAD
  • SSL/TLS
    • OSI 4계층(전송), 7계층(응용)에서 서버-클라이언트 간 암호화, 무결성 보장
    • 클라이언트와 서버 간 상호 인증 함(IPSec과 차이점)
    • 다양한 암호 기술 적용
    • Https:// 표시 형식, 443 포트
  • S-HTTP(Secure HyperText Transfer Protocol)
    • 웹 상에서 서버-클라이언트간 메시지 암호화해 전송
    • HTTP로 짜여진 애플리케이션에 한해서만 가능
    • shttp:// 사용

인터페이스 보안 기능 적용 프로세스

  1. 인터페이스 각 구간 취약점 분석
  2. 이를 근거로 보안 기능 적용
    • 네트워크 구간 네트워크 트래픽에 대한 암호화 적용. 전송 구간 암호화 구현.

    • 애플리케이션 시큐어 코딩 가이드 참조.

    • 데이터베이스 접근 권한 강화 등의 조치. 데이터 자체의 보안도 고려. ⇒ 민감 데이터 익명화 : 가명 처리, 총계 처리, 평균갑 대체, 범주화, 데이터값 삭제, 마스킹 등

인터페이스 구현 검증

검증 도구

  • xUnit(다양한 언어 지원, 단위테스트)
  • STAF(재사용성, 확장성, 데몬)
  • FitNesse(웹 기반, 빠르고 편함)
  • NTAF(FitNesse + STAF, NHN(Naver), 협업+재사용/확장성)
  • Selenium(다양한 브라우저 지원, 언어 학습 필요 없음)
  • watir(루비 기반, 호환성 좋음)

감시 도구

어플리케이션 모니터링 툴(APM, Application Performance Management) : 인터페이스 동작이 잘 되는지 지속적으로 모니터링하는 도구.

  • 스카우터(SCOUTER) - 애플리케이션 모니터링, 오픈소스 DB 모니터링, 인터페이스 감시
  • 제니퍼(Jennifer) - 개발, 테스트, 운영, 안정화 등 애플리케이션 생명주기 동안 모니터링

프로세스

  1. 인터페이스 명세서를 통한 구현 검증에 필요한 요건 분석
  2. 구현 검증에 필요한 감시 및 검증 도구 준비
  3. 인터페이스 구현 검증 수행 오류시 처리 : 화면에서 오류 인지할 수 있도록 구현 -> 로그 생성 -> 테이블에 기록

참고

수제비 2021 정보처리기사 실기

댓글남기기