프로그래밍 언어 활용(서버프로그램 구현)

2025. 2. 16. 11:50자격증

반응형
1. 개발환경 구축 인터페이스 : 이기종 시스템 또는 컴포넌트 간 데이터 교환 및 처리를 위한 기능이다.
컴포넌트 : 모듈 내에서도 재사용이 가능한 단위 독립된 모듈, 재사용이 가능한 최소 단위 (모듈>컴포넌트>클래스)
모듈 : 특정 기능을 온전히 수행할 수 있도록 만들어 졌다.
프로시저 : 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
 
함수 : 반환 값이 있는 경우
루틴 : ‘정해진 일이라는 의미, 정해진 함수를 호출한다는 의미에서 루틴
프로시저 : ‘절차라는 의미. 어떤 작업이나 문제를 해결하기 위한 명령어를 순서대로 적어놓은 코드를 의미 (프로시저 : 반환 값이 없는 경우)
서브루틴 : ‘하위(Sub)’정해진 일이라는 의미, 함수 안에서 또 다른 함수가 호출될 떄, 즉 루틴에서 불려지는 또른 루틴을 하위 루틴
è함수(Function)라는 말 대신 루틴(Rutine) 프로시저(Procedure) 서브루틴(Sub-Routine)
 
(1)개발환경 구축도구의 분류 (빌구테형 : 드 도구 ②현도구 : Eclipse, Visual Studio 스트 도구④상 관리 도구 : 문서 버전관리
1. 컴파일 : 개발자가 작성한 소스코드를 바이너리코드(01)로 변환하는 과정
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 : 자바플랫폼을 위한 오픈소스 애플리케이션 프레임워크로 동적인 웹사이트 개발
 
 
프레임워크란? 설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리 이 두 가지 요소가 통합되어 제공되는 형태를 말한다. 사용자는 이를 이용해 일정 수준 이상의 품질을 보장받는 코드를 , 비교적 빠른 시간에 완성 및 유지보수 할 수 있는 환경을 제공해 주는 솔루션.
반응형