일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 디자인패턴
- Direct12
- 쓰레드
- 멀티쓰레드
- 다이나믹프로그래밍
- 락
- 렌더링 파이프라인
- 컨디션 변수
- directx
- 동적계획법
- 운영체제
- DirectX12
- 스케줄링
- I/O장치
- 타입 객체
- 병행성
- 그리디알고리즘
- DirectX 12
- 영속성
- 병행성 관련 오류
- 알고리즘
- 프로그래머스
- 자료구조
- codility
- 다이나믹 프로그래밍
- 멀티프로세서
- 백준
- 그리디 알고리즘
- 파일시스템 구현
- OS
- Today
- Total
기록공간
4-1-2장. 서버 개발 - C 본문
서버 개발의 개요
서버 개발은 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리케이션 서버(WAS)에 탑재하는 것을 의미한다.
-
웹 애플리케이션 서버에 구현된 서버 프로그램은 웹 서버로부터 받은 요청을 처리하여 결과를 반환하는 역할을 수행
-
서버 개발에 사용되는 프로그래밍 언어는 Java, JavaScript, Python, PHP, Ruby 등이 있다.
-
각 프로그래밍 언어에는 해당 언어로 서버 프로그램을 개발할 수 있도록 지원하는 프레임워크가 있다.
서버 개발 프레임워크
서버 개발 프레임워크는 서버 프로그램 개발 시 다양한 네트워크 설정, 요청 및 응답 처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 소프트웨어를 의미한다.
-
서버 개발 프레임워크에 따라 지원하는 프로그래밍 언어가 제한적이므로 선정할 수 있는 프레임워크도 제한적임
-
서버 개발 프레임워크의 대부분은 모델-뷰-컨트롤러(MVC) 패턴을 기반으로 개발됨
-
대표적인 서버 개발 프레임워크의 종류는 다음과 같다.
-
Spring : JAVA를 기반으로 만들어진 프레임워크로, 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음
-
Node.js : JavaScript를 기반으로 만들어진 프레임워크로, 비동기 입출력 처리와 이벤트 위주의 높은 처리 성능을 가지고 있어 실시간 입출력이 빈번한 애플리케이션에 적합
-
Django : Python을 기반으로 만들어진 프레임워크로, 컴포넌트의 재사용과 플러그인화를 강조하여 신속한 개발이 가능하도록 지원
-
Codeigniter : PHP를 기반으로 만들어진 프레임워크로, 인터페이스가 간편하여 서버 자원을 적게 사용함
-
Ruby on Rails : Ruby를 기반으로 만들어진 프레임워크로, 테스트를 위한 웹 서버를 지원하며 데이터베이스 작업을 단순화, 자동화시켜 개발 코드의 길이가 짧아 신속한 개발이 가능
-
서버 프로그램 구현
서버 프로그램은 응용 소프트웨어와 동일하게 모듈 및 공통 모듈을 개발한 후, 모듈들을 통합하는 방식으로 구현된다.
-
모듈은 모듈화를 통해 분리된 시스템의 각 기능들로, 서브 루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등과 같은 의미로 사용됨
-
모듈 개발 시 기능적 독립성을 고려하여 다른 모듈과의 과도한 상호작용을 배제함으로써 특정 모듈의 수정이 다른 모듈들에게 영향을 미치지 않아야 함
-
모듈의 독립성을 결합도와 응집도에 의해 측정되며, 독립성을 높이려면 모듈의 결합도를 약하게 하고 응집도를 강하게 하며 모듈의 크기를 작게 만들어야 함
-
공통 모듈은 여러 프로그램에서 재사용 할 수 있는 모듈을 의미하며, 자주 사용되는 계산식이나 매번 필요한 사용자 인증 같은 기능들이 공통 모듈로 구성될 수 있음
프레임워크의 특성
-
모듈화(Modularity) : 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로서 소프트웨어의 품질을 향상
-
재사용성(Reusablility) : 프레임워크는 재사용 가능한 모듈들을 제공함으로써 개발자의 생산성을 향상
-
확장성(Extensibility) : 프레임워크는 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능
-
제어의 역흐름(Inversion of Control) : 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
4-1-4장. 배치 프로그램 - B (0) | 2020.09.17 |
---|---|
4-1-3장. 보안 및 API - C (0) | 2020.09.17 |
4-1-1장. 개발 환경 구축 - B (0) | 2020.09.17 |
3-4-7장. 쿼리 성능 최적화 - C (0) | 2020.09.16 |
3-4-6장. ORM(Object-Relational Mapping) - B (0) | 2020.09.16 |