본문 바로가기

자격증/정보처리기사 자격증 공부

Section 128 서버 개발

반응형

서버 개발의 개요

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

  • 웹 애플리케이션 서버에 구현된 서버 프로그램은 웹 서버로부터 받은 요청을 처리하여 결과를 반환하는 역할을 수행한다.
  • 서버 개발에 사용되는 프로그래밍 언어에는 Java, JavaScript, Python, PHP, Ruby 등이 있다.
  • 각 프로그래밍 언어에는 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크가 있다.

서버 개발 프레임워크

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

  • 서버 개발 프레임워크에 따라 지원하는 프로그래밍 언어가 제한적이므로 선정할 수 있는 프레임워크도 제한적이다.
  • 서버 개발 프레임워크의 대부분은 모델-뷰-컨트롤러 패턴을 기반으로 개발되었다.
  • 대표적인 서버 개발 프레임워크의 종류는 다음과 같다.
프레임워크 특징
Spring JAVA를 기반으로 만들어진 ㅍ레임워크로, 전자정부 표준 프레임워크의 기반 기술로 사용되고 있다.
Node.js JavaScript 기반으로 만들어진 프레임워크로, 비동기 입,출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있어 실시간으로 입, 출력이 빈번한 애플리케이션에 적합하다.
Django Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원한다.
Codeigniter PHP를 기반으로 만들어진 프레임워크로, 인터페이스가 간편하며 서버 자원을 적게 사용한다.
Ruby on Rails Ruby를 기반으로 만들어진 프레임워크로, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발이 가능하다.
전문가의 조언
- 서버 개발의 의미와 관련 프레임워크를 숙지하기.
- 서버 프로그램 구현하는 과정은 -> 1,2과목에서 학습했던 모듈 구현 과정과 동일하다

프레임워크란? 
- 사전적으로 '뼈대', '골조'를 의미하는데, 소프트웨어에서는 특정 기능을 수행하기 위해 필요한 클래스나 인터페이스 등을 모아둔 집합체를 말합니다.

- 서버 개발 프레임워크는 웹 프레임워크라고도 불린다. 
- 사용 여부에 따라 생산성의 차이가 크다.

모델-뷰-컨트롤러(MVC)
- 시스템을 세 부분으로 분리하여 서로 영향 받지 않고 개발할 수 있는 아키텍처 패턴을 의미합니다. 

플러그인화
- 재사용과 비슷한 의미로 전원 플러그처럼 마음대로 꼈다 뺐다 할 수 있다는 것을 의미합니다. 

서버 프로그램 구현

서버 프로그램은 응용 소프트웨어와 동일하게 모듈 및 공통 모듈을 개발한 후, 모듈들을 통합하는 방식으로 구현된다.

  • 모듈은 모듈화를 통해 분리된 시스템의 각 기능들로, 서브 루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용된다.
  • 모듈 개발 시 기능적 독립성을 고려하여 다른 모듈과의 과도한 상호작용을 배제함으로써 특정 모듈의 수정이 다른 모듈들에게 영향을 미치지 않아야 한다.
  • 모듈의 독립성은 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도를 약하게 하고 응집도를 강하게 하며 모듈의 크기를 작게 만들어야 한다.
  • 공통 모듈은 여러 프로그램에서 재사용할 수 있는 모듈을 의미하며, 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들이 공통 모듈로 구성될 수 있다.
전문가의 조언

- 루틴 Routine : 기능을 가진 명령들의 모임
- 메인 루틴 Main Routine : 프로그램 실행의 큰 줄기가 되는 것!
- 서브 루틴 Subroutine : 메인 루틴에 의해 필요할 때마다 호출되는 루틴!
- 결합도 Coupling : 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미합니다. 
- 응집도 Chhension : 정보 은닉 개념을 확장한 것으로, 명령어나 호출문 등 모듈의 내부 요소들으 ㅣ서로 관련되어 있는 정도, 즉 모듈이 독립적인 기능으로 정의 되어 있는 정도를 의미합니다. 

재사용 Reuse
- 이미 개발된 기능들을 파악하고, 재구성하여 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업입니다. 
반응형