[정보처리산업기사] 59강 서버 개발

DongHo Im·2022년 1월 25일
0

정보처리산업기사

목록 보기
59/86

1. 서버 개발의 개요

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

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

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

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


2. 서버 개발 프레임워크

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

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

    • 모델-뷰-컨트롤러(MVC) : 시스템을 세부분으로 분리하여 서로 영향 받지 않고 개발할 수 있는 아키텍처 패턴을 의미한다.
  • Spring : JAVA를 기반으로 만들어진 프레임워크로, 전자정부 표준 프레임워크의 기반 기술로 사용되고 있다.

  • Node.js: JavaScript를 기반으로 만들어진 프레임워크로, 비동기 입출력 처리와 이벤트 위주의 높은 처리 성능을 갖고 있어 실시간으로 입출력이 빈번한 애플리케이션에 적합하다.

  • Django : Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원한다.

  • Codeigniter : PHP를 기반으로 만들어진 프레임워크로, 인터페이스가 간편하며 서버 자원을 적게 사용한다.

  • Ruby on Rails : Ruby를 기반으로 만들어진 프레임워크로, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발이 가능하다.


3. 서버 프로그램 구현

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

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

  • 특정 모듈의 수정이 다른 모듈에 영향을 끼치면 안된다.

  • 모듈의 독립성은 결합도(Coupling)응집도(Cohesion)에 의해 측정된다.

  • 공통 모듈은 여러 프로그램에서 재사용(Reuse)할 수 있는 모듈을 의미한다.

  • 프레임워크의 특성

    • 모듈화(modularity)

      • 프레임워크는 구현을 인터페이스 뒤에 감추는 캡슐화를 통해서 모듈화를 강화합니다.
      • 프레임워크의 모듈화는 설계와 구현의 변경에 따르는 영향을 최소화함으로써 손쉽게 소프트웨어의 품질을 향상시킬 수 있게 합니다.
    • 재사용성(reusablity)

      • 프레임워크 컴포넌트를 재사용하는 것은 소프트웨어의 품질, 성능, 신뢰성, 상호 운용성을 향상시킬 뿐만 아니라, 프로그래머의 생산성을 상당히 높여줍니다.
    • 확장성(extensibilty)

      • 프레임워크는 다형성(polymorphism)을 통해 애플리케이션이 프레임워크의 인터페이스를 확장할 수 있게 합니다.
    • 제어의 역흐름(inversion of control)

      • 일반적으로 어떤 모듈을 호출함으로써 해당 모듈을 재사용하게 된다. 그러나 프레임워크에서는 이와는 반대되는 제어 흐름으로의 재사용성을 지원합니다.
profile
[DATABASE] 비전공자 출신의 개발 도전!

0개의 댓글