Top 20 서버 프로그램 Best 104 Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 서버 프로그램 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Toplist.maxfit.vn team, along with other related topics such as: 서버 프로그램 서버 프로그램 종류, 서버 프로그램이란, 서버 프레임워크 순위, Node JS 프레임워크 순위, 웹서버, 서버 프로그래밍 언어 순위, 자바 서버 프레임워크, 자바 스크립트 프레임워크 순위


서버란 무엇인가요?
서버란 무엇인가요?


5장. 서버 프로그램 구현 : 네이버 블로그

  • Article author: m.blog.naver.com
  • Reviews from users: 37778 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 5장. 서버 프로그램 구현 : 네이버 블로그 – 시스템 소프트웨어에는 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등이 있음. – 개발 소프트웨어에는 요구사항 관리 도구, 설계/ … …
  • Most searched keywords: Whether you are looking for 5장. 서버 프로그램 구현 : 네이버 블로그 – 시스템 소프트웨어에는 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등이 있음. – 개발 소프트웨어에는 요구사항 관리 도구, 설계/ …
  • Table of Contents:

카테고리 이동

제목읍다

이 블로그 
정보처리기사실기
 카테고리 글

카테고리

이 블로그 
정보처리기사실기
 카테고리 글

5장. 서버 프로그램 구현 : 네이버 블로그
5장. 서버 프로그램 구현 : 네이버 블로그

Read More

서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징

  • Article author: iwuooh.com
  • Reviews from users: 21319 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징 프레임워크(Framework)의 개념 사전적 의미로 골조, 뼈대를 의미하는 프레임워크는 소프트웨어 공학에서는 특정한 기능을 수행하기 위해 필요한 … …
  • Most searched keywords: Whether you are looking for 서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징 프레임워크(Framework)의 개념 사전적 의미로 골조, 뼈대를 의미하는 프레임워크는 소프트웨어 공학에서는 특정한 기능을 수행하기 위해 필요한 … 프레임워크(Framework)의 개념 사전적 의미로 골조, 뼈대를 의미하는 프레임워크는 소프트웨어 공학에서는 특정한 기능을 수행하기 위해 필요한 인터페이스나 클래스 등을 모은 집합체를 의미한다. 프레임워크에는..
  • Table of Contents:

프레임워크(Framework)의 개념

서버 개발 프레임워크

관련글

댓글0

서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징
서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징

Read More

[ 정보처리기사 ] 서버 프로그램 구현

  • Article author: chlo22.tistory.com
  • Reviews from users: 48235 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [ 정보처리기사 ] 서버 프로그램 구현 Ⅰ소프트웨어 설계. Ⅱ 소프트웨어 개발. Ⅲ 데이터베이스 구축. Ⅳ 프로그래밍 언어 활용. Chapter 01 서버프로그램 구현. 1. 개발환경 구축. …
  • Most searched keywords: Whether you are looking for [ 정보처리기사 ] 서버 프로그램 구현 Ⅰ소프트웨어 설계. Ⅱ 소프트웨어 개발. Ⅲ 데이터베이스 구축. Ⅳ 프로그래밍 언어 활용. Chapter 01 서버프로그램 구현. 1. 개발환경 구축. 해당내용은 <수제비 정보처리기사> 책을 참고하여 작성된 개인적인 용도의 요약본입니다. Ⅰ소프트웨어 설계 Ⅱ 소프트웨어 개발 Ⅲ 데이터베이스 구축 Ⅳ 프로그래밍 언어 활용 Chapter 01 서버프로그램 구현 1…
  • Table of Contents:

태그

관련글

댓글0

최근글

인기글

[ 정보처리기사 ] 서버 프로그램 구현
[ 정보처리기사 ] 서버 프로그램 구현

Read More

4장. 서버 프로그램 구현

  • Article author: lipcoder.tistory.com
  • Reviews from users: 18478 ⭐ Ratings
  • Top rated: 3.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 4장. 서버 프로그램 구현 파일 서버 : 파일 저장 하드웨어로 물리 저장장치를 활용한 서버. □ 클라이언트 하드웨어 개발환경. – 클라이언트 프로그램 : 설치를 통해 사용자와 … …
  • Most searched keywords: Whether you are looking for 4장. 서버 프로그램 구현 파일 서버 : 파일 저장 하드웨어로 물리 저장장치를 활용한 서버. □ 클라이언트 하드웨어 개발환경. – 클라이언트 프로그램 : 설치를 통해 사용자와 … #1 개발환경 구축 개발환경 구축 1. 개발환경 구축의 개념 ■ 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해가 필요하다. 2. 개발 도구의 분류 (빌구테형) – 빌드 도구 : 작성한 코드의 빌드 및 배포..
  • Table of Contents:

기록공간

4장 서버 프로그램 구현 본문

4장. 서버 프로그램 구현
4장. 서버 프로그램 구현

Read More

[2021 정보처리기사 실기] 11. 서버 프로그램 구현

  • Article author: domdom.tistory.com
  • Reviews from users: 616 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [2021 정보처리기사 실기] 11. 서버 프로그램 구현 개발환경 구축 : 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해 필요. 개발도구와 서버의 선정, 개발에 사용되는 도구의 사용 편의성, … …
  • Most searched keywords: Whether you are looking for [2021 정보처리기사 실기] 11. 서버 프로그램 구현 개발환경 구축 : 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해 필요. 개발도구와 서버의 선정, 개발에 사용되는 도구의 사용 편의성, …  개발환경 구축 : 개발환경 구성 시 구현될 시스템 요구사항의 명확한 이해 필요. 개발도구와 서버의 선정, 개발에 사용되는 도구의 사용 편의성, 성능, 라이선스 확인 1. 개발도구의 분류 1) 구현도구 : 코드작..
  • Table of Contents:

티스토리 뷰

개발환경 구축

서버 프로그램 구현

배치 프로그램 구현

티스토리툴바

[2021 정보처리기사 실기] 11. 서버 프로그램 구현
[2021 정보처리기사 실기] 11. 서버 프로그램 구현

Read More

서버 프로그램 API

  • Article author: www.ibm.com
  • Reviews from users: 38034 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 서버 프로그램 API 다음 API는 서버 프로그램과 관련이 있습니다. 이 API는 알파벳순으로 나열됩니다. …
  • Most searched keywords: Whether you are looking for 서버 프로그램 API 다음 API는 서버 프로그램과 관련이 있습니다. 이 API는 알파벳순으로 나열됩니다. 다음 API는 서버 프로그램과 관련이 있습니다. 이 API는 알파벳순으로 나열됩니다.
  • Table of Contents:
서버 프로그램 API
서버 프로그램 API

Read More

[정보처리기사 4과목] 서버 프로그램 구현 (1)

  • Article author: y-oni.tistory.com
  • Reviews from users: 25070 ⭐ Ratings
  • Top rated: 4.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [정보처리기사 4과목] 서버 프로그램 구현 (1) 개요. 개발 환경 구축은 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어를 구축하는 것을 의미한다. …
  • Most searched keywords: Whether you are looking for [정보처리기사 4과목] 서버 프로그램 구현 (1) 개요. 개발 환경 구축은 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어를 구축하는 것을 의미한다. [정보처리기사 4과목 필기 예상 키워드] 목록으로 돌아가기 과목: 4. 프로그래밍 언어 활용 챕터: 1장 서버 프로그램 구현 키워드: 서버 프로그램 구현(1)  #개발환경구축 #서버개발 #보안 및 API 개발환경구축..
  • Table of Contents:

개발환경구축

서버 개발

보안 및 API

태그

‘2021 정보처리기사4과목 프로그래밍 언어 활용’ 관련글

Comments

티스토리툴바

[정보처리기사 4과목] 서버 프로그램 구현 (1)
[정보처리기사 4과목] 서버 프로그램 구현 (1)

Read More


See more articles in the same category here: Top 287 tips update new.

5장. 서버 프로그램 구현

개발 환경 구축의 개요:

– 개발 환경 구축은 응용 소프트웨어 개발을 위해 개발 프로젝트를 이해하고 소프트웨어 및 하드웨어 장비를 구축하는 것을 의미.

– 개발 환경은 응용 소프트웨어가 운영될 환경과 유사한 구조로 구축.

– 개발 프로젝트의 분석 단계의 산출물을 바탕으로 개발에 필요한 하드웨어와 소프트웨어를 선정.

– 하드웨어와 소프트웨어의 성능, 편의성, 라이선스 등의 비즈니스 환경에 적합한 제품들을 최종적으로 결정하여 구축.

하드웨어 환경:

– 하드웨어 환경은 사용자와의 인터페이스 역할을 하는 클라이언트(Client) 그리고 클라이언트와 통신하여 서비스를 제공하는 서버(Server)로 구성.

– 클라이언트에는 PC, 스마트폰 등이 있음.

– 서버는 사용 목적에 따라 웹 서버, 웹 애플리케이션 서버, 데이터베이스 서버, 파일 서버 등으로 나뉨.

웹 서버(Web Server):

– 클라이언트로부터 직접 요청을 받아 처리하는 서버로, 저용량의 정적 파일들을 제공.

– Apache HTTP Server, Microsoft Internet Information Service, Google Web Server 등.

웹 애플리케이션 서버(WAS, Web Appliication Server):

– 사용자에게 동적 서비스를 제공하기 위해 웹 서버로부터 요청을 받아 데이터 가공 작업을 수행하거나, 웹 서버와 데이터베이스 서버 또는 웹 서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버.

– Apache Tomcat, IBM WebSphere, Oracle WebLogic 등.

데이터베이스 서버(DB Server):

– 데이터베이스와 이를 관리하는 DBMS를 운영하는 서버.

– MySQL Server, Oracle Server, Microsoft SQL Server 등

파일 서버(File Server):

– 데이터베이스에 저장하기에는 비효율적이거나, 서비스 제공을 목적으로 유지하는 파일들을 저장하는 서버.

– AWS S3 등.

웹 서버의 기능:

HTTP/HTTPS 지원 브라우저로부터 요청을 받아 응답할 때 사용되는 프로토콜 통신 기록 (Communication Log) 처리한 요청들을 로그 파일로 기록하는 기능 정적 파일 관리 (Managing Static Files) HTML, CSS, 이미지 등의 정적 파일들을 저장하고 관리하는 기능 대역폭 제한 (Bandwidth Throttling) 네트워크 트래픽의 포화를 방지하기 위해 응답 속도를 제한하는 기능 가상 호스팅 (Virtual Hosting) 하나의 서버로 여러 개의 도메인 이름을 연결하는 기능 인증 (Authentication) 사용자가 합법적인 사용자인지를 확인하는 기능

소프트웨어 환경:

– 소프트웨어 환경은 클라이언트와 서버 운영을 위한 시스템 소프트웨어와 개발에 사용되는 개발 소프트웨어로 구성.

– 시스템 소프트웨어에는 운영체제(OS), 웹 서버 및 WAS 운용을 위한 서버 프로그램, DBMS 등이 있음.

– 개발 소프트웨어에는 요구사항 관리 도구, 설계/모델링 도구, 구현 도구, 빌드 도구, 테스트 도구, 형상 관리 도구 등이 있음.

요구사항 관리 도구:

– 요구사항의 수집과 분석, 추적 등을 편리하게 도와주는 소프트웨어.

– JIRA, IBM DOORS, inteGREAT, Reqtity, Trello 등.

설계/모델링 도구:

– UML(통합 모델링 언어)을 지원하며, 개발의 전 과정에서 설계 및 모델링을 도와주는 소프트웨어.

– DB Designer, PlantUML, ArgoUML 등.

구현 도구:

– 개발 언어를 통해 애플리케이션의 실제 구현을 지원하는 소프트웨어.

– Eclipse, InteliJ IDEA, Visual Studio, Netbeans, Node.js 등.

빌드 도구:

– 구현 도구를 통해 작성된 소스의 빌드 및 배포, 라이브러리 관리를 지원하는 소프트웨어.

– Ant, Gradle, Maven, Jenkins 등.

테스트 도구:

– 모듈들이 요구사항에 적합하게 구현되었는지 테스트하는 소프트웨어.

– CppUnit, JUnit, HttpUnit, NUnit, SpringTest 등.

형상 관리 도구:

– 산출물들을 버전별로 관리하여 품질 향상을 지원하는 소프트웨어.

– GIT, CVS, Subversion, Mercurial 등

개발 언어의 선정 기준:

적정성 개발하려는 소프트웨어의 목적에 적합해야 함 효율성 코드의 작성 및 구현이 효율적이어야 함 이식성 다양한 시스템 및 환경에 적용이 가능해야 함 친밀성 개발 언어에 대한 개발자들의 이해도와 활용도가 높아야 함 범용성 다른 개발 사례가 존재하고 여러 분야에서 활용되고 있어야 함

모듈(Module)의 개요:

– 모듈화를 통해 분리된 시스템의 각 기능들로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용.

– 모듈은 단독으로 컴파일이 가능하며, 재사용할 수 있음.

– 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립됨을 의미하며, 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제함으로써 이루어짐.

– 독립성이 높은 모듈일수록 모듈을 수정하더라고 다른 모듈들에게는 거의 영향을 미치지 않으며, 오류가 발생해도 쉽게 발견하고 해결할 수 있음.

– 모듈의 독립성은 결합도(Coupling)와 응집도(Cohesion)에 의해 측정되며, 독립성을 높이려면 모듈의 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함.

결합도(Coupling):

– 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미.

– 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮음.

– 결합도가 강하면 시스템 구현 및 유지보수 작업이 어렵다.

– [자료 결합도][스탬프 결합도][제어 결합도][외부 결합도][공통 결합도][내용 결합도]

– 결합도 약함 <ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ> 결합도 강함

자료 결합도:

– 모듈 간의 인터페이스가 자료 요소로만 구성될 때.

– 어떤 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출 받은 데이터에 대한 처리 결과를 다시 돌려주는 방식.

– 모듈 간의 내용을 전혀 할 필요가 없는 상태로서 한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 가장 바람직한 결합도.

스탬프 결합도:

– 모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때.

– 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도.

제어 결합도:

– 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용하여 통신하거나 제어 요소(Function Code, Switch, Tag, Flag)를 전달하는 결합도.

– 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생.

– 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도현상이 발생하게 됨.

외부 결합도:

– 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도.

– 참조되는 데이터의 범위를 각 모듈에서 제한할 수 있음.

공통(공유) 결합도:

– 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도.

– 공통 데이터 영역의 내용을 조금만 변경하더라도 모든 모듈에 영향을 미치므로 모듈의 독립성을 약하게 만듬.

내용 결합도:

– 한 모듈이 다른 모듈의 내부 기능 및 내부 자료를 직접 참조하거나 수정 할 때의 결합도.

– 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우에도 내용 결합도에 해당.

응집도(Cohesion):

– 정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정보, 즉 모듈이 독립적인 기능으로 정의되거 있는 정도를 의미.

– 다양한 기준으로 모듈을 구성할 수 있으나 응집도가 강할수록 품질이 높고, 약할수록 품질이 낮음.

– [기능적 응집도][순차적 응집도][교환적 응집도][절차적 응집도][시간적 응집도][논리적 응집도][우연적 응집도]

– 응집도 강함 <ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ> 응집도 약함

기능적 응집도(Functional Cohesion):

– 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우.

순차적 응집도(Sequential Cohesion):

– 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우.

교환(통신)적 응집도(Communication Cohesion):

– 동일한 입력돠 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우.

절차적 응집도(Procedural Cohesion):

– 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우.

시간적 응집도(Temporal Cohesion):

– 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우.

논리적 응집도(Logical Cohesion):

– 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우.

우연적 응집도(Coincidental Cohesion):

– 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우.

팬인(Fan-In) / 팬아웃(Fan-Out):

– 팬인은 어떤 모듈의 제어(호출)하는 모듈의 수.

– 팬아웃은 어떤 모듈에 의해 제어(호출)되는 모듈의 수.

– 팬인과 팬아웃을 분석하여 시스템의 복잡도를 알 수 있음.

– 팬인이 높다는 것은 재사용 측면에서 설계가 잘 되어있다고 볼 수 있으나, 단일 장애점이 발생할 수 있으므로 중점적인 관리 및 테스트가 필요함.

– 팬아웃이 높은 경우 불필요하게 다른 모듈을 호출하고 있는지 검토하고, 단순화 시킬 수 있는지 여부에 대한 검토가 필요.

– 시스템의 복잡도를 최적화하려면 팬인은 높게, 팬아웃은 낮게 설계해야 함.

DBMS 접속의 개요:

– DBMS 접속은 사용자가 데이터를 사용하기 위해 응용 시스템을 이용하여 DBMS에 접근하는 것을 의미.

– 응용 시스템은 사용자로부터 매개 변수를 전달받아 SQL을 실행하고 DBMS로부터 전달받은 결과를 사용자에게 전달하는 매개체 역할을 수행.

– 인터넷을 통해 구동되는 웹 응용 프로그램은 웹 응용 시스템을 통해 DBMS에 접근.

– 웹 응용 시스템은 웹 서버와 웹 애플리케이션 서버(WAS)로 구성되며, 서비스 규모가 작은 경우 웹 서버와 웹 애플리케이션 서버를 통합하여 하나의 서버만으로 운용할 수 있음.

웹 응용 시스템의 구조

– [웹 응용 프로그램] <-> [웹 서버] <-> [WAS] <-> [DBMS]

– 사용자는 웹 응용 프로그램을 통해 웹 서버에 접속하여 데이터를 주고 받음.

– 웹 서버는 많은 수의 서비스 요청을 처리하기 때문에 사용자가 대용량의 데이터를 요청하면 직접 처리하지 않고 WAS에게 해당 요청을 전달.

– WAS는 수신한 요청을 트랜잭션 언어로 변환한 후 DBMS에 전달하여 데이터를 받음. 이렇게 받은 데이터는 처음 요청한 웹 서버로 다시 전달되어 사용자에게까지 도달.

DBMS 접속기술:

– DBMS에 접근하기 위해 사용하는 API 또는 API의 사용을 편리하게 도와주는 프레임워크 등을 의미.

JDBC(Java DataBase Connectivity):

– Java 언어로 다양한 종류의 데이터베이스에 접속하고 SQL문을 수핼할 때 사용되는 표준 API.

– 1997년 2월 썬 마이크로시스템에서 출시.

– JDBC는 Java SE(Standard Edition)에 포함되어 있으며, JDBC 클래스는 java.sql, javax.sql에 포함되어 있음.

– 접속하려는 DBMS에 대한 드라이버가 필요함.

ODBC(Open DataBase Connectivity):

– 데이터베이스에 접근하기 위한 표준 개방형 API로, 개발 언어에 관계 없이 사용할 수 있음.

– 1992년 9월 마이크로소프트에서 출시.

– 프로그램 내 ODBC 문장을 사용하여 MS-Access, DBase, DB2, Excel, Text 등 다양한 데이터베이스에 접근할 수 있음.

– ODBC도 접속하려는 DBMS에 맞는 드라이버가 필요하지만, 접속하려는 DBMS의 인터페이스를 알지 못하더라도 ODBC 문장을 사용하여 SQL을 작성하면 ODBC에 포함된 드라이버 관리자가 해당 DBMS의 인터페이스에 맞게 연결해 주므로 DBMS의 종류를 몰라도 됨.

MyBatis:

– JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크.

– JDBC로 데이터베이스로 접속하려면 다양한 메소드를 호출하고 해제해야 하는데, MyBatis는 이를 간소화 했고 접속 기능을 더욱 강화.

– SQL 문장을 분리하여 XML 파일을 만들고, Mapping을 통해 SQL을 실행함.

– SQL을 거의 그대로 사용할 수 있어서 SQL 친화적인 국내 환경에 적합하여 많이 사용됨.

동적 SQL(Dynamic SQL):

– 동적 SQL은 다양한 조건에 따라 SQL 구문을 동적으로 변경하여 처리할 수 있는 SQL 처리 방식.

– SQL문을 문자열 변수에 넣어 처리함.

– 사용자로부터 SQL문의 일부 또는 전부를 입력받아 실행할 수 있음.

– 동적 SQL은 값이 입력되지 않을 경우 사용하는 NVL 함수를 사용할 필요가 없음.

– 응용 프로그램 수행 시 SQL이 변형될 수 있으므로 프리컴파일 할 때 분석, 접근 권한 확인 등을 할 수 없음.

– 정적 SQL에 비해 속도가 느리지만, 상황에 따라 다양한 조건을 첨가하는 등 유연한 개발이 가능함.

정적SQL vs 동적SQL:

정적 SQL(Static SQL) 동적 SQL(Dynamic SQL) SQL 구성 커서(Cursor)를 통한 정적 처리 문자열 변수에 담아 동적 처리 개발 패턴 커서의 범위 안에서 반복문을 활용하여 SQL 작성 NVL 함수 없이 로직을 통해 SQL 작성 실행 속도 빠름 느림 사전 검사 가능 불가능

NVL 함수:

– NVL(A, B) 형태의 함수로, A가 NULL인 경우 B를 반환하고, 아니면 A를 반환함.

– 동적 SQL에서는 원하는 조건에 따라 자유롭게 SQL문을 바꿀 수 있으므로, NVL 함수 없이 SQL문을 구성하는 것이 가능함.

서버 개발의 개요:

– 서버 개발은 웹 애플리케이션의 로직을 구현할 서버의 프로그램을 제작할 때 웹 애플리케이션 서버(WAS)에 탑재하는 것을 의미.

– 웹 애플리케이션 서버에 구현된 서버 프로그램은 웹 서버로부터 받은 요청을 처리하여 결과를 반환하는 역할을 수행.

– 서버 개발에 사용되는 프로그래밍 언어에는 Java, JavaScript, Python, PHP, Ruby 등이 있음.

– 각 프로그래밍 언어에는 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크가 있음.

서버 개발 프레임워크:

– 서버 개발 프레임워크는 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어를 의미.

– 서버 개발 프레임워크에 따라 지원하는 프로그래밍 언어가 제한적이므로 선정할 수 있는 프레임워크도 제한적.

– 서버 개발 프레임워크의 대부분은 모델-뷰-컨트롤러(MVC) 패턴을 기반으로 개발되었음.

대표적인 서버 개발 프레임워크:

프레임워크 특징 Spring JAVA를 기반, 전자정부 표준 프레임워크의 기반 기술로 사용 Node.js JavaScript를 기반, 비동기 입출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있어 실시간으로 입출력이 빈번한 애플리케이션에 적합 Django Python을 기반, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원 Codeigniter PHP 기반, 인터페이스가 간편하며 서버 자원을 적게 사용함 Ruby On Rails Ruby 기반, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발이 가능

서버 개발 과정:

– 서버 개발은 DTO/VO, SQL, DAO, Service, Controller를 각각 구현하는 과정을 통해 이루어짐.

– 구현 순서는 개발자가 임의로 변경할 수 있음.

– 개발하려는 서버 프로그램의 목적, 개발 언어, 규모 등의 이유로 통합되거나 세분화될 수 있음.

– 모든 과정에서 보안 약점이 발생하지 않도록 소프트웨어 개발 보안 가이드를 참고함.

DTO(Data Transfer Object) / VO(Value Object) 구현:

– DTO/VO 구현은 데이터 교환을 위해 사용할 객체를 만드는 과정.

– 변수 및 객체를 송수신할 데이터의 자료형(Data Type)에 알맞게 생성.

– 알고리즘 등의 로직은 구현하지 않고, 변수와 데이터를 저장하고 반환하는 메소드만 구현.

ex)

DTO:

– 데이터의 교환을 위해 생성되는 객체.

VO:

– DTO와 동일하지만 읽기만 가능한 객체, 변경이 불가능함.

SQL 구현:

– SQL 구현은 데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문을 생성하는 과정.

– SQL문은 소스 코드 내에 직접 입력하거나, 별도의 XML 파일로 저장하여 관리.

– XML 파일로 SQL문을 관리하는 경우 중복되는 SQL문을 최소화할 수 있고, 유지보수가 간편해짐.

ex)

​DAO(Data Access Object) 구현:

– DAO 구현은 데이터베이스 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드를 구현하는 과정.

ex)

Service 구현:

– Service 구현은 사용자의 요청에 응답하기 위한 로직을 구현하는 과정.

ex)

Controller 구현:

– Controller 구현은 사용자의 요청에 적절한 서비스를 호출하여, 그 결과를 사용자에게 반환하는 코드를 구현하는 과정.

ex)

각 구성 요소의 진행 과정:

어노테이션(Annotation):

– 어노테이션은 클래스, 메소드, 변수 등의 앞에 사용되어 해당 객체에 대한 메타 데이터를 정의.

– @가 붙은것들이 어노테이션.

스택 트레이스(Stack Trace):

– 오류가 발생한 위치를 추적하기 위해 소프트웨어 실행 중에 호출한 메소드의 리스트를 기록한 것.

배치 프로그램(Batch Program)의 개요:

– 배치 프로그램은 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것을 의미.

– 배치 프로그램이 자동으로 수행되는 주기에 따라 정기 배치, 이벤트 성 배치, On-Demand 배치로 구분.

정기 배치 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 이벤트성 배치 특정 조건을 설정해두고 조건이 충족될 때만 수행 On-Demand 배치 사용자 요청 시 수행

배치 프로그램이 갖추어야 할 요소:

대용량 데이터 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함 자동화 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 함 견고성 잘못된 데이터나 데이터의 중복 등의 상황으로 중단되는 일 없이 수행되어야 함 안전성/신뢰성 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 함 성능 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 함

배치 스케줄러(Batch Scheduler):

– 배치 스케줄러는 일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구.

– 특정 업무(Job)을 원하는 시간에 처리할 수 있도록 지원한다는 특성 때문에 잡 스케줄러(Job Scheduer)라고도 불림.

– 주로 사용되는 배치 스케줄러에는 스프링 배치, Quartz 등이 있음.

스프링 배치(Spring Batch):

– 스프링 배치는 Spring Source사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임워크.

– 스프링 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능들을 모두 사용할 수 있음.

– 데이터베이스나 파일의 데이터를 교환하는데 필요한 컴포넌트들을 제공.

– 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공.

스프링 배치의 주요 구성 요소와 역할:

Job 수행할 작업 정의 Job Launcher 실행을 위한 인터페이스 Step Job 처리를 위한 제어 정보 Jop Repository Step의 제어 정보를 포함하여 작업 실행을 위한 모든 정보 저장

Quartz:

– Quartz는 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리.

– 수행할 작업과 수행 시간을 관리하는 요소들을 분할하여 일괄 처리 작업에 유연성을 제공.

Quartz의 주요 구성 요소와 역할:

Scheduler 실행 환경 관리 Job 수행할 작업 정의 JobDetail Job의 상세 정보 Trigger Job의 실행 스케줄 정의

Cron:

– Cron은 리눅스의 스케줄러 도구로 crontab 명령어를 통해 작업을 예약할 수 있음.

– 편집기(Editor)에서 요일, 월, 일, 시 분을 기준으로 수행할 명령어를 지정.

Cron의 옵션:

-e 편집기를 호출하여 작업 추가 및 수정 -l 작업 목록(List) 출력 -r 작업 삭제(Remove)

Cron 작업 예약 형식:

– 분, 시, 일, 월, 요일에 “*”를 입력하면 매 시기마다 수행.

ex) * * * * * /root/com_1.sh -> 매월 매일 매시 매분마다 com_1.sh를 실행

ex) 30 1 * * * /root/com_1.sh -> 매월 매일 1시 30분에 com_1.sh를 실행

– 시 우측에 ‘/[단위]’를 입력하면 시기를 단위로 나눈 나머지가 0일 때마다 명령어를 수행

ex) 30 */3 * * * /root/com_1.sh -> 매월 매일 0:30분부터 3시간마다 com_1.sh를 실행

– [시]-[시]를 통해 특정 구간에만 반복하여 명령어를 실행할 수 있음.

ex) * 18-23 20 * * /root/com_1.sh -> 매월 20일 18~23시 사이에 매분마다 com_1.sh를 실행

– [월],[월],[월]를 통해 특정 달에만 명령어를 실행할 수 있음.

ex) 30 23 25 4,9,11 * /root/com_1.sh -> 4/9/11월의 25일 23시 30분에 com_1.sh를 실행

서버 프로그램 구현을 위한 서버 개발 프레임워크의 종류와 특징

프레임워크(Framework)의 개념

사전적 의미로 골조, 뼈대를 의미하는 프레임워크는 소프트웨어 공학에서는 특정한 기능을 수행하기 위해 필요한 인터페이스나 클래스 등을 모은 집합체를 의미한다. 프레임워크에는 4가지 특징이 있다. 첫째는 모듈화(Modularity)로, 캡슐화를 통해 모듈화를 강화하여 이에 따라 소프트웨어의 설계의 구현이나 수정에 따른 영향을 최소화하여 개발하고자 하는 소프트웨어의 품질을 향상할 수 있다. 두 번째는 재사용성(Reusability)으로 앞서 모듈화를 통해 재사용이 가능한 모듈을 생산하여 개발자가 프로그램을 생산하는 데 있어 생산성을 향상한다. 셋째는 확장성(Extensibility)으로, 인터페이스의 확장이 가능한 프레임워크를 통해 다양한 기능과 형태를 지닌 소프트웨어의 개발이 가능해진다. 마지막은 제어의 흐름(Inversion Of Contol)으로 특정한 이벤트가 발생했을 때 프레임워크가 애플리케이션의 메서드를 호출하여 프레임워크가 전체 애플리케이션의 흐름의 제어를 가능하게 한다.

서버 개발 프레임워크

서버 개발 프레임워크란 서버 프로그램을 개발할 때 네트워크의 설정이나 다양한 요청 및 응답의 처리를 쉽게 할 수 있도록 인터페이스나 클래스를 제공하는 소프트웨어이다. 프레임워크의 종류에 따라 지원하는 프로그래밍 언어가 다르므로 선정할 수 있는 프레임워크도 제한적이다. 주로 모델-뷰-컨트롤러(Model-View-Controller, MVC)라 하는 소프트웨어 디자인 패턴이 사용된다. 이 방법을 사용하면 프로그램을 실행하는 데 필요한 로직을 사용자 인터페이스로부터 분리하여 해당 로직과 사용자에게 보이는 화면이 서로 아무런 영향 없이 쉽게 수정이 가능한 애플리케이션을 만들 수 있다. 컨트롤러는 모델에 명령을 보내어 모델의 상태를 바꾸고, 모델은 이렇게 상태에 변화가 생기면 컨트롤러와 뷰에 이를 다시 전송한다. 이를 통해 모델은 최신의 정보를 보여줄 수 있고, 컨트롤러는 변화에 따라 적용이 가능한 추가나 수정 작업을 지시할 수 있다. 뷰는 모델로부터 정보를 받아와서 사용자가 보게 될 화면을 만든다.

Spring

JAVA를 기반으로 만들어진 오픈소스 프레임워크로, 여러 가지 서비스를 제공하여 동적인 웹사이트를 개발하는 데 도움을 준다. 대한민국 공공기관의 웹서비스를 개발하는 데 있어서 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로 사용되고 있다. 스프링은 자바 객체의 생성과 소멸 같은 생명 주기를 직접 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 또, 스프링은 확장성이 높아서 스프링 프레임워크에 통합하려면 간단한 작업만 하면 되기 때문에 많은 라이브러리가 스프링에서 이미 지원되고 있고, 스프링에서 사용되는 라이브러리를 떼어내기도 쉽다.

Node.js

Javascript를 기반으로 만들어진 확장성 있는 서버 개발에 사용되는 소프트웨어 플랫폼이다. 비동기, 입/출력 처리와 이벤트 루프를 통한 높은 처리 성능을 가지고 있어서 실시간으로 입/출력이 빈번하게 발생된다. Node.js는 서버 라이브러리를 내장하고 있기 때문에 아파치 등 별도의 소프트웨어가 필요 없다. 따라서 웹 서버의 동작에 있어서 더 많은 제어가 가능하다.

Django

Python을 기반으로 작성된 오픈소스 프레임워크로, 개발하는 과정에서 번거로운 요소를 새로이 개발하지 않고 내장된 기능을 이용하여 빠른 개발이 가능하다는 장점이 있다. 복잡한 데이터베이스 기반의 웹사이트를 개발하는 데 있어서 효율적으로 작동하고자 하는 것이 Django의 주된 목적이다. 또한 컴포넌트의 재사용성과 플러그인을 가능하게 하게 하여 이를 통한 빠른 개발을 강조한다.

Ruby On Rails

Ruby를 기반으로 만들어진 오픈소스 프레임워크로 데이터베이스를 이용해서 애플리케이션을 개발할 때 코드의 반복을 최소화함에 있어 효과적이라는 측에서 인기가 많다. 또한 Ruby On Rails가 기반으로 하는 ActiveRecored는 테스트를 위한 웹서버를 지원하여 데이터베이스의 작업을 추상화함으로써 생성/읽기/갱신/삭제(Create/Read/Update/Delete, CRUD) 작업을 최대한 단순화하고 자동화시켜 신속한 개발이 가능하게끔 한다.

[ 정보처리기사 ] 서버 프로그램 구현

320×100

해당내용은 <수제비 정보처리기사> 책을 참고하여 작성된 개인적인 용도의 요약본입니다.

Ⅰ소프트웨어 설계

Ⅱ 소프트웨어 개발

Ⅲ 데이터베이스 구축

Ⅳ 프로그래밍 언어 활용

Chapter 01 서버프로그램 구현

1. 개발환경 구축

2. 공통 모듈 구현

3. 서버 프로그램 구현

4. 배치 프로그램 구현

Chapter 02 프로그래밍 언어 활용

Chapter 03 응용 SW 기초 기술 활용

Ⅴ 정보시스템 구축관리

3. 서버 프로그램 구현

1) 서버 프로그램 구현

(1) 서버 프로그램 구현의 개념

: 업무 프로세스( BusinessLogic)를 기반으로 개발언어, 도구를 이용하여 서버에서 서비스를 제공하는데 필요한

기능을 구현하는 활동

(2) 서버 프로그램 구현 절차

– DTO : DataTransferObject는 프로세스 사이에서 데이터를 전송하는 객체로 GetterSetter메소드만 포함함.

– VO : ValueObject는 값을 위해 쓰이는 객체이며, DTO와 비슷한 역할을 한다.

– DAO : DataAccessObject는 ‘DB 접근을 위한 로직’과 ‘비즈니스 로직’을 분리하기 위해 사용하며, 특정타입의

DB에 추상인터페이스를 제공하는 객체이므로 세부내용 노출 없이 데이터 조작이 가능하다.

2) 보안 취약성 식별

(1) 보안 취약성의 개념

: 정보시스템에 불법적인 사용자의 접근, 정상적인 서비스를 방해, 중요 데이터 유출&변조&삭제에 대한 위협

(2) 침투 테스트 개념

: 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 시스템의 취약점을 찾기 위한 방법

(3) 취약성 공격

: 악성 코드, 악성 프로그램 등을 이용하여 보안 버그, 잘못된 설정 같은 결함에 대한 공격

(4) 취약성에 따른 공격기법

– 서비스 거부(DoS): 무의미한 서비스 요청을 반복하여 시스템의 가용자원을 소모시키는 공격

– 코드 실행: 입력 유효성 검사가 없는 쉘명령 실행의 취약점 이용해 공격자가 원하는 코드를 실행시키는 공격

– 버퍼 오버플로우: 메모리범위를 넘치게 해 原리턴주소를 변경시키고 특정 프로그램/함수를 실행시키는 공격

– 정보 수집: 공격전 서버 또는 시스템의 정보를 알아내고 수집하는 공격

– 권한 상승: 악성프로그램 설치 후 데이터 조회/변경/삭제 등을 통한 권한 상승으로 루트권한 획득하는 공격

– SQL 삽입: 공격자가 입력 폼 및 URL란에 SQL문을 삽입하여 DB로 부터 정보 열람하는 공격

– XSS(크로스 사이트 스크립팅): 게시판에 악성 스크립트를 작성, 삽입한 뒤 사용자가 이를 조회하면 이벤트를

발생하게 하여 사용자의 쿠키정보, 개인정보를 특정 사이트로 전송하는 공격

– CSRF(사이트 간 요청 위주 공격): 특정 웹 사이트에 공격자가 의도한 행위를 사용자가 요청하게 만드는 공격

– 디렉터리 접근: HTTP 기반의 공격으로 엑세스가 제한된 디렉터리에 접근해, 서버의 루트 디렉터리에서

외부 명령을 실행하여 파일, 웹 소스 등을 강제로 내려받을 수 있는 공격

– FTP 바운스 공격: FTP 서버가 데이터를 전송할 때 목적지가 어딘지 검사하지 않는 설계상 문제점 이용한 공격

(5) 시큐어 코딩

: 개발자의 실수, 논리적 오류로 인해 SW에 내포된 보안 취약점을 최소화하여 안전한 SW 개발을 위한 활동

2) API

(1) API의 개념

: 다양한 컴포넌트 간의 통신 방법으로 개발자들에게 필요한 기능을 추상화하여 객체, 클래스 등을 제공.

(2) API의 유형

– 오픈 API: 누구나 쉽게 접근하여 정보 공유를 하기 위해 만든 API

– 비공개 API: 권한이 있는 그룹 사용자들에게 정보 제공의 목적으로 만든 API

(3) API의 종류

– 윈도우즈 API: C, C++ 프로그램에서 직접 운영체제와 상호작용 할 수 있도록 마이크로소프트가 만든 API

– 웹 API: 웹 애플리케이션에서 다른 서비스에 요청을 보내고 응답받기 위한 API e.g.XML, JSON, SOAP, REST

– 오픈 API: 개발자사이트에서 제공하는 지도, 검색, 머신러닝과 같이 웹프로토콜(HTTP)로 호출해 사용하는 API

– 자바 API: 입출력, 화면 구성, 이미지, 네트워크처럼 복잡한 클래스들을 미리 구현해, 자바를 사용하기 쉽도록

만든 클래스 라이브러리의 집합

320×100

반응형

So you have finished reading the 서버 프로그램 topic article, if you find this article useful, please share it. Thank you very much. See more: 서버 프로그램 종류, 서버 프로그램이란, 서버 프레임워크 순위, Node JS 프레임워크 순위, 웹서버, 서버 프로그래밍 언어 순위, 자바 서버 프레임워크, 자바 스크립트 프레임워크 순위

Leave a Comment