반응형
모듈 구현
- 단위 모듈 구현
- 개념
- 소프트웨어를 기능 단위로 분해하여 구현하는 기법
- 여기서 모듈이란?
- 하나의 기능을 수행하는 단위
- 효과적인 모듈화
- 결합도는 낮추고 응집도를 높여 모듈의 독립성을 높임
- FAN-OUT 최소화, FAN-IN 증가
- 단위 모듈 설계의 원리
- 단계적 분해
- 추상화
- 독립성
- 정보은닉
- 분할과 정복
- 개념
- 단위 모듈 작성
- 원칙
- 정확성
- 명확성
- 완전성
- 일관성
- 추적성
- 원칙
- 결합도
- 결합도 개념
- 두 모듈 사이의 연관 관계
- 결합도가 낮을수록 잘 설계된 모듈이다.
- 결합도 유형
- 내용 결합도
- 변수 또는 기능이 여기저기 모두 얽혀서 사용하는 경우
- 공통 결합도
- 전역 변수를 참조하고 사용할 경우
- 외부 결합도
- 외부 변수를 사용할 경우
- 제어 결합도
- 자료 결합도로 자료가 넘어가는데, 해당 자료로 제어문 즉 조건문을 사용할 때
- 스탬프 결합도
- 자료 결합도에서 값이 아닌 주소값을 전달할 때
- 자료 결합도
- ex) funcA 내부에서 funcB를 호출하며 값만 전달할 경우
- 내용 결합도
- 결합도 개념
- 응집도
- 개념
- 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도
- 응집도 유형
- 우연 응집도
- 각 요소간 연관이 없을 경우
- 논리 응집도
- 유사한 성격을 갖는 것을 분류
- 시간 응집도
- 같은 시간대에 처리하는 활동
- 절차 응집도
- 모듈 내부 기능을 순차적으로 수행할 경우
- 통신 응집도
- 동일한 입력과 출력을 사용(동기적으로 생각하자)
- 순차 응집도
- 하나의 함수에서 나온 결과값을 다음 로직의 입력값으로 사용될 때
- 기능 응집도
- 모듈 내부의 모든 기능이 단일한 목적을 위해 수행 될 경우
- 우연 응집도
- 개념
- 공통 모듈 구현(개발시 순서를 생각하기)
- 순서
- DTO/VO 구현
- SQL 문 구현
- DAO 구현: 실질적 DB 접근하는 객체
- Service 구현
- Controller 구현 (실제 로직)
- 필요시 화면 구현
- Annotation
- 개념
- 주석이라는 의미를 가지며 주석처럼 달아 특수한 의미를 부여한다.
- 컴파일 또는 런타임에 해석된다.
- 개념
- 순서
서버 프로그램 구현
- DBMS 접속 기술
- 종류
- 소켓 통신
- 응용프로그램과 DBMS가 주고받는 통신
- Vender API
- DBMS사에서 공개한 API를 이용해 DBMS와 통신
- JDBC(Java DataBase Connectivity)
- Java에서 DB에 접속하고 SQL문을 수행시 사용되는 표준 API
- ODBC(Open DataBase Connectivity)
- 데이터베이스에 접근하기 위한 표준 규격
- MS사에서 만듦
- 소켓 통신
- 종류
- ORM(Object-Relational Mapping)프레임워크
- 개념
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해 주는 것
- 매핑 기술 비교
- SQL Mapper
- SQL을 명시하여 단순히 필드를 매핑시키는 것이 목적
- 종류
- iBatis, Mybatis, jsbc Templetes 등
- OR Mapping(=ORM)
- 객체를 통해 간접적으로 데이터베이스를 다룬다.
- 종류
- JPA(Java Persistent API), Hibernate
- SQL Mapper
- 개념
- 시큐어 코딩
- OWASP(The Open Web Application Security Project)
- 오픈소스 웹 애플리케이션 보안 프로젝트
- OWASP Top 10
- 웹 애플리케이션 취약점 중 빈도가 많이 발생하고, 보안상 영향을 줄 수 있는 10가지를 선정 후 발표
- 시큐어 코딩 가이드
- 개념
- KISA에서 OWASP Top 10의 개발 취약점을 보완한 개발을 해야한다고 가이드를 내려주는 것
- 입력 데이터 검증 및 표현
- 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터 형식을 잘못 지정하여 발생하는 보안 약점
- 보안 약점 종류
- SQL Injection
- XSS
- 자원 삽입
- 위험한 형식 파일 업로드
- 명령 삽입
- 메모리 버퍼 오버프로
- 보안 기능
- 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
- 보안 약점 종류
- 취약한 암호화 알고리즘 사용
- 하드코딩된 패스워드
- 패스워드 평문 저장
- 취약한 패스워드 허용
- 시간 및 상태
- 동시 수행을 지원하는 병렬 시스템이나 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안 약점
- 보안 약점 종류
- 경쟁 조건
- 종료되지 않은 반복문 또는 재귀 함수
- 에러 처리
- 에러를 처리하지 않거나 불충분하게 처리해 에러 정보에 중요 정보가 포함될 때 발생할 수 있는 보안 약점
- 보안 약점 종류
- 오류 메시지 정보 노출
- 오류 상황 대응 부재
- 부적절한 예외 처리
- 개념
- OWASP(The Open Web Application Security Project)
배치 프로그램 구현
- 배치 프로그램
- 개념
- 데이터를 일괄적으로 모아서 처리하는 대량의 작업을 처리 (동기적)
- 배치 프로그램이란?
- 대량의 데이터를 모아 정기적으로 반복 처리하는 프로그램.
- 필수 요소
- 대용량 데이터
- 자동화
- 견고함
- 안정성
- 성능
- 스케줄 관리 종류
- 크론탭
- UNIX, LINUX 계열에서 사용
- 형식
- 분 시 일 월 요일 (명령어)
- 쿼츠 잡 스케줄러
- 형식
- 초 분 시 일 월 요일 (명령어)
- 형식
- 크론탭
- 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 구축 (6) (0) | 2023.07.05 |
---|---|
[정보처리기사] 소프트웨어 구축 (5) (0) | 2023.07.05 |
[정보처리기사] 소프트웨어 구축 (3) (0) | 2023.07.04 |
[정보처리기사] 소프트웨어 구축 (2) (0) | 2023.07.04 |
[정보처리기사] 소프트웨어 구축 (1) (0) | 2023.07.04 |