본문 바로가기

카테고리 없음

실기 - 요구사항 구현 / UI 구축(설계) / 개발 환경 구축 / 인터페이스 구현

  • 구현 : 모델링된 것을 보고 실제 개발하는 단계
  • UI 설계
    • CSS
      • 반응형 웹 : 다양한 기기에 맞춰진 컨텐츠가 자동으로 변경
    • JavaScript
      • 라이브러리 종류 
        • Jquery
        • Node.js
      • 기술
        • Ajax
          • 화면 전체를 새로 고치지 않고 부분만 업데이트함 React와 다르다.
          • 비동기 : 대기하지 않고 다른거함
  • 개발 환경 구축
    • 서버 
      • 서버 환경 구축
        • 웹 서버(WEB)
          • 정적인 것을 클라이언트에게 전달
          • 파일 들...
          • 대표적인 : Apache Web Server
        • 웹 애플리케이션 서버(WAS)
          • DB의 동적인 데이터들을 보여줌
          • 대표적인 : Tomcat
        • 데이터베이스 서버(DBMS)
        • 파일 서버 : 첨부파일 등이 저장됨
        • 로드 밸런스 : 부하가 없도록 효율적으로 분배
        • CDN : 분산 하여 데이터 서버를 둠
    • 시스템 아키텍처 고려 사항
      • 확장성
      • 성능
      • 응답 시간
      • 처리량
      • 접근성(가용성)
      • 일관성
      • 보안(f/w)
    • 시스템 소프트웨어(객체 지향 방식의 개발이 진행시 필요한 운영체제 구성)
      • 운영체제 - Windows Server
      • 자바 가상 머신(JVM) - 다양한 운영체제에서 호환가능
      • Web Server - 아파치
      • WAS(Web Application Server) -톰켓
      • DBMS
    • 개발 소프트웨어
      • IDE 
      • 형상 관리 도구 : 개발자들 사이의 일관성 있는 작업 흐름을 지원하고 변경 이력을 추적한다.
        • 종류 : GIT, SVN, CVS, RCS
        • 관리의 종류
          • 변경관리
          • 버전관리
          • 형상관리
        • 형상관리의절차
          • 형상 식별 : 리비전 번호 매기기
          • 형상 통제 :  변경 요청을 검토하고 승인하여 현재의 기준선(Baseline)에 반영한다.
          • 형상 감사
          • 형상 기록
        • 버전 관리 소프트웨어 사용 방식
          • SVN
            • check out : 처음 받아옴 pull
            • add : 파일 추가
            • commit : 수정된 파일 추가
            • update : 최신 버전 받아오기
            • import : 최초로 한번 전체 소스 업로드
            • trunk : 현재 운영중인 줄기
              • branch : 중간 문제 발생시 새로운 브랜치에 만들어 독립적으로 개발을 시작한다.
              • 브랜치를 만드는 이유 : 운영의 메인브랜치가 존재하며, 이슈사항에 대한 브랜치 생성, 신규 기능에 대한 브랜치 생성으로 독립적으로 개발한다.
            • diff
            • merge
        • 빌드 프로세스 방식
          • 빌드 : 형상관리에서 커밋한 최신버전의 파일들을 가져와서 .war, .jar 는 묶는다.
          • 테스트
          • CD | 배포 : 해당 시스템의 운영서버에 배포함
        • 빌드 자동화 도구 종류
          • Make : 유닉스 계열
          • Ant : java, xml
          • Maven : jdk 맞는 또는 라이브러리의 맞는 적합한 버전의 의존성을 검사를 하는 것이다.
          • Jenkins
          • Groovy : 안드로이드 앱 개발, Groovy 기반
    • 모듈 구현 : 하나의 수행하는 기능의 단위 
      • 객체 지향 : 메서드
      • 절차 지향 : 함수
      • 특징
        • 재사용
        • 독립성
      • 특징을 통한 모듈의 지켜야할 부분
        • 결합도(Coupling) : 두개 모듈의 인터페이스
          • 자료 결합도 : 값 - Data
          • 스템 결합도 : 주소 - 배열 Stamp
          • 제어 결합도 : 조건문 - Control
          • 외부 결합도 : External - 외부 변수 사용
          • 공통 결합도 : 전역 변수 Common
          • 내용 결합도 : 전부 가져다 쓰는거 외부의 의존성이 높은 것 - Content
        • 응집도(Cohesion) : 하나의 모듈
          • 우연적(Coincidental) : 아무런 상관 없는 것들을 모아둠
          • 논리적(Logical) : 유사한 성격과 분류
          • 시간적(Temporal) : 특정 시간(비슷한) 처리되어하는 것
          • 절차적(Procedural) : 순차적으로 처리되는 것
          • 통신적(Communicational) : 동일한 것에 입,출력됨
          • 순차적(Sequential) : 출력값을 입력값으로 사용하는 것
          • 기능적(Functional) : 관련성 있는 것말 모여진것(단일한 목적)
    • Fan-in/ Fan-out
  •  MVC 모델의 계층
    • 프레젠테이션 계층 - View
    • 제어 계층 - Controller(요청 분산처리)
    • 비즈니스 계층 - Service(업무처리)
    • 퍼시스턴스 계층 - Mapper, Jpa(데이터 관리)
    • 도메인 모델 계층 - Dto, Dao(실체 객체)
  • 프레임워크 : 구조(틀)
    • 프레임워크의 특징
      • 확장성
      • 재사용성
      • 모듈화
      • 제어의 역흐름
    • ORM 프레임워크 : 데이터베이스와 객체지향프로그램시 호환
  • 라이브러리 : 기능을 모아둠
  • API : 라이브러리와 프레임워크로 API를 만든다.
  • 배치 프로그램 : 데이터를 모았다가 처리
    • 배치 프로그램의 특징 
      • 대용량 데이터
      • 자동화
      • 견고함
      • 안정성
      • 성능
    • 크론탭 : 특정 시간에 자동으로 명령어 실행
      • 분,시,일,월 요일 명령
  • 인터페이스 구현
    • 인터페이스 시스템
      • 송신 시스템 : 보내는 것
      • 수신 시스템 : 받는 
    • 인터페이스 구현 검증 도구
      • xUnit : 다양한 언어르 지원하는 단위 테스트
      • STAF : 서비스 호출 및 컴포넌트 재사용
      • FitNesse : 웹 기반의 테스트
      • Selenium : 웹 어플리케이션
      • watir : Ruby
    • 인터페이스 구현 감시 도구
      • APM : 인터페이스 동작 상태를 감시, 데이터베이스 및 웹 애플리케이션의 다양한 정보를 시각화
    • 인터페이스 보안
      • 스니핑 : 지켜보는 공격
      • 스푸핑 : 속이는 공격
    • 인터페이스 보안 기능 적용
      • 네트워크 영역 : 위조와 변조를 방지하기 위해서 암호화 설정
      • 어플리케이션 영역 : KISA에서 시큐어코딩 가이드의 보안 기능 적
      • DB영역 : 암호화, 접근제어
    • 내,외부 모듈 연계 방식
      • 목적 : 서로 데이터베이스를 주고 받기 위한 인터페이스 
      • EAI : 강결합
        • Point-to-Point : 미들웨어 없이 직접 연결
        • Hub & Spoke : 중간에 허브 
        • Message Bus
        • Hybrid
      • ESB : 약결함
        • 유연
    • 인터페이스 전송 데이터 형식
      • JSON : 문자 기반의 포맷으로 Key-Value로 쌍으로 되어 있으며, {}로 묶은 형태이다.
      • XML : 마크업 언어
      • YAML : 직렬화 언어 
      • AJAX : 비동기 방식
      • SOAP : 데이터 인터페이스하는 프로토콜 / SMTP, HTTP, HTTPS를 통해 XML 기반 메시지를 교환한다.
        • WSDL : 설명서
        • UDDI : WSDL을 모아놓은 공간
      • REST : HTTP URL를 통한 자원 식별과 HTTP Method를 통한 CRUD 작업을 구현하는 자원 기반의 구조이다.