로얄젤리

소프트웨어 공학이란 무엇인가?

카테고리 없음

 

개요

표준화된 정의 중 하나에 따르면, "소프트웨어 엔지니어링"은 "소프트웨어의 개발, 운용, 유지보수 및 폐기에 대한 체계적인 접근"이다. 이러한 "체계적 접근법"의 연구, 개발, 실천의 문제는 컴퓨팅의 이론과 실천 안에서 중요한 영역을 구성한다. 영어 이름 "소프트웨어 엔지니어링"이 국제적으로 통용되는 주요 명칭이 된 이 지역은 (예를 들어, 출처[1-11] 참조) 이미 존재하며, 이미 20년 이상 빠르게 개발되고 있다. 출판된 성과에 대한 풍부하고 지속적으로 증강된 기구로 대표되며, 소프트웨어 엔지니어링 및 소프트웨어 엔지니어링 저널에 대한 IEEE Transactions on Software Engineering Journal과 같은 과학 및 기술 정기 간행물을 "소유"했으며, 다른 많은 저널, 잡지, 절차 등의 페이지에 정기적으로 게재된다. 글로벌 첨단 SE 수준을 구현하는 구체적인 성과 합계의 분석(사용 가능한 문헌, 소프트웨어 샘플, 기타 출처에 기초)은 다음과 같은 확장된 작업 정의를 통해 SE의 위에서 인용한 간결한 정의를 설명하도록 한다. 소프트웨어 엔지니어링 - 소프트웨어의 생성 및 운용(즉, 사용)에 대한 엔지니어링 활동의 높은 품질과 생산성을 보장하기 위해 지정된 개념, 방법, 기술, 도구, 시스템 등. (즉, 그러한 활동에 관련된 모든 사람들이 합리적으로 알고 있어야 하고, 할 수 있는 기술을 가지고 있어야 하며, 그 기질을 갖춰야 전문적으로 일을 수행할 수 있어야 한다.) 이 정의에서 언급된 활동, 소프트웨어 엔지니어링 활동 또는 SE 프로세스라고 하는 것에 동의하자. 여기서는 "실행 소프트웨어"(컴퓨터 프로그램)뿐만 아니라 데이터베이스, 지식 베이스, 기타 "비실행 소프트웨어"를 포함한 오브젝트도 포괄하는 것으로 보다 넓은 의미의 소프트웨어 개념을 사용한다.2. 그러나 단순성을 위해 독자는 이러한 뉘앙스를 무시하고 소프트웨어를 실행 소프트웨어로만 간주할 수 있다. 현재(1989년) 러시아어로 SE 문제에 관한 작품과 출판물의 주요 부분은 "컴퓨터 프로그래밍의 기술"(또는 "프로그래밍의 기술", TP)로 알려진 과학기술 분야와 관련이 있다. 이러한 러시아어로 된 단어들은 학문으로서 SE의 영어 이름을 번역하는 데 종종 사용된다("프로그램 시스템의 설계"와 "시스템 프로그래밍"을 포함한 다른 많은 변종들과 함께, 이렇게 해서 "소프트웨어 엔지니어링"이 러시아어로 출판된 책[2, 5]의 제목에서 번역되었다). 그러나 실제로 그들은 SE 영역과 아마도 가까운 일부 지역의 특정 "전류"를 나타낸다. 이러한 SE 규율의 흐름은 그것 자체의 역사적 뿌리[14, 15], 다소 자율적인 전통, 우선순위 분배, 특징적인 원래의 결과의 본체, 자신의 논쟁 가능한 점 등을 가지고 있다(예: 작품 [16-21] 참조). 이 "프로그래밍 기술"은 현재 SE-TP에 해당된다. 한 경험에 따르면, 컴퓨터의 프로그래밍과 사용을 개선하기 위한 다양한 단계를 계획하고 수행하는 과정에서, 상당히 비용이 많이 들고 거의 복구할 수 없는 결과를 초래하는 전형적인 개념적 실수들이 작업의 본질에 대한 불완전하고 부정확하며 일관되지 않은 견해들의 인기에 의해 야기되고 있음을 보여준다.ents, 그리고 현재 SE truclear 상태의 특징. 특히 이러한 왜곡된 견해는 SE-TP에서 역사적으로 진화한 일부 접근방식의 프리즘을 통해 SE 문제를 고려한 결과일 수 있다. SE-TP의 몇 가지 경향은 SE 규율에 대한 왜곡된 좁은 관점의 전파에 가장 크게 기여하는 것으로 보인다. 이러한 경향은 "기계 구축" 접근법, "행정" 접근법, "도구" 접근법의 징후로서 비효율적으로 설명할 수 있다.

 

좁은 개념의 소프트웨어 공학

기계 제작의 접근법

이 접근법의 본질은 기계 건설 산업의 생산 과정과 문자 그대로 충분히 유사하게 "프로그래밍 기술"을 해석하는 데 있는 반면, 그러한 프로세스는 최종적인 프롤의 생성을 보장해야 하는 "기술 운영"의 엄격하게 규제되는 시퀀스로 간주되고 있다."기술적 운영"의 실행에 참여하는 개별 근로자의 개별 능력(특히, 창조적 능력에 대한)에 대한 최소한의 의존성을 가진 귀책물. 프로그래밍뿐만 아니라 기계 제작에서도 이 접근법을 사용하여 어떤 종류의 작업도 효과적으로 실행될 수 없다는 것을 알아야 한다. 이 접근법의 적용가능성의 필요조건은 작업의 주요 부분을 실제로 수행하기 전에 허용 가능한 방식으로 작업을 엄격하고 안정적으로 정의되고 반복적으로 실행되며 좁은 전문화된 작업 세트로 분할할 수 있는 가능성이다. 기계의 개발 및 생산의 전체 주기 내에서, 제품의 대량 제조는 작업의 전형적인 예로서, 규칙적으로 이 요건을 충족시킨다. 일반적으로 이 요건을 충족하지 못하는 작품의 예: 제품 개발, 발명자 활동, 신제품 창출을 위한 연구. 소프트웨어 엔지니어링 활동 분야에서도 이 요건을 충족하는 종류의 작업이 있다. 이러한 작업에는 주로 데이터, 컴퓨터 미디어 및 설명서의 신뢰할 수 있는 복사, 프로그램 설정 및 생성의 가장 단순하고 일상적인 형태, 일부 좁은 전문 소프트웨어 개발 태스크, 엄격한 반복 테스트를 거친 스키마 내에서 상당한 수준의 신기함 없이 수행됨, 적용 가능성 등이 포함된다.이 중 y는 해결 중인 다양한 애플리케이션 문제의 한계로 인해 달성되고 있다. 그러한 종류의 일을 소프트웨어의 생산 또는 제조라고 부르기도 한다. 이러한 종류의 작업의 실질적인 의미를 경시하지 않고, 우리는 그것들이 SE 분야에서 가장 특징적인 작품인 새로운 소프트웨어 개발 과정과 전혀 같지 않다는 것을 강조하고 싶다. 책을 쓰고, 책들을 정보로 만들어라.) 위에서 언급한 소프트웨어 "제조" 프로세스 중 어떤 식으로든 "제조"될 소프트웨어의 사전 개발이 필요하다(즉, 복사, 설정, 특정 등급의 응용 프로그램 문제 등에 대한 솔루션 계획의 기초가 될 것이다). 새로운 소프트웨어 개발의 과정과 관련하여, 이러한 과정은 기계 구축과 유사하게 자연스럽게 기계의 생산에 해당하지 않는다. 따라서 이러한 프로세스에 대한 "기계 구축" 접근방식의 적용 가능성에 대한 논의는 소프트웨어 개발이 "더 인상적"으로 들리게 하기 위해 생산이라고 불리는 용어의 부정확성으로서 설명하기 어렵다. 또한, SE 분야에서 널리 인정된 일부 성과와 사전 정의되고 세밀한 작업 프로세스를 "기술적" 운영으로 분리하는 것 사이에는 직접적인 모순이 있는데, 이는 "기계적 구축" 방식의 특징이다. 특히, 이러한 단절은, 프로그램 로직을 하향 단계별로 구체화하는 과정에서, 각 단계에서 가능한 한 한 한 가지 필수적인 기술적 결정만을 취해야 하며, 동시에 각 결정을 미룰 수 있도록 노력해야 한다는, 구조화된 프로그래밍 규율의 등장[22] 이후 알려진 원칙을 위반한다.결정이 정말로 필요하게 될 때까지(결정이 늦게 내려질수록, 만족스러울 가능성이 더 많아진다; 이른 결정은 개발의 후속 단계에서 최적의 해결책을 선택할 가능성을 제한한다. 실제로, 새로운 소프트웨어 개발에 "기계 구축" 접근법을 적용하려는 시도는 종종 업무 프로세스의 관료주의를 초래하고, 그들을 지나치게 보수적이고, 매우 관능적으로 만든다. 또한, 소프트웨어 개발 팀이 수행한 그러한 시도가 분명히 효과적이지 않은 것처럼 보일지라도, 그들은 세계적인 수준의 SE에 대한 적절한 인식을 방해함으로써 그러한 팀의 방법론적 지체 증가를 야기할 수 있다.

행정 관리적인 접근법

SE의 목표를 달성하기 위한 이 접근방식은 표준, 규칙, 내부 규정, 대체 소프트웨어 플랫폼, 소프트웨어 솔루션 등의 선택사항의 강제적 채택과 관련된 다양한 행정적 결정과 지시사항의 역할을 강조한다. 그러한 결정의 준비와 실행이 전문적 방법으로 수행되고 있을 때, 모든 관련 기술적 측면에 대한 깊고 유능한 분석에 근거하여 매우 효과적일 수 있다. 불행하게도, 현재, 종종 행정 집행 방법에 의해 너무 성급하게 그리고 지나치게 광범위한 규모로 그러한 결정을 시행하려는 시도들에 직면할 수 있다. 전문 소프트웨어 개발자 경험에 근거하여 수행되는 세심한 분석의 필요성, 이러한 결정에 관련된 일부 관리자 및 임원의 전형인 그러한 결정의 가능한 결과의 필요성을 간과하는 것은 프로세스의 관료주의의 무제한적 성장, 과도한 인력, 과장된 구성으로 이어질 수 있다. SE 프로세스보다 높은 비생산적인 "관리 상부 구조" 이러한 "극단적인" 행정적 접근법에서 가장 심각한 부정적인 결과는 종종 지나치게 엄격한 업무 지시 규제에 의해서가 아니라 상당히 반대적으로 발생한다는 것을 알아둘 가치가 있다. 즉, 부과된 공식 규칙을 실질적으로 준수하지 못하면 하위 규칙에 대한 존중을 상실하게 된다는 사실이다.순차적 지시사항들은 이것들이 정말로 필요하고 그렇지 않으면 성취할 수 있는 엄격한 규칙들의 채택을 매우 복잡하게 만든다. 이는 지나치게 "나사를 조이는" 결과 "나사 나사산 깨기"와 유사하다.

 

도구로서의 접근법

SE-TP에 대한 꽤 일반적인 해석은 일부 소프트웨어 도구로서의 일방적인 해석이다. "극단적인" 징후에서 이 접근방식은 소프트웨어 개발 생산성 및 품질과 관련된 모든 문제의 해결책만을 항상 고려하려는 시도로 이어진다. 이 솔루션은 가장 단순한 것부터 통합된 작업 환경 등에 이르기까지 일부 소프트웨어 도구의 개발 또는 채택에 포함된다. 이러한 종류의 다양한 소프트웨어 제품 및 시스템(그 도움을 받아 다른 소프트웨어를 만들기 위해 설계된 소프트웨어)을 일반적으로 소프트웨어 도구라고 한다 [23, 24]. 물론 "툴" 접근방식에 대해 이의를 제기할 만한 것은 소프트웨어 도구의 중요성을 강조하는 것이 아니라, SE 규율의 전체 개념을 주로 또는 이 한 가지 측면으로 축소하려는 시도다. SE에 대한 이러한 해석은 그들의 작업의 가장 중요하고 창조적인 부분인 전문가들에 대한 전문적인 숙달의 완벽함이 제어, 의사소통, 그리고 도움의 추가적인 자동화된 기능을 구현하는 수단으로 대체될 수 있다는 내재된 환상을 가지고 있다. 이 착각은 심각한 부정적인 결과를 초래할 수 있다. 첫째, 그러한 착시의 인기는 개념적(방법론적) 성격의 SE와 SE-TP의 주요 업적의 전문가들에 의해 집단적 오해와 제한적 이용을 야기한다는 점에 유의해야 한다. 그러한 성과의 예로는 소프트웨어 사용자 문서 개발[25-27], 소프트웨어 요구 사항 사양 [28, 29], 소프트웨어 품질 보증 [30, 31], 실용적인 구조화된 프로그래밍의 원칙과 기법 등이 있다[22, 32-34]. 이러한 성과를 무시하면 소프트웨어 도구의 품질이 저하될 수 있다. 어떤 경우에는, 많은 측면에서 또는 적어도 어떤 면에서는 유용하게 사용되며, 운영 환경의 너무 좁은 클래스를 허용하며, 충분히 신뢰할 수 없고, 사용하기 쉽지 않으며, 양보할 수 없으며, 불균형한 자원을 필요로 하며, 불완전하거나 이해할 수 없는 문서를 가지고 있다. 그러한 불완전한 도구의 사용과 관련된 추가적인 부정적인 부작용은 "일반적인" 개발자들이 기꺼이 또는 마지못해 자신의 도구를 "정상적인" 수준의 소프트웨어 품질의 예로 간주하고, 그들 자신의 작업 결과에 대해서도 무비판적으로 익숙해진다는 것이다. SE-TP에서 "툴" 접근방식의 부정적인 결과는 애플리케이션 소프트웨어 개발자의 생산성 및 작업 결과의 품질을 개선하기 위해 현재 필요한 (소프트웨어 도구 개발자가 아닌) 실무적 단계에 대한 방향성의 혼란으로 특징지어질 수 있다. 완벽한 "생산성" 도구가 없는 경우, 그러한 도구의 핵심 역할의 가정은 도구를 사용했어야 하는 사람들을 반-딜레탄테 방식으로 직접 도구를 만들려는 시도 또는 (더 자주) 도구의 부재에 대한 참고자료에 의한 불완전하고 구시대적인 작업 방법의 정당화로 이끈다.불완전하거나 부적합한 도구를 채택하는 비생산적인 시도. 그리고 필요한 도구가 원칙적으로 잠재적 사용자가 사용할 수 있는 경우, "툴" 접근방식은 여전히 관련 비용(도구 라이센스, 채택 등)을 고려하지 않고 가능한 한 강력한 소프트웨어 도구를 채택하는 논란의 여지가 있는 아이디어를 제시한다.이러한 새로운 파워풀 소프트웨어 도구의 채택과 관련이 있다. 위와 관련하여, CASE(Computer-Aided Software Engineering) 시스템 개발의 중요한 성과에도 불구하고, 그러한 시스템의 적용 가능성은 전혀 무조건적인 것으로 간주되지 않는다는 점에 유의할 필요가 있다[35].

 

소프트웨어 공학의 리소스들

앞에서 소개한 대로 SE 주제에 대한 보다 폭넓은 해석으로 돌아가서, SE 분야에서 성과의 진화와 적용을 억제하는 것으로 보이는 요인을 계속 논의해 보자. 그러한 한 가지 요인은 현재 SE 영역에서 최종적이고 완전한 형태의 성과물을 예비 또는 중간 형태와 구별하기 위한 인정된 기준의 부재로서, 그 또는 그 밖의 달성자의 사용 결과에 기초한 평가, 프로모션, 채택, 체계적인 실용성을 고려할 때 그러하다.t. SE 성과물의 바람직한 완성형태를 "SE 규율 자원" 또는 단순히 "SE 자원"이라고 하는 것에 동의하자. 아래에서 우리는 그러한 "자원"의 특징적인 특징들을 고려하도록 노력할 것이며, 또한 구체적인 실천적 경험과 연구 결과라는 두 가지 다른 형태의 성과에 의해 모방되는 부정적인 결과도 언급할 것이다. 우리는 SE 분야 자원4(단순, SE 자원)을 "개념적"적 성질(방법적, 조직적 등)인 SE 영역과 관련된 일부 결과의 집합으로 정의하고, 일부 소프트웨어로 구성되거나 다른 성질을 가지며, 다음과 같은 특유한 속성을 소유할 것이다. 첫째, 특정 종류의 작업 조건에서 즉시 반복 적용 가능, 둘째, 충분히 신뢰할 수 있는 재현성(실제 또는 아마도 유용할 것이다)을 적절하게 적용했을 때) 셋째, 식별 가능성 - 자원을 적용, 채택, 이전 등의 대상으로 간주하는 동안 이 구체적인 자원을 다른 자원들과 객관적이고 정확하게 구별할 수 있는 가능성. SE 자원의 적용 환경(장비, 인력, 해결 대상 업무의 구성 변경 등)의 구체적인 환경에서는 상당한 자연적 가변성이 있기 때문에, 자원의 반복적 적용성은 어느 정도 이전 가능성(한 당사자 또는 환경의 자원 전달 가능성) 없이는 달성할 수 없다.ironment to other). 따라서 전송성은 고품질 SE 자원의 중요한 속성이다. (SE 리소스의 개념에는 저품질 리소스도 포함된다.) SE 리소스의 몇 가지 예:

SE 분야 성과물의 바람직한 완성형태로서 SE 자원을 고려하자는 제안은 그러한 성과의 두 가지 전형적이고 필요한 형태의 가치를 과소평가하기 위한 것이 아니다. 즉, 구체적인 실천적 경험(시스템)은 프로와 관련된 활동의 품질 집행을 위해 일부 구체적인 조직에 "내부적으로" 창출되었다.그래밍)과 연구 결과. 동시에 이러한 업적이 본질적으로 SE 자원의 역할을 수행해야 하는 상황(예를 들어, 광범위한 실용적 어도시에 대해 제안되고 있는 경우)에서 SE 성과에 대해 구체적인 경험이나 연구 결과인 것처럼 판단할 수 있을 만큼 대중적인 시도의 잘못된 점을 강조하는 것이 중요하다.ption). 연구 결과, 구체적 경험 및 SE 자원과의 상호관계는 일부 컴퓨터 프로그램의 초기 개념과 알고리즘 스케치 사이의 관계와 유사하며, 프로그램 개발자가 개발한 환경에서 사용하는 프로그램 "간단히"와 보편화, 완전한 테스트, 문서화 등, "소프트웨어 제품" (기술에 따라)o Brooks [2]). 일반적으로 연구 결과는 실무에서 즉시 적용할 수 없으며, 이러한 결과는 예상되지 않는다. (그들의 적용은 심각한 추가 노력, 다양한 기술적, 조직적 및 기타 문제의 해결이 필요하다.) 예를 들어, 구조화된 프로가밍(연구 결과)의 개념들이 상세화되고 해석되고 있는데, 그 중에서도 매우 생산적이고 비실용적인 개념들이 있는 "생산" 소프트웨어 개발에 즉시 적용되도록 하기 위해서입니다. 구체적인 실무 경험은 보통 이전할 수 없다. 왜냐하면 그것은 그것을 축적해 온 조직의 독특한 세부사항에 너무 많이 의존하기 때문이다. 이것보다, 이 경험에서 실제로 달성된 유용한 효과, 즉 가장 표면적으로 보이는 프로세스의 형식적이고 기술적 속성 또는 특정 특히 재능 있는 개인들의 개인적 관여를 정확히 아는 것은 불가능한 경우가 많다. 위의 사항을 고려하여, SE 연구와 고급 경험의 연구 및 전파에 비용을 지불하면서, 즉시 적용 가능한 고품질의 반복 테스트와 같은 SE 자원의 생성과 보급에 주의를 집중하는 것은 타당하다.

xhtml 2.0에 대한 설명

IT 트렌드

 

초록

XHTML 2는 월드 와이드 웹에서 광범위한 목적을 위해 문서를 나타내도록 고안된 범용 마크업 언어다. 이를 위해, 그것은 모든 사람들에게 가능한 모든 마크업 관용어를 공급하기 위해 노력하는 것이 아니라 일반적으로 유용한 요소들을 공급하기 위해 시도한다.

 

xhtml이 무엇인가?

XHTML 2는 월드 와이드 웹에서 광범위한 목적을 위해 문서를 나타내도록 고안된 범용 마크업 언어다. 이를 위해 그것은 모든 사람에게 모든 것이 되려고 하지 않고, 가능한 모든 마크업 관용어를 공급하지만, 일반적으로 유용한 요소 집합을 공급하기 위해 [p.52]와 div [p.41]의 범위[p.52]와 div [p.41] 요소들을 스타일시트와 결합하여 사용할 수 있고, 메타데이터로부터 속성을 얻을 수 있다.

 

xhtml의 설계 목표

XHTML 2 설계 시 설계를 지시하는 데 도움이 되도록 다수의 설계 목표를 염두에 두었다. 여기에는 다음이 포함된다. 가능한 일반적인 XML: XML에 기능이 있는 경우 복제하는 대신 이 기능을 사용하십시오. 프리젠테이션이 적고 구조가 더 넓다: 프리젠테이션을 정의하는 데 스타일시트를 사용하라. 보다 유용성: XML의 제약조건 내에서 언어를 쓰기 쉽게 만들고 그 결과 문서를 사용하기 쉽게 만드십시오. 더 많은 접근성: 일부는 이를 '미래 자신을 위한 설계'라고 부른다. 설계는 가능한 한 포괄적이어야 한다. 더 나은 국제화: 그것은 월드 와이드 웹이기 때문에. 더 많은 기기 독립성: 전화기, PDA, 태블릿, 텔레비전 등과 같은 새로운 기기는 기기 유형별로 문서의 새 버전을 허가하는 대신 다른 기기에서 한 번 작성하고 다른 방식으로 렌더링할 수 있는 설계를 갖는 것이 필수적이다. 스크립팅 감소: 스크립팅을 통해 기능을 얻는 것은 저자에게 어렵고 문서를 보는 데 사용할 수 있는 사용자 에이전트의 유형을 제한한다. 우리는 현재 대표적인 용도를 식별하고, 그러한 용도를 마크업으로 포함시키려고 노력해왔다. Semantic Web과의 통합: XHTML2를 의미 웹 도구로 처리할 수 있게 함

 

하위호환성

HTML의 이전 버전은 특수 목적 언어였기 때문에, 새로운 문서를 이전 브라우저에서 여전히 사용할 수 있도록 새로운 버전과의 역호환성을 보장할 필요가 있었다. 그러나 XML과 스타일시트 덕분에, 이러한 엄격한 요소-뒤로의 호환성은 더 이상 필요하지 않다. XML 기반 브라우저는 작성 시 사용 중인 브라우저의 95% 이상을 의미하며, 업데이트할 필요 없이 새로운 마크업 언어를 처리할 수 있기 때문이다. XHTML 2의 대부분은 기존 브라우저에서 이미 작동하고 있다; 많지는 않지만, 전부는 아니다; 형태와 테이블이 HTML에 추가되었을 때와 마찬가지로, 사람들은 새로운 시설인 XHTML 2와 XML 이벤트의 일부 부분을 사용하기 전에 새로운 버전의 브라우저를 기다려야 했다. 여전히 그 기능을 이해하는 사용자 에이전트를 필요로 한다.

 

xhtml2와 표현

HTML의 첫 번째 버전은 문서의 구조가 아니라 문서 구조를 나타내도록 설계되었다. 나중에 브라우저 제조업체에 의해 프레젠테이션 지향 요소가 언어에 추가되었지만, HTML은 기본적으로 문서 구조 언어다. XHTML 2는 모든 프리젠테이션 요소를 제거하고 모든 프리젠테이션을 스타일 시트에 종속시킴으로써 HTML을 이러한 루트로 되돌린다. 이것은 스타일시트가 HTML의 현재 요소보다 더 많은 것을 할 수 있기 때문에 더 큰 유연성, 더 큰 접근성, 더 많은 장치 독립성, 그리고 더 강력한 프레젠테이션 가능성을 제공한다.

 

xhtml2와 연결

HTML의 원래 버전은 사용자 에이전트 및 기타 문서 프로세서의 기본 제공 지식에 의존했다. 이러한 지식의 대부분은 프레젠테이션(위 참조)과 관련이 있지만, 나머지 대부분은 문서 간의 관계, 소위 "링크"와 관련이 있다. 다양한 W3C 및 기타 노력, 특히 [XLINK [p.312]] 에서는 링크 특성을 정의하기 위한 문법을 만들려고 시도했다. 불행하게도, 이 문법들은 모두 XHTML의 요구조건에 미치지 못한다. 이 커뮤니티는 링크 특성을 설명하는 포괄적인 문법을 만들기 위한 노력을 계속하고 있다. HTML 작업 그룹은 그러한 문법이 일반적으로 유용하기는 하지만 XHTML 2의 정의에는 필요하지 않다고 결정했다. 대신에, 이 문서는 다른 자원에 연결하는 데 사용되는 요소와 속성의 특징에 명시되어 있다. 작업 그룹은 1) XHTML 2의 문제가 잘 경계되어 있고, 2) 일반적인 해결책이 더디며, 3) 구현자가 지원하고 사용자가 의존하기 더 쉬울 것이기 때문에 이 과정을 수강했다.

 

xhtml1와 xhtml2의 차이

XHTML 2는 HTML과 XHTML 1 저자가 인식할 수 있도록 설계되었으며, 이전 버전의 HTML 제품군에서 확인된 오류와 결함을 수정하고 개선의 기회를 잡는다. 가장 눈에 띄는 변화는 다음과 같다. 더 많은 구조화 가능성: 섹션과 제목: 이전 버전의 HTML에서 문서의 구조는 문서의 다양한 제목 수준에서 추론되어야 했다. 이것은 특히 작가가 시각적 효과를 위해 머리글 요소를 잘못 사용할 때 문제였다. XHTML 2는 문서 구조를 [p.44] 섹션과 관련된 요소로 명시적으로 표시하도록 한다.eader 요소 h [p.42] . 구분자: 이전 버전의 HTML에서는 hr 요소를 사용하여 텍스트의 섹션을 서로 분리했다. 돌이켜 보면, hr(수평 규칙의 경우)라는 이름은 오해의 소지가 있었다. 왜냐하면 hr은 반드시 수평이 아니었고, 규칙도 아니었기 때문이다(책들은 종종 구분자를 나타내기 위해 별표 3의 선과 같은 다른 활자법을 사용하는데, 스타일시트를 사용하여 이러한 자유를 줄 수 있다). 구조 특성을 강조하기 위해, 보다 광범위하게 사용할 수 있도록 하기 위해, 그리고 본질적인 방향성이 없다는 것을 명확히 하기 위해, hr는 구분자[p.45]로 이름을 바꾸었다. 선 깨짐: 이전 버전의 HTML에서는 텍스트에 마이크로 구조를 추가하기 위해, 기본적으로 텍스트의 일부를 '라인'으로 분할하는 데 사용하였다. 이 마이크로 구조는 이제 깨질 텍스트를 감싸는 l [p.51] 요소를 가진 XHTML 2에서 명시적으로 만들어진다. 다른 장점들 중에서, 이것은 자동으로 선을 번호를 매기거나 다른 색을 칠할 수 있는 능력과 같은 더 많은 현시적 기회를 제공한다. 단락 구조: 이전 버전의 HTML에서 p [p.43] 요소는 단순한 텍스트만 포함할 수 있었다. 그것은 사람들이 한 단락으로 인식하는 것에 더 가까이 다가갈 수 있도록 개선되었고, 이제는 목록과 표와 같은 것들을 포함할 수 있게 되었다. 이미지: HTML img 요소는 많은 단점을 가지고 있다. 그것은 오직 하나의 이미지에 대한 단일 자원만을 지정할 수 있게 해준다. [p.101] 요소의 fallback 기회를 제공하는 것이 아니라, 그것이 주는 유일한 fallback 옵션은 평범한 텍스트일 수 있고 어떤 식으로도 표시되지 않는 rotdesc 속성이다.그 이미지에 대한 긴 설명은 작성하기 어렵고 거의 지지하지 않는다. XHTML 2는 모든 이미지가 긴 설명을 가지고 있다는 전제하에 이미지와 텍스트를 동등성으로 처리함으로써 전혀 다른 접근방식을 취한다. XHTML 2에서 모든 요소는 요소 대신 로드할 리소스(예: 이미지)를 지정하는 @src [p.86] 특성을 가질 수 있다. 리소스를 사용할 수 없는 경우(네트워크 장애, 브라우저에서 처리할 수 없는 유형 또는 이미지가 꺼져 있음) 대신 요소가 사용된다. 기본적으로 longdesc는 문서로 이동되었지만, 이 동작은 [p.101] 요소의 폴백 동작을 모방하기도 한다.(HTML 4에서와 같이 일부 브라우저가 attit 속성에서 준 툴팁 효과를 얻기 위해 @title [p.62] 속성을 사용한다. 유형: HTML 4에서 외부 자원을 언급할 때의 @srctype[p.86] 속성은 순전히 사용자 에이전트에 대한 힌트였다. XHTML 2에서는 더 이상 힌트가 아니지만 사용자 에이전트가 수용해야 하는 리소스 유형을 지정한다. 표: 표의 내용 모델을 정리하여 단순화하는 동시에 동일한 기능성을 허용한다. 양방향 텍스트:보다는 양방향 무효화 기능을 묘사하기 위해 명시적인 요소를 사용하여 새로운 가치는 어떤 요소에 양방향적 무효화 허용하는 @ dir[p.79]특성으로 추가되었다. Edit:보다는 마크는 특성 @ 편집[p.83]어떤 요소에 동일한 목적으로 사용할 수 있는 정지 문서의 변화 뚜렷한 세세한 사항(요소를 사용해다. 연결하는 것: HTML3.2에서 하이퍼링크만[p.55]요소가 될 수가 있는 소스와 대상이다. HTML4와 XML표준을 1에 대한 하이퍼링크의, 어떤 요소가 될 수가 있는 목표였으나 여전히 단지[p.55]요소 근원이 될 수 있다. extensible2에 대한 하이퍼링크의 어떤 요소도 현재의 원천, 이후 @ href[p.65]및 관련 특성이 지금 어떤 요소에 나타날 것이다. 그래서 예를 들면<미스터리 한><한 href="home.html">대신에.Home</a></li>, 지금<미스터리 한 href="home.html"> 쓸 수 있다.Home</li>. 비록 이는 한[p.55]요소 이제 strictly-speaking 불필요한 것을 뜻하기 때문에 연관되어 있다. 메타 데이터:메타[p.97]와 연계[p.95]요소들과 RDF[RDF경우 p.312]에 대한 관계]설명한 일반화해 왔다. 게다가, 이러한 두 요소에 특성을 좀 더 일반적인 언어를 가로질러 적용될 수 있다. 제공함으로써 특정 요소의 사용을 분류하는 역할:문서에 의미를 추가하는에 지원은@ 역할[p.111]특성, 유용한 값의 초기 세트와 함께, 추가되었습니다. 예를 들어 단락 등<prole="note">을 표시할 수 있는 노트의 역할을 할 것이다.

AWS를 활용한 웹 어플리케이션 배포 프로세스

IT 트렌드

보안 그룹은 EC2 인스턴스에 도달할 수 있는 프로토콜, 포트 및 소스 IP 범위를 지정할 인바운드 네트워크 방화벽과 유사하다. 각 EC2 인스턴스 하나 이상의 보안 그룹, 각각의 각 인스턴스에 적절한 교통 경로를 할당할 수 있습니다. 그래서 특정한 서브넷이나 IP주소는 EC2 인스턴스에 접근할 수 있보안 그룹들, 혹은 그들은 다른 보안 그룹은 EC2 사례와 접근을 제한하는 참조할 수 있도록 설정될 수 있다.특정 그룹의. 예를 들어 예제에서, AWS웹 위에 건축 주최인 웹 서버 클러스터에 대한 보안 그룹 TCP연결되어 있을 경우에만 포트 80과 443(HTTP와 HTTPS)에 어떤 호스트를 및 액세스 될 것입니다.직접적인 호스트 관리 위한 포트 22(시큐어 셸)응용 프로그램을 서버 보안 그룹에서 인스턴스로부터. 응용 프로그램 서버 클러스터의 보안단, 반면에, 그 웹 서버 보안 그룹에서 웹 요청을 처리하는 방법과 TCP위에 당신의 조직의 서브넷에서에 대한 액세스 될 것입니다.직접적인 호스트 관리 위한 포트 22(시큐어 셸)에. 위에 표시된 이 모델에서 지원 엔지니어는 회사 네트워크에서 애플리케이션 서버에 직접 로그인한 다음 애플리케이션 서버 상자에서 다른 클러스터에 액세스할 수 있다. 안보에 대한 더 깊은 고찰은, AWS보안 Center5에 갑니다. 이 센터 보안 게시판, 인증 정보 및 AWS의 보안 기능을 설명한 보안 whitepapers을 포함하고 있다. 하드웨어 부하 균형을 유지할 수 있는 일반적인 네트워크 기기 전통적인 웹 애플리케이션 구조들에서 사용했다. AWS이 탄성 하중 Balancing6 서비스, 호스트들에서 건강 검진을 지원하는 구성할 수load-balancing 해결책, 교통의 EC2 사례와 분포를 가로질러를 통해 이 기능을 제공합니다.다중 가용성 구역 및 동적 덧셈과 AmazonEC2호스트의 부하 균형 로테이션에서 제거하는 일이다. 탄성 부하 분산도 역동적이고 그load-balancing 용량는 동안 영구 CNAME을 사용하여 예측 가능한 진입 지점을 제공하는 등 교통 요구에 적응하는 축소를 기를 수 있다. 탄성 부하 분산 서비스는 또한 더 발달된 라우팅 요구에 부응해야 하는 끈적한 세션을 지원한다. 만약 당신의 애플리케이션이 더 고급load-balancing 역량이 필요하면 EC2 인스턴스에 있는 소프트웨어load-balancing 패키지(예를 들어, 제우스 HAProxy, nginx를)실행할 수 있다. 위해 DNS변경을 최소화하기 위해 당신은 그 loadbalancing EC2 인스턴스와 탄성 IP7 주소를 할당할 수 있다. 전통적인 웹 호스팅 아키텍처에서, 집주인 중 대부분은 구름 속에서, 집주인 중 대부분의 동적 IP주소를 가지고 있을 것이다 정적 IP주소를 갖고 있다. 비록 모든 EC2 인스턴스와 인터넷을 통해 주소가 고정될 것이다에는 공립과 사립 DNS항목이 있을 수 있을 때 당신은 실제 임상에, DNS항목과 IP주소를 동적으로 할당됩니다.인스턴스 및 그들은 수동으로 할당할 수 없다. 정적 IP 후 시작되는(AWSterminology에 탄성 IP주소)인스턴스를 실행하는 할당될 수 있어 반환됩니다. 당신은 같은 일관된 끝점, 마스터 데이터베이스, 중앙 파일 서버,EC2-hosted 하중을 유지하는 관계자들이 필요한 사례와 서비스에 대한 탄성 IP주소를 사용해야 합니다. 웹 서버와 같은 쉽게 타고에 확장 가능한 서버 역할, 검색 가능한 그들의 역동적인 엔드 포인트에 위치한 중앙 저장소와 그들의 IP주소 등록에 의해 만들어져야 한다. 발견 정보를 왜냐하면 대부분의 웹 응용 프로그램 아키텍처들은 항상에 있는 데이터베이스 서버, 데이터베이스 서버는 일반적인 보고다. 어디서 일관된 주소 지정할 필요가 있는 상황에서 인스턴스를 인스턴스에 발사된bootstrapping 스크립트에 수영장에서 탄성 IP주소 할당할 수 있습니다. 이 모델을 사용하여 새로 추가된 호스트는 부트스트래핑 단계의 일부로 데이터베이스로부터의 통신에 필요한 엔드포인트 목록을 요청할 수 있다.

 

데이터베이스의 위치는 시작 시 각 인스턴스로 전달되는 사용자 데이터 8로 제공될 수 있다. 또는 Amazon SimpleDB 서비스를 사용하여 구성 정보를 저장하고 유지 관리할 수 있다. Amazon SimpleDB는 널리 알려진 엔드포인트에서 이용할 수 있는 매우 가용한 서비스다.인메모리 애플리케이션 캐시는 자주 사용되는 정보를 캐슁하여 서비스 로드를 줄이고 데이터베이스 계층의 성능과 확장성을 향상시킬 수 있다. Amazon ElastiCache9는 클라우드에 인메모리 캐시를 쉽게 배포, 운영 및 확장할 수 있는 웹 서비스다. 생성한 인메모리 캐시는 로드에 따라 자동으로 확장되고 장애가 발생한 노드를 자동으로 대체하도록 구성할 수 있다. Amazon ElastiCache는 Memcached를 프로토콜로 준수하므로 현재 사내 솔루션에서 마이그레이션을 간소화하십시오. 많은 웹 애플리케이션은 대개 관계형 또는 NoSQL 데이터베이스의 형태로 지속성을 포함한다. AWS는 관계형 및 NoSQL 데이터베이스 인프라를 모두 제공한다. 또는 자신의 데이터베이스 소프트웨어를 Amazon EC2 인스턴스에 배포할 수 있다. 다음 표에는 이러한 옵션이 요약되어 있으며, 이 옵션에 대해서는 더 자세히 설명되어 있다.