카테고리 없음

1. WEB 시스템 구성도, 역할, 관련 소프트웨어

AnnSEo2105 2021. 10. 15. 16:26

1.1.    Web Application Architecture

 

 

Ÿ   WEB Browser

Request 요청 / Response 응답

HTML CSS 명세에 따라 HTML 파일 해석 및 표시

종류로는 Chrome, Firefox, Microsoft Edge, Opera

 

Ÿ   WEB Server

정적인 파일을 반환하는 서버

SSL(암복호화 처리)

접근 허용 IP 관리, 2대 이상의 서버에서 세션 관리 등

종류로는 NginX, Apache, IIS

 

Ÿ   WAS

동적인 정보를 처리하여 웹 서버에 정적 정보를 제공

일반적으로 웹 기능도 내재하고 있어 웹 서버 없이도 서비스가 가능

종류로는 Apache tomcat, JBoss, JEUS

 

Ÿ   DB

필요한 데이터 저장

종류로는 오라클, MySQL, MS-SQL

 

1.2.    Network – 데이터 송신

 

 

구성요소 설명
Router 3계층 장비로 LAN LAN 또는 WAN을 연결하기 위한 장비
패킷의 위치를 추출해 최적 경로를 지정하고 그 경로를 따라 데이터 패킷을 다음 장치로 전송
Hub 여러 대의 컴퓨터를 연결해 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비
Switch L2, L3, L4는 각각 2계층, 3계층, 4계층에서 네트워크 단위들을 연결하는 통신 장비다.
브리지, 허브의 느린 전송속도를 개선하기 위해 사용
L4: TCP/UDP 등 스위칭 수행, FTP, HTTP 등을 구분해 스위칭하는 로드 밸런싱이 가능
Firewall 외부로부터 불법 침입과 내부 불법 정보 유출을 방지하고 내/외부 네트워크의 상호간 영향을 차단하기 위한 보안 시스템
Gateway 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간 통신을 가능하게 함
Bridge 두 개의 LAN을 서로 연결해 주는 통신망 연결 장치

 

 

 

 

TCP/IP 역할
Application Layer 데이터의 내용을 보고 애플리케이션 목적에 따른 서비스를 사용자에게 제공
Transport Layer 데이터의 흐름을 제어해 신뢰성, 효율성을 관리하고, 목적지 컴퓨터에 전송된 데이터를 적절히 배분
Internet Layer 서로 다른 네트워크에 있는 컴퓨터 간 데이터 전송
Network Interface Layer 같은 네트워크 안에서 물리적으로 인접해 연결되어 있는 네트워크 장비 간의 데이터 전송

 

 

2.  WEB 시스템 기술요소

 

 

2.1.    Client Side

 

구성요소 설명
HTML 다양한 HTML 요소로 컨텐츠를 표현하고 해석되는 마크업 언어
CSS HTML의 스타일을 미리 지정해 놓은 문서
JavaScript HTML, CSS 요소 등을 제어하기 위해 시작, 현재는 node.js 등으로 서버 사이드까지 범위가 확장
Plugin JQuery, React, Boostrap 등 개발 편의성을 높여주는 프로그램

 

2.2.    Server Side

 

구성요소 설명
JSP Java 언어 기반의 웹 어플리케이션 프로그래밍
ASP MS의 기존 웹 서버 프로그래밍 기술
ASP.NET .Net Platform ASP.NET 프레임워크를 이용해 C# .NET 전용 언어로 웹 어플리케이션을 개발
PHP Personal Home Page Tools, C언어 기반 웹 어플리케이션 프로그래밍

 

 

4.  Web 시스템 개발 방법론

4.1.    구조적 방법론

 

구분 설명
정의 구조적 프로그래밍은 코드가 계층적인 형식과 제한된 구조로, 작성된 순서대로 순차적으로 실행함.
알고리즘을 기술하는 데는 순차, 선택, 반복 구조면 충분하다. (NS차트)
단일입구/단일출구의 처리구조
등장배경 GOTO문을 지양하자는 주장이 호응을 얻으면서 분석과 설계도 구조적으로 하자라는 의견으로 확대되면서 구조적 방법론의 틀이 완성.
특징 데이터 흐름지향 프로세스 위주의 분석과 설계방식 (DFD/ERD)
모듈의 분할과 정복에 의한 하향식(Top-Down) 설계방식
모듈의 구조화를 통한 재사용/유지보수성 제고 
SDLC 구조를 가진 폭포수 모델이 기본
중점 기능중심
단점 어플리케이션은 여전히 기능적 설계
기능의 유지보수재사용은 낮음. - 데이터의 구성에 대한 설계 방안이 부족
프로젝트의 관리  조직, 역할 등 방법론적 다른 요소들의 정의가 없음.
단순한 소프트웨어 개발을 목표로 한다는 점에게 기인 
데이터가 정보 은닉이 안됨.

 

4.2.    정보공학적 방법론

 

구분 설명
정의 기업정보시스템에 공학적 기법을 적용하여 시스템의 계획, 분석, 설계 및 구축을 하는 데이터 중심의 방법론
등장배경 정보시스템은 소프트웨어 개발과는 달리 하드웨어, 네트워크 등 여려 소프트웨어와 복잡하게 연결되는 대규모 시스템이기 때문에 이러한 시스템을 개발하기 위해서는 장기간, 많은 인력이 소요되므로 철저한 계획, 팀워크에 따른 프로젝트 관리, 이의 진행을 위한 잘 짜여진 방법론이 필요
특징 기업의 Biz전략에 따라 수립된 ISP에 맞는 정보시스템 통합에 초점.
순서: ISP수립 -> 업무영역분석 -> 업무시스템설계 -> 업무시스템 구축
Process 변하지만 Data 불변이기 때문에 프로그램 로직은 데이터 구조에 종속(CRUD)적이며 데이터 안정성을 추구하기 위한 데이터 구조에 중점을 둔다.
공학적 개발방법론이며 자동화 도구, CASE Tool을 이용하여 코드의 자동생성을 목표
중점 데이터구조(자료구조)
단점 여전히 기능적 설계
기능의 유지보수재사용은 낮음.

 

 

4.3.    객체지향 방법론

 

구분 설명
정의 복잡한 현실세계를 모델링
객체를 중심으로 프로그래밍 구조를 단순화하고 재사용성을 강화
등장배경 기존 방법들 모두 프로세스와 데이터를 분리하여 처리한다는 단점이 이를 통합하여 처리하는 객체지향의 등장에 가장 큰 배경
구조적, 정보공학은 Process  Data를 분리했다면 객체지향은 ProcessData를 통합해 Class
특징 재사용이 강점 (White box 재사용)
추상화, 상속성, 다형성, 캡슐화
분석 설계간 Gap 없음.
고도의 모듈화
데이터와 로직을 통합 (객체)
중점 객체중심
단점 전문가 부족, 기본 SW기술 필요

 

4.4.    CBD 방법론

 

구분 설명
정의 재사용이 가능한 Component 개발 또는 상용 컴포넌트들을 조합하여 어플리케이션 개발
특징 Black box 재사용인터페이스를 이용해서 재사용
추상화, 캡슐화 - Input Output 있음.
표준화된 UML 통한 모델링  산출물 작성
반복 점진적 개발 프로세스 제공
중점 컴포넌트 중심
장점 개발 시간 단축
개발자가 비즈니스 기능 구현에만 집중해 품질 향상
모듈성 확대
표준화된 산출물 작성 및 컴포넌트 제작 기법을 통한 재사용성 향상.
단점 통합에 대한 부분을 초기 시점부터 개발이 진행되는 과정 중에 유의해야 한다. 요구사항이 미흡하게 정의되어 있으면 비즈니스 요구사항을 만족시키지 못할 가능성
개발순서 도메인 분석 -> 도메인 설계 -> 컴포넌트 추출 -> 컴포넌트 설계 -> 컴포넌트 구현

 

5.  참조

http://wiki.hash.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EA%B0%9C%EB%B0%9C%EB%B0%A9%EB%B2%95%EB%A1%A0&mobileaction=toggle_view_mobile

http://mixedcode.com/Article/Index?aidx=1063

 

믹스드코드랩:{나도개발자시리즈1}:웹프로그래밍 기술구성요소

5일차 교육중 2일차 강의를 시작하겠습니다.2일차 강의의 주요 내용은 직접 개발과 관련된 내용이라 기 공지드린대로 여러분 컴퓨터에 이미 개발환경이 구축되어 있다는 전제로 강의를 진행토

mixedcode.com

 

 

 

 

3번만 올리려다가 다 올리는 회사 숙제

쓰면서 내용 암기를 한 건 아니라 물어보면 모름. 

이런게 있구나~ 하는 정도로 학습했다.

근데 지금의 개발 환경이라기엔 약간 온고지신의 느낌이 나는 부분이 있는 거 같음.

 

 

리액트 같은거 서버사이드 클라이언트 사이드 다 섞는 next.js 이런 것도 있는데 주어진 주제로 검색하려다 보니 저런 거 밖에 안나왔다. 기존에 제출한 파일 봐도 그냥 옛날 자료.

역사 공부하듯이 공부했다. 개발의 온고지신!