프로그래밍 언어 활용(서버프로그램 구현)
2025. 2. 16. 11:50ㆍ자격증
반응형
1. 개발환경 구축 | 인터페이스 : 이기종 시스템 또는 컴포넌트 간 데이터 교환 및 처리를 위한 기능이다. 컴포넌트 : 모듈 내에서도 재사용이 가능한 단위 독립된 모듈, 재사용이 가능한 최소 단위 (모듈>컴포넌트>클래스) 모듈 : 특정 기능을 온전히 수행할 수 있도록 만들어 졌다. 프로시저 : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 함수 : 반환 값이 있는 경우 루틴 : ‘정해진 일’이라는 의미, 정해진 함수를 호출한다는 의미에서 루틴 프로시저 : ‘절차’라는 의미. 어떤 작업이나 문제를 해결하기 위한 명령어를 순서대로 적어놓은 코드를 의미 (프로시저 : 반환 값이 없는 경우) 서브루틴 : ‘하위(Sub)’로 ‘정해진 일’이라는 의미, 함수 안에서 또 다른 함수가 호출될 떄, 즉 루틴에서 불려지는 또른 루틴을 하위 루틴 è함수(Function)라는 말 대신 루틴(Rutine) 프로시저(Procedure) 서브루틴(Sub-Routine) (1)개발환경 구축도구의 분류 (빌구테형 : ①빌드 도구 ②구현도구 : Eclipse, Visual Studio ③테스트 도구④형상 관리 도구 : 문서 버전관리 1. 컴파일 : 개발자가 작성한 소스코드를 바이너리코드(0과1)로 변환하는 과정 2. 빌드 : 소스코드 파일을 실행 가능한 소프트웨어 아웃풋으로 만드는 과정 (2)서버 하드웨어 개발환경 ① 웹 서버 Web Server : Apache HTTP Server / Google Web Server ② 웹 애플리케이션 서버 WAS; Web Application Server : Oracle WebLogic / Apache Tomcat / IBM WebSphere, JEUS ③ 데이터베이스 서버 DB Server : MySql Server, MS-SQL Server, Oracle Server ④ 파일서버 File Server : AWS / S3 (2)프레임워크의 특징 (뼈대) 1. 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀이다. 2. 재사용이 가능하도록 소프트웨어 구성에 필요한 기본을 제공 3. 개발 및 운영을 지원하는 도구 및 가이드 등을 포함한다. (모재확역 : ①모듈화 ②재사용성 ③확장성 ④제어의 역행 (3)프레임워크의 구성요소 (개실운관 : ①개발환경 ②실행환경 ③운영환경 ④관리환경) |
2. 공통 모듈 구현 | (1)재사용Reuse의 유형 : 개발 시간 및 비용 절감을 위하여 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적의 작업 ①함수와 객체 재사용 : 소스코드 재사용 ②컴포넌트 재사용 ③애플리케이션 재사용 (2)재사용 프로그래밍 기법 (객제자메) ①객체지향 프로그래밍 : Object Orient Programing ②제네릭 프로그래밍 ③자동 프로그래밍 ④메타 프로그래밍 (3)모듈화의 개념 : 프로그램 개발 시 생산성과 최적화, 관리에 용이하게 기능 단위로 분할하는 기법 (4)모듈화의 측정 지표 ①모듈화의 적정성을 측정하는 지표 – (응집도)와 (결합도) ②좋은 모듈화란 용도에 맞게 잘 구분된 기능을 가진 모듈들로 세분화하는 것 ③독립적으로 주어진 역할 만을 수행하며, 타 모듈에 의존성이 높지 않아야 한다. 모듈의 크기가 크다는 것은 많은 기능이 들어가 있다. ④독립성을 높이려면 (결합도)는 낮게 (응집도)는 높게 하여 모듈의 크기를 (작게) 만들어야 한다. Mccabe 회전복잡도 V=E-N+2 (5)모듈화의 유형 (모컴서 함매인 : ①모듈 ②컴포넌트 ③서비스 ④함수 ⑤매크로 ⑥인라인 ) (6)효과적인 모듈 설계를 위한 유의사항 설계 측면 구현 측면 ①모듈 간의 결합도를 (낮게)하면 모듈 독립성이 향상된다. ②복잡도와 중복성을 줄이고 일관성을 (유지)시킨다. ③모듈의 기능은 예측이 가능해야 하며, 제한적이면 안된다. ④유지보수가 용이해야 한다. Content common공통단자 external Control Stemp Data (7)결합도 유형 내공 외제 스자 : ①내용 결합도 ②공통 결합도 ③외부 결합도 ④제어 결합도 ⑤스탬프 결합도 ⑥자료 결합도 결합도 높음 결합도 낮음 결합도 : 외부의 모듈과의 연관도, 또는 모듈 간의 상호 의존성을 나타내는 정도 1. 내용 결합도 Content Coupling : 다른 모듈에 있는 변수나 기능을 다른 모듈에서 사용 (GOTO문을 사용하여 이곳 저곳으로 옮겨 다닌다) 2. 공통 결합도 Common Coupling : 모듈 밖에 선언되어 있는 전역변수를 참조하고 전역 변수를 갱신 (Extern int a; 와 전역변수 int a;) 3, 외부 결합도 External Coupling : 모듈이 다수의 관련 기능을 가질 때 순차적으로 수행할 경우의 결합도 4. 제어 결합도 Control Coupling : 내부 논리 조직을 제어하기 위한 목적 제어 신호를 이용 5. 스탬프 결합도 Stamp Coupling : 배열이나 객체, 구조 등이 전달되는 경우의 결합도, 두 모듈이 동일한 자료 구조를 조회 6. 자료 결합도 Data Coupling : 피라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우 (int 를 다른 곳에 함수에 넘길 때) Coincidental Logical Temporal Procedural Communication Sequential Functional (8)응집도 유형 우논시절 통 순기 : ①우연적 ②논리적 ③시간적 ④절차적 ⑤통신적 ⑥순차적 ⑦기능적 응집도 낮음 응집도 높음 응집도 :모듈 내부 구성요소 간 연관도, 정보 은닉 개념 확장개념, 하나의 모듈은 하나의 기능을 수행하는 것, 모듈의 독립성을 나타내는 개념 1. 우연적 응집도 Coincidental Cohesion : 서로 간의 어떠한 의미 있는 연관관계도 없는 기능 요소 (회원 조회 기능에 돈 입금 기능) 2. 논리적 응집도 Logical Cohesion : 유사한 성격을 갖거나 논리적으론 관련이 있어 한 모듈에서 처리 (돈 입금 출금 같이 넣을 필요는 없다) 3. 시간적 응집도 Temporal Cohesion : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우 4. 절차적 응집도 Procedural Cohesion : 모듈이 다수의 관련 기능을 가질 때 그 기능을 순차적으로 수행 4. 통신적 응집도 Communication Cohesion : 동일한 입력과 출력을 사용 5. 순차적 응집도 Sequential Cohesion : 출력 값을 다른 활동이 사용할 경우 6. 기능적 응집도 Functional Cohesion : 모든 기능이 단일한 목적을 위해 수행되는 경우 |
3. 서버 프로그램 구현 | (1)취약성에 따른 공격기법 (DDoS; Distributed denial of service 분산 서비스 거부) ①서비스 거부 DOS; Danial of Service : 서비스 거부 ②코드 실행 : 쉘(Shell)명령 ③버퍼 오버플루우 : 정해진 메모리의 범위를 넘치게 한다. ④SQL삽입 : 입력폼에 SQL문을 삽일하여 DB열람 ⑤크로스 사이트 스크립팅(XSS) : 쿠키정보, 개인정보(클라이언트) ⑥CSRF (2)API (Application Programming Interface) 응용 프로그램 인터페이스 : 제어 할 수 있게 만든 인터페이스 -Open API : 플랫폼의 기능과 콘텐츠 외부에서 호출해 누구나 사용 할 수 잇게 한 API (개발자사이트에서 제공하는 지도, 검색, 등) -XML(Extensible Markup Language) : W3C에서 개발, 다목적 마크업 언어 (Header, Tag가 있다. 사이즈가 무겁다, 사전협의 필요) -JSON : 비동기 브라우저/서버통신(AJAX)을 위해 ‘속성-값 쌍’, ‘키-값-쌍’으로 이루어진 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷 (인간이 읽을수 있는 텍스트를 사용하는 포맷. Header가 없다. 사이즈가 가볍다.) -AJAX : 새로고침 기능으로 특정 부분만 새로고침 할 수 있다. -SOAP : 메시지를 전달하는 기반이 되는 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 -REST : 웹과 같은 분산 하이퍼 미디어 환경에서 자원의 존재 상태 정보를 표준화된HTTP 메서드(GET/POST/PUT/DELETE)로 주고 받는 웹 아키텍처 (분산 하이퍼미디어 시스템 (=웹)을 위한 아키텍쳐 스타일을 일 컫는다. 여기서 ‘아키텍처 스타일’이란 제약조건의 집합을 뜻한다. 이 제약 조건을 만족해야 REST 아키텍처를 따른다고 할 수있다.) 프로토콜 : 컴퓨터와 컴퓨터 사이에 메시지를 전달하는 과정 (데이터 통신을 원활하게 하기 위해 필요한 통신 규약) 컴퓨터와 컴퓨터가 서로 이해 할 수 있는 언어, 즉, 공용된 언어를 사용 해야 한다는 것. |
4. 배치 프로그램 구현 | (1)배치 프로그램 : 사용자와의 상호 작용 없이 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법 -Crontab : 특정 시간에 무엇을 실행하겠다. 00:00분 실행 (Back Up) (2)배치 프로그램의 필수 요소 (예) 뱅킹시스템 (은행) ①자동화 : 사용자의 개입 없이 동작해야 한다. ②안정성 : 문제가 언제 발생 했는지 등을 추적할 수 있어야 한다. ③대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 한다. ④견고성 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 말아야 한다. ⑤성능 : 주어진 시간 내에 처리를 완료, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다. (3)배치 프로그램의 유형 (이온정 : ①이벤트(이벤트발생시) 배치( ②온디맨드(요청시) 배치 ③정기(특정시간) 배치) (4)스프링 프레임워크 Spring Framework : 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 동적인 웹사이트 개발 프레임워크란? 설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리 이 두 가지 요소가 통합되어 제공되는 형태를 말한다. 사용자는 이를 이용해 일정 수준 이상의 품질을 보장받는 코드를 , 비교적 빠른 시간에 완성 및 유지보수 할 수 있는 환경을 제공해 주는 솔루션. |
반응형
'자격증' 카테고리의 다른 글
프로그래밍 언어 활용(응용SW 기초 기술 활용) (0) | 2025.02.16 |
---|---|
프로그래밍 언어 활용(프로그래밍 언어 활용) (0) | 2025.02.16 |
데이터베이스 구축(물리 데이터베이스 설계) (0) | 2025.02.16 |
데이터베이스 구축(논리 데이터베이스 설계) (0) | 2025.02.16 |
데이터베이스 구축(SQL 활용) (0) | 2025.02.16 |