[정처기 실기 내용 정리] CHAP 5. 인터페이스 기능 구현

2025. 7. 10. 16:07·자격증/정보처리기사

1. 인터페이스 기능 구현


중분류 소분류 키워드
인터페이스 기능 구현 기술 JSON - 속성-값
- AJAX에서 많이 사용
AJAX
(Asynchronous JavaScript
and XML)
- 자바스크립트를 사용한 비동기적으로 데이터를 교환하는 웹기술
- XMLHttpRequest 객체를 사용
XML
(eXtensible Markup
Language)
- HTML 단점 보완한 마크업 언어
- 전송되는 데이터 구조를 동일한 형태로 정의
REST - 자원의 존재/상태 정보를 표준화된 HTTP 메소드로 주고 받는 아키텍처
- 메소드 : POST, GET, PUT, DELETE
인터페이스 보안 기능 적용 시큐어 코딩 가이드 - 입력 데이터 검증 및 표현
- 보안 기능
- 시간 및 상태
- 에러 처리
- 코드 오류
- 캡슐화
- API 오용
데이터 베이스 알고리즘 - 대칭 키 암호화 알고리즘
- 비대칭 키 암호화 알고리즘
- 해시 암호화 알고리즘
데이터베이스 암호화 기법 - API 방식
- Plug-In 방식
- TDE 방식
- Hybrid 방식
암호화 전송을 보완하는 기술 - IPSec (IPSecurity)
- SSL/TLS
- S-HTTP (Secure Hypertext Transfer Protocol)

 

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


(1) JSON

🤔 JSON이란?
속성-값(Attribute-Value Pair)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷
① AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷
② 언어 독립형 데이터 포멧으로 다양한 데이터 프로그래밍 언어에서 사용하고 있는 기술
JSON의 표현 자료형 설명
숫자 - 기본 자료형의 수는 정수, 실수로 표현
문자열 - 항상 큰 따옴표("")로 묶고, 그 안에 유니코드 문자들을 나열
배열 - 대괄호[]로 표시
- 배열의 각 요소는 기본 자료형, 배열, 객체 중 하나이다
- 각 요소들은 쉼표(,)로 구별되고, 각 요소가 나타내는 순서에 의미가 존재
객체 - 객체는 이름/값 쌍의 집합으로, 중괄호 사용
- 이름은 문자열이므로 따옴표를 사용, 값은 기본 자료형
- 각 쌍들은 (,)로 구별되고, 순서는 의미가 없음

 

(2) AJAX

🤔 AJAX(Asynchronous JavaScript and XML)란?
자바 스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술
① 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 필요한 일부 페이지의 데이터만 로드하는 기법
② HTML만으로 어려운 다양한 작업을 웹페이지에서 구현하여 이용자가 자유롭게 상호작용 할 수 있도록 구현하는 기법
주요 기술 설명
XMLHttpRequest - 비동기 통신을 담당하는 자바 스크립트 객체
JavaScript - 객체 기반의 스크립트 프로그래밍 언어
- 웹 브라우저에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능 보유
XML - HTML 단점을 보완한 인터넷 언어로 SGML의 복잡한 단점을 개선한 마크업 언어
DOM
(Document Object Model)
- XML 문서를 트리 구조의 형태로 접근할 수 있게 해주는 API
- 플랫폼/언어 중립적으로 구조화된 문서를 표현하는 개체 지향 모델
XSLT
(eXtensible Stylesheet
Language Transmations)
- XML 문서를 다른 XML문서로 변환하는데 사용하는 XML 기반 언어
- W3C에서 제정한 표준으로 XML 변환 언어를 사용하여 XML 문서로 바꾸고, XPath를 사용하여 탐색한다
HTML - 인터넷 웹(WWW) 문서를 표현하는 표준화된 마크업 언어
CSS
(Cascading Style Sheets)
- 마크업 언어가 실제 표시되는 방법을 기술하는 언어
- 운영체제나 사용 프로그램과 관계 없이 글자 크기, 글자체, 줄 간격, 색상 등을 자유롭게 선택할 수 있는 스타일 시트

 

(3) XML

🤔 XML(eXtensible Markup Language)란?
HTML의 단점을 보완한 인터넷 언어로, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업언어
① 송,수신 시스템 간 데이터 연계의 편의성을 위해 전송되는 데이터 구조를 동일한 형태로 정의
② 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타언어이다
③ 사용자가 직접 문서의 태그를 정의할 수 있으며, 다른 사용자가 정의한 태그를 사용할 수 있다

 

(4) REST

🤔 REST(Representational State Transfer)란?
웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메소드로 주고 받는 웹 아키텍처
① REST의 형태 : 리소스(자원), 메소드(처리), 메시지
② REST의 메소드 : POST(Create), READ, PUT, DELETE
REST 특징 설명
클라이언트/서버 구조 - 역할이 명확히 구분되기 때문에 클라이언트와 서버는 독립적으로 구현되어야 하고, 서로 간 의존성은 축소
무 상태성 - 작업을 위한 상태 정보를 따로 저장하고 관리되지 않기 때문에 API 서버는 들어오는 요청만 단순히 처리
- 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순
일관된 인터페이스 - HTTP 표준에만 따른다면 특정 언어나 기술에 종속되지 않고 모든 플랫폼에 사용할 수 있으며 URI로 지정한 리소스에 대한 조작이 가능한 아키텍처 스타일
캐시 처리 가능 - HTTP가 가진 캐싱 기능 적용 가능
- HTTP 프로토콜 표준에서 사용하는 Last-Modified 태그나 E-Tag를 이용하면 캐싱 구현 가능
자체 표현 구조 - API 메시지 자체만 보고도 API를 이해할 수 있는 구조를 가짐
- 리소스와 메소드를 이용해서 어떤 메소드에 무슨 행위를 하는지를 알 수 있으며, 또한 메시지 포맷 역시 JSON을 이용해서 직관적으로 이해가 가능한 구조

 

 

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


(1)  시큐어 코딩 가이드

적용 대상 보안 약점 대응 방안
입력 데이터
검증 및 표현
프로그램 입력값에 대한 검증 누락/부적절한 검증, 잘못된 형식 지정 사용자/프로그램 입력에 대한 유효성 검증 체계를 수립하고 실패 시 처리 기능 설계 및 구현
보안 기능 보안(인증, 접근제어, 기밀성, 암호화, 권한 권리 등)의 부적절한 구현 인증, 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계 및 구현
시간 및 상태 거의 동시에 수행 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임 워크 사용, 블록문 내에서만 재귀 함수 호출
에러 처리 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요 정보가 포함 에러 상황을 처리하지 않거나, 불충분한 처리되어 중요 정보 유출 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현
코드 오류 개발자가 번할 수 있는 코딩 오류로 인한 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
캡슐화 가능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출 디버거 코드 제거와 필수 정보 외의 클래스 내 프라이빗 접근자 지정
API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용

 

(2) 데이터베이스 암호화 알고리즘

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

 

(3) 데이터베이스 암호화 기법

구분 설명
API 방식 - 애플리케이션 레벨에서 암호 모듈(API)을 적용하는 애플리케이션 수정 방식
- 애플리케이션 서버에 암,복호화, 정책 관리, 키 관리 등의 부하 발생
Plug-In 방식  - 암, 복호화 모듈이 DB서버에 설치된 방식
- DB 서버에 암,복호화, 정책 관리, 키 관리 등의 부하 발생
TDE 방식
(Trasparent Data Encrytion)
- DB 서버의 DBMS 커널이 자체적으로 암,복호화 기능을 수행하는 방식
- 내장되어 있는 암호화 기능을 이용
Hybrid 방식 - API 방식과 Plug-in 방식을 결합하는 방식
- DB 서버와 애플리케이션 서버로 부하 분산

 

(4) 중요 인터페이스 데이터의 암호화 전송을 보안하는 기술

보안 기술 설명
IPSec
(IP Security)
- IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 임호화(ESP)를 이용하여 양 종단 간(End Point)구간에 보안 서비스를 제공하는 터널링 프로토콜
- 동작 모드는 전송(Transport) 모드와 터널(Tunnel) 모드가 있다
- 주요 프로토콜 : AH, ESP, IKE(키교환)
- IPSEC 정책 : SPD, SAD
SSL/TLS - 전송 계층(4계층)과 응용 계층(7계층) 사이에서 클라이언트와 서버 간 웹 데이터 암호화(기밀성), 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
- 인증 모드는 익명 모드, 서버 인증 모드, 클라이언트-서버인증모드가 있다
- Client와 Server 간에 상호 인증, 암호화 방식에 대해 협상을 거치는 특징이 있다
- 특정 암호 기술에 의존하지 않고 다양한 암호 기술 적용
- Https:// 표시 형식과 443 포트 이용
S-HTTP
(Secure Hypertext
Transfer Protocol)
- 웹 상에서 네트워크 트래픽을 암호화 하는 주요 방법 중하나로 클라이언트와 서버 간 전송되는 메시지를 암호화 하여 전송
- 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능
- S-HTTP 서버 접속 시 shttp://URL 사용

 

 

 

2. 인터페이스 구현 검증


중분류 소분류 키워드
인터페이스 구현 검증 인터페이스 구현 검증 도구 - xUnit 
- STAF 
- FitNesse 
- NTAF 
- Selenium 
- watir 
인터페이스 감시 도구 - 스카우터(SCOUTER)
- 제니퍼(Jennifer)
인터페이스 오류 처리 오류 처리 방법 - 화면에서 오류를 인지
- 오류 로그 생성
- 관련 테이블에 오류사항 기록

 

2.1 인터페이스 구현 검증


(1) 인터페이스 구현 검증 도구

 

🤔 인터페이스 구현 검증 도구란?
인터페이스 동작 상태를 검증하고 모니터링할 수 있는 도구
인터페이스 세부 기능을 기능 단위로 테스트하는 단위테스트와 전체 인터페이스 흐름을 확인할 수 있는 통합 테스트가 필요하다
도구 설명
xUnit  - 자바(JUnit), C++(cppUnit), Net(NUnit) 등 다양한 언어를 지원하는 단위테스트 프레임워크
- 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구
STAF - 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크
- 각 테스트 대산 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화하는 검증도구
FitNesse  - 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크
- 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대해 테스트를 할 수 있는 장점이 있다
NTAF  - FitNesse의 장점인 재사용 및 확장성을 통합한 NHN(naver)의 테스트 자동화 프레임워크
Selenium  - 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 어플리케이션 테스트 프레임워크
- 테스트 스크립트 언어를 학습할 필요 없이 기능 테스트를 만들기 위한 도구를 제공
watir  - Ruby기반 웹 애플리케이션 테스트 프레임워크
- 모든 언어 기반의 웹 애플리케이션 테스트와 호환성 테스팅 기능

 

(2) 인터페이스 감시 도구

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

 

 

2.2 인터페이스 오류 처리


🔍 인터페이스 오류처리 방법
① 사용자 화면에서 오류를 인지하도록 구현
② 인터페이스 오류 로그 생성
③ 인터페이스 관련 테이블에 오류사항 기록

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'자격증/정보처리기사' 카테고리의 다른 글
  • [정처기 실기 내용 정리] CHAP 4. 통합 구현
  • [정처기 실기 내용 정리] CHAP 3. 데이터 입출력 구현
  • [정처기 실기 내용 정리] CHAP 2. 화면 설계
  • [정처기 실기 내용 정리] CHAP 1. 요구사항 분석
leonie.
leonie.
  • leonie.
    leveloper
    leonie.
  • 글쓰기 관리
    • 분류 전체보기
      • Language
        • Java
      • Git
      • CS
      • CodingTest
        • [프로그래머스] 자바
      • Information
      • Framework
        • SpringBoot
      • DBMS
        • Redis
        • SQL
      • AWS
      • OS
        • Mac
      • 자격증
        • 정보처리기사
      • 회고
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    알고리즘
    springboot
    정처기필기
    자바
    정보처리기사
    스프링
    프로그래머스
    정처기
    코딩테스트
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
leonie.
[정처기 실기 내용 정리] CHAP 5. 인터페이스 기능 구현
상단으로

티스토리툴바