태그(Tags)

  • software framework
    0 개의 질문들

    컴퓨터 프로그래밍에서, 소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게 만들어 준다.

    space
  • was
    0 개의 질문들

    웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹에플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어프레임워크이다. 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server" (약자 AS)로 불린다.

    space
  • wiki
    0 개의 질문들

    위키(Wiki, /wɪkiː/)는 불특정 다수가 협업을 통해 직접 내용과 구조를 수정할 수 있는 웹사이트를 일컫는다.[1]

    또한 일반적인 위키에서 텍스트는 단순화된 마크업 언어(위키 마크업)을 이용하여 작성되며, 리치 텍스트 에디터의 도움을 받아 편집하기도 한다.[1] 위키는 지식경영이나 기록 등 다양한 용도로 이용된다. 공동체용 웹사이트나 조직 내 인트라넷에 쓰이기도 한다. 그러나 주로 개인적인 용도로 이용되는 위키도 있는데, 이를 개인 위키라고 한다.

    최초의 위키 소프트웨어인 위키위키웹(WikiWikiWeb)을 만든 워드 커닝엄은 위키를 "동작하는 가장 단순한 온라인 데이터베이스"[2] 라고 설명했다. "위키"는 "빠른"을 뜻하는 하와이어 "wiki"(발음은 위티[ˈwiti]나 비티[ˈviti])에서 왔다.[3]

    space
  • bug
    0 개의 질문들

    소프트웨어 버그(영어: software bug) 또는 줄여서 버그(bug)는 소프트웨어가 예상하지 못한 잘못된 결과를 내거나, 오류가 발생하거나, 착오나 오작동이 발생하는 등의 문제를 뜻한다. 버그는 프로그램의 소스 코드나 설계 과정에서의 오류 때문에 발생한다.

    버그의 결과로 다양한 문제가 발생할 수 있다. 몇몇 버그는 프로그램의 동작에 조그마한 영향을 줄 뿐이며, 오랜 시간 동안 발견되지 않고 남아 있을 수 있다. 이보다 더 심각한 버그는 프로그램의 실행이 중단되거나 강제 종료되는 문제를 일으킬 수 있고, 어떠한 버그는 보안 문제를 발생시킬 수도 있다. 예를 들어, 악의적인 사용자는 자주 발생하는 버그인 버퍼 오버플로를 사용해서 원래는 허락되지 않은 일을 할 수 있다.

    버그는 다양한 형태로, 또 다양한 정도로 프로그램의 사용자들에게 불편함 등의 영향을 미칠 수 있다. 몇몇 버그들은 프로그램의 기능에 미미한 영향만 미치는데, 이 때문에 오랫동안 사용자들이 이들을 발견하지 못하는 경우도 있다. 하지만 심각한 버그들은 프로그램이 전혀 작동하지 못하는 상태가 되게 하여 사용자들에게 큰 불편을 주기도 한다. 한편, 보안 버그들은 나쁜 의도를 가진 사용자들에 의하여 악용되어 시스템의 불법적인 권한을 획득할 수 있는 수단이 되기도 한다.


    목차

    역사와 사례

    나의 모든 발명의 과정이 그러했다. 첫 번째 단계는 직관이고 곧 많은 진전이 이루어진다. 그 다음에는 어려움이 나타나고, 이들이 해결될 때 즈음에서 "버그"가 나타난다. 이를 해결하기 위해서는 몇 달간의 관찰과 학습, 노동이 필요하다. 이 "버그"가 잡힌 후에야 상업적인 성공과 실패가 확실히 판가름난다.
    — 토머스 에디슨, 1878년

    설명할 수 없는 문제점들을 가리키기 위해 사용되는 "버그"라는 단어는 이미 오랫동안 엔지니어들의 전문 용어였으며, 컴퓨터와 컴퓨터 소프트웨어가 만들어지기 이전부터 사용되었다. 최초에는 버그가 하드웨어의 기계적인 오동작을 설명하기 위해 사용된 것으로 보인다.

    버그의 폐해는 매우 심각하다. 1980년대 Therac-25 방사선 치료 기계의 제어 코드에 있었던 버그 때문에 몇몇 환자들이 목숨을 잃었다. 1996년, 유럽 스페이스 에이전시의 미화 10억 불짜리 프로토타입 아리안 5호 로켓이 발사 후 1분도 채 못 되어 폭발하고 말았는데, 이 역시 컴퓨터 프로그램의 버그 때문이었다. 1994년 6월, 로얄 에어 포스 치누크가 스코틀랜드에서 추락하여 29명의 탑승자가 사망하였다. 처음에는 파일럿의 실수로 사고원인이 결론지어졌으나, 컴퓨터 위클리지의 조사에 의하여 항공기의 엔진 제어 컴퓨터에 들어 있는 소프트웨어의 버그 때문에 발생했었을 수도 있다는 주장이 제기되었다.

    일반적인 컴퓨터 버그


    디버깅

    이 부분의 본문은 디버그입니다.
    버그를 찾아서 고치는 과정은 디버깅(영어: debugging)은 컴퓨터 프로그래밍의 주된 부분이다. 초기 컴퓨팅 선구자 모리스 윌크스는 1940년대 말에 자신의 프로그램에 남겨놓은 실수를 찾는데 자신의 남은 인생을 보내겠다는 의미로 그가 깨달은 바를 기술하였다.[1]

    같이 보기

    space
  • spring
    0 개의 질문들

    스프링 프레임워크(영어: Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다.


    특징

    스프링은 다른 프레임워크에 비해 다음과 같은 특징을 가진다.

    • 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.
    • 스프링은 Plain Old Java Object 방식의 프레임워크이다. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
    • 스프링은 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
    • 스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
    • 스프링은 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
    • 스프링은 영속성과 관련된 다양한 서비스를 지원한다. iBATIS나 하이버네이트 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
    • 스프링은 확장성이 높다. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이하다.


    주요 모듈

    스프링에서 사용되는 주요 모듈은 다음과 같다.

    제어 반전 컨테이너

     제어 반전(IoC: Inversion of Control) 컨테이너는 스프링의 가장 중요하고 핵심적인 기능으로서 자바의 반영(reflection)을 이용해서 객체의 생명주기를 관리하고 의존성 주입(Dependency Injection)을 통해 각 계층이나 서비스들간의 의존성을 맞춰준다. 이러한 기능들은 주로 환경설정을 담당하는 XML 파일에 의해 설정되고 수행된다.

    관점 지향 프로그래밍 프레임워크

    스프링은 로깅이나 보안, 트랜잭션 등 핵심적인 비즈니스 로직과 관련이 없으나 여러 곳에서 공통적으로 쓰이는 기능들을 분리하여 개발하고 실행 시에 서로 조합할 수 있는 관점 지향 프로그래밍(AOP)을 지원한다. 기존에 널리 사용되고 있는 강력한 관점 지향 프로그래밍 프레임워크인 AspectJ도 내부적으로 사용할 수 있으며, 스프링 자체적으로 지원하는 실행시(Runtime)에 조합하는 방식도 지원한다.

    데이터 액세스 프레임워크

    스프링은 데이터베이스에 접속하고 자료를 저장 및 읽어오기 위한 여러 가지 유명한 라이브러리, 즉 JDBCiBATIS(MyBatis), 하이버네이트 등에 대한 지원 기능을 제공하여 데이터베이스 프로그래밍을 쉽게 사용할 수 있다.

    트랜잭션 관리 프레임워크

    스프링은 추상화된 트랜잭션 관리를 지원하며 XML 설정파일 등을 이용한 선언적인 방식 및 프로그래밍을 통한 방식을 모두 지원한다.

    모델-뷰-컨트롤러 패턴

    스프링은 웹 프로그램밍 개발 시 거의 표준적인 방식인 Spring MVC라 불리는 모델-뷰-컨트롤러(MVC) 패턴을 사용한다. DispatcherServlet이 Controller 역할을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를 각 서비스들이 처리를 하여 결과를 생성하고 그 결과는 다양한 형식의 View 서비스들로 화면에 표시될 수 있다.

    배치 프레임워크

    스프링은 특정 시간대에 실행하거나 대용량의 자료를 처리하는데 쓰이는 일괄 처리(Batch Processing)을 지원하는 배치 프레임워크를 제공한다. 기본적으로 스프링 배치는 Quartz 기반으로 동작한다.

    space
  • os
    0 개의 질문들

    운영 체제(運營 體制, 문화어: 조작 체계) 또는 오퍼레이팅 시스템(Operating System, 약칭:OS)은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 최근에는 가상화 기술의 발전에 힘입어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 한다.

    또한 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다.[1][2] 그러나 응용 프로그램 코드는 일반적으로 하드웨어에서 직접 실행된다. 운영 체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있다. 운영 체제는 한 면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다. 잘 알려진 현대의 PC 운영 체제에는 마이크로소프트 윈도우, 맥 OS X, 리눅스가 있다.[3] 이 밖에 BSD, 유닉스 등의 PC용 운영 체제도 존재한다.

    운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공한다. 또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.

    운영 체제

    Operating system placement kor.png
    공통 기능
    space
  • markup language
    0 개의 질문들

    마크업 언어(markup 言語, markup language)는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다.
    태그는 원래 텍스트와는 별도로 원고의 교정부호와 주석을 표현하기 위한 것이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었다. 이러한 태그 방법의 체계를 마크업 언어라 한다.
    일반적으로 데이터를 기술하는 정도로만 사용되기에 프로그래밍 언어와는 구별된다. 다만 MXML이나 XAML처럼 특정 프로그래밍 언어와 강하게 연관되어 기능하거나 제한적으로 프로그래밍 언어의 기능을 갖춘 것도 일부 있는데, 이런 경우엔 구별이 명확하지 않다.

    종류

    전자적 마크업의 일반적인 분류에는 세 가지가 있다:

    • 표현적 마크업(Presentational markup): 전통적인 워드 처리 시스템이 사용하는 마크업. 위지위그 효과를 내는 문서 텍스트에 포함되니 이진 코드. 이러한 마크업은 사람(저자나 편집자도 포함)의 눈에는 보이지 않도록 설계되는 것이 일반적이다.
    • 절차적 마크업(Procedural markup): 마크업은 텍스트에 포함되며 문자를 처리할 프로그램의 명령을 제공한다. troffLaTeX포스트스크립트를 예로 들 수 있다.
    • 기술적 마크업(Descriptive markup): 마크업은 문서의 일부에 이름을 다는 데 사용된다. 예로, HTML의 인용의 이름을 다는 <cite> 태그를 들 수 있다.

    주요 마크업 언어

    space
  • HTML
    1 개의 질문들

    하이퍼텍스트 마크업 언어(HyperText Markup Language, HTML, 문화어: 초본문표식달기언어, 하이퍼본문표식달기언어)는 웹 페이지를 위한 지배적인 마크업 언어다. HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 그리고 이미지와 객체를 내장하고 대화형 양식을 생성하는 데 사용될 수 있다. HTML은 웹 페이지 콘텐츠 안의 꺾쇠 괄호에 둘러싸인 "태그"로 되어있는 HTML 요소 형태로 작성한다. HTML은 웹 브라우저와 같은 HTML 처리 장치의 행동에 영향을 주는 자바스크립트와 본문과 그 밖의 항목의 외관과 배치를 정의하는 CSS 같은 스크립트를 포함하거나 불러올 수 있다. HTML과 CSS 표준의 공동 책임자인 W3C는 명확하고 표상적인 마크업을 위하여 CSS의 사용을 권장한다.[1]

    역사

    개발

    팀 버너스리1980년, 유럽 입자 물리 연구소(CERN)의 계약자였었던 물리학자 팀 버너스리가 HTML의 원형인 인콰이어를 제안하였다. 인콰이어는 CERN의 연구원들이 문서를 이용하고 공유하기 위한 체계였다. 1989년에 팀 버너스리는 인터넷 기반 하이퍼텍스트 체계를 제안하는 메모를 작성했다.[2] 버너스 리는 1990년 말에 HTML을 명시하고, 브라우저와 서버 소프트웨어를 작성했다. 그 해에 버너스리와 CERN 데이터 시스템 엔지니어 로버트 카일리아우와 함께 CERN측에 자금 지원을 요청하였지만, 이 프로젝트는 CERN으로부터 정식으로 채택 받지 못했다. 버너스리의 개인적인 기록[3] 에 1990년부터 "하이퍼텍스트가 사용되는 여러 분야의 일부"를 열거했고 백과사전을 그 목록의 첫 번째로 두었다.


    최초 규격

    HTML 최초의 일반 공개 설명은 1991년 말에 버너스리가 처음으로 인터넷에서 문서를 "HTML 태그"(HTML tag)로 부르면서 시작되었다.



    그것은 머릿글자로 이루어진 20개의 요소를 기술하였고, 상대적으로 HTML의 단순한 디자인이었다. 하이퍼링크를 제외한 HTML 태그들은 CERN 자체의 SGML 기반 문서화 포맷인 SGML GUID에 강하게 영향을 받았다. 이 요소 중 13개는 HTML 4 버전에서도 여전히 존재한다.[6]



    HTML은 동적인 웹 페이지의 웹 브라우저를 통한 문자와 이미지 양식이다. 문자 요소의 대부분은 1988년 ISO 기술 보고서 9537 SGML을 이용한 기법에서 찾을 수 있다. 하지만 SGML 개념의 일반적인 마크업은 단지 개별 효과 보다는 요소 기반이고 또한 구조와 처리의 분리(?)(HTML은 CSS와 함께 이 방향으로 점진적으로 이동해 왔다.)



    버너스리는 SGML 응용 프로그램이 되는 HTML을 고안해야 했고 그것은 공식적으로 IETF(국제 인터넷 표준화 기구)에 의하여 1993년 중반, HTML 규격에 대한 최초의 제안을 간행물로 정의했다. (버너스리와 덴 콘놀리에 의한 문법을 규정하는 SGML 문서 형식 정의(SGML DTD)가 포함된 "하이퍼텍스트 마크업 언어(HTML)" 인터넷 초안[7]) 이 초안은 6개월 후 만료된다. 하지만 NCSA 모자이크 브라우저의 인라인 이미지를 내장하는 사용자 정의 태그의 사례는 주목할 만 했고, 성공적인 프로토타입에 대한 표준을 기반한 IETF의 철학을. [8] 마찬가지로 데이브 라그렛의 경쟁 인터넷 초안인 "HTML+ (하이퍼텍스트 마크업 포맷)"은 1993년 말에 테이블과 기입양식 같은 요소들을 이미 구현하여 표준화 제안을 했다.[9]



    이후 1994년 초 HTML과 HTML+ 초안은 만료되었고, IETF는 HTML 작업 그룹을 설립해 1995년에 HTML 2.0을 완성한다. 최초의 HTML의 규격은 미래에 수행될 HTML 표준을 기반으로 간주되는 경향이 있었다.[8]RFC 1996년에 HTML 2.0은 HTML과 HTML+ 초안의 아이디어가 포함됐다고 발표했다.[10] HTML 2.0 지정은 이전의 초안들로부터 새로운 버전을 구별하기 위해서였다.[11]



    게다가 IETF의 후원하에 개발은 상충하는 이해 관계 때문에 지연되었다. 1996년부터 HTML 규격은 상용 소프트웨어 제작사의 투입으로 월드 와이드 웹 컨소시엄(W3C)에서 유지해 왔다.[12] 하지만 2000년부터 HTML 또한 국제 표준(ISO/IEC 15445:2000)이 되었다. 현재 W3C에 의해 발표된 최신 규격은 1999년 말에 발표된 HTML 4.01 권고안이며 2001년에 문제와 오류들이 수정되어 발표된 안이 최종 승인되었다.


    표준 버전의 역사

    HTML 버전 스케줄

    1995년 11월 24일
    HTML 2.0이 "IETF"의 RFC 1866로 발표되었다. 추보의 "RFC"의 추가된 기능:
    \\\- 1995년 11월 25일: RFC 1867 \\\(양식 기반 파일 업로드\\\) \\\- 1996년 5월: RFC 1942 \\\(테이블\\\) \\\- 1996년 8월: RFC 1980 \\\(클라이언트 측 이미지맵\\\) \\\- 1997년 1월: RFC 2070 \\\(국제화\\\)
    2000년 6월, 이 모든 것들이 RFC 2854에 의하여 더 이상 쓰이지 않고 역사적인 것으로 선언됨.
    1997년 1월
    HTML 3.2가 W3C 권고안으로 발표되었다. 이것은 1996년 9월에 폐쇄한 HTML 작업 그룹인 IETF와 같이 W3C에 의하여 배타적으로 개발되고 표준화된 첫 번째 버전이다.
    HTML 3.2에서 여러 종류의 겹치는 확장 수학 수식을 완전히 제외 시키고 넷스케이프의 비주얼 마크업 태그의 대다수를 채택했다. 넷스케이프의  "블링크 요소"와 마이크로소프트의 "마퀴 요소"는 두 회사의 상호 협의 하에 누락시켰다. HTML에서 수학적 수식과 비슷한 마크업은 이후 "MathML"이 나올 때까지 14개월 동안 표준이 아니었다.
    1997년 12월
    HTML 4.0
    이 W3C 권고안으로 출시되었다. HTML 4.0은 세 가지 문서 형태를 제공한다:
    • Strict(엄격): 사용이 중지된 요소를 금지한다.
    • Transitional(변이): 사용이 중지된 요소를 허용한다.
    • Frameset(프레임셋): 대부분 프레임 관련 요소에서만 허용한다.
    처음에 코드네임 "쿠가" 에서 HTML 4.0은 다양한 브라우저 특정 요소의 종류와 속성을 채택하였지만 동시에 스타일시트에 찬성하는 세력의 반대로 넷스케이프의 시각적 마크업 기능을 단계적으로 제거하기로 했다. HTML 4는 ISO 8879 - SGML에 따른 SGML 응용 프로그래밍 언어다.
    1998년 4월
    HTML 4.0 이 버전이 증가되지 않고 조금 수정되어 재발표되었다.
    1999년 12월
    HTML 4.01 이 W3C 권고안으로 출시되었다. HTML 4.0과 마찬가지로 세 가지 문서 형태를 제공한다. 그리고 2001년 5월 12일에 그것에 대한 최종 [오류 수정 사항](http://www.w3.org/MarkUp/html4-updates/errata) 이 발표되었다.
    2000년 5월
    [ISO/IEC 15445:2000] ("국제 표준화 기구") HTML", HTML 4.01 Strict 기반)이 ISO/IEC 국제 표준과 함께 출시되었다. ISO에서 이 표준안은 [ISO/IEC JTC1/SC34] (ISO/IEC 공동 기술 위원회 1, 소위원회 34 - 문서 표현과 처리 언어)의 범위에서 떨어져 나왔다.
    2008년 중반, HTML 4.01과 ISO/IEC 15445:2000은 HTML의 대부분의 최근 버전이다. XML 기반 병렬 개발 언어인 XHTML을 통해 W3C의 HTML 작업 그룹은 2000년대 초중반에 성장하였다.

    HTML 초안 버전 스케줄

    1991년 10월
    \\\\\\\\\\\\\\\\*[HTML 요소] : 비공식적 CERN 문서에서 12개의 HTML 태그 목록이 대중에게 언급되었다.
    1992년 7월
    6단계 이후의 개정판과 함께 HTML DTD,[\\\\\\\\\\\\[1\\\\\\\\\\\\]](http://lists.w3.org/Archives/Public/www-talk/1992JulAug/0020.html) 의 첫 번째 비공식 초안
    1992년 11월
    HTML DTD 1.1 (1.0 대신에 1.1을 [RCS] "버전 관리 시스템" 체계를 기반으로 하는 첫 번째 버전 번호로 시작한다.), 비공식 초안
    1993년 6월
    하이퍼텍스트 마크업 언어는 인터넷 초안(표준에 대한 간략한 제안)과 함께[IETF] IIIR 작업 그룹에 의하여 발표되었다. 그것은 한 달 후 IETF에 의해 [\\\\\\\\\\\\[2\\\\\\\\\\\\]](http://tools.ietf.org/html/draft-ietf-html-spec-00) 6가지 추가 초안을 더한 두 번째 버전 [\\\\\\\\\\\\[3\\\\\\\\\\\\]](http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt) 으로 대체되었고 결국 HTML 2.0이 RFC1866을 주도했다.
    1993년 11월
    HTML+가 인터넷 초안과 함께 IETF에 의하여 출시되었고, HTML 초안과의 경쟁을 제안하였다. 1994년 5월 HTML+는 만료되었다.
    1995년 4월 (1995년 3월에 저술)
    HTML 3.0 이 IETF 표준안으로 제안되었지만 이 제안은 이후 5개월 동안 진전이 없어서 만료되었다. 여기에는 [데이브 라겟] 의 HTML+ 제안의 표와 복잡한 수학적 수식을 표시를 지원하는 것과 같은 특성의 상당부분을 포함했다.
    W3C는 HTML3와 CSS를 지원하는 시험하기 위하여 자체적으로  "아레나 브라우저 "를 개발하기 시작했다. 하지만 HTML 3.0은 여러 이유로 성공하지 못했다.
    2008년 1월
    [HTML 5]초안 작업은 W3C에 의해 발표되었다.
    비록 문법은 SGML의 문법과 밀접하게 연관되어 있지만, [HTML 5]는 난해한 SGML 문법과 호환되지 않는다. 그리고 HTML 5를 "html" 시리즈라고 명시적으로 정의되었다

    XHTML 버전



    이 부분의 본문은 XHTML입니다.
    XHTML은 XML 1.0을 이용하여 HTML 4.01을 새로 만든 독립된 언어다.

    • XHTML 1.0 은 2000년 1월 26일에 W3C 권고안으로 발표되었다. 이후 2002년 8월 1일에 개정과 재발표를 하였다. 이것은 XML에 관하여 새로 작성된 HTML 4.0 과 HTML 4.01 같이 세가지 문서 형태를 사소한 규약과 함께 제공한다.
    • XHTML 1.1 2001년 5월 31일에 W3C 권고안으로 발표되었다. 그것은 XHTML 1.0 strict 기반이지만 사소한 변경 사항과 사용자 정의 기능을 포함하고, XHTML의 모듈화 으로부터 모듈을 이용하여 새로 작성되었다.
    • XHTML 2.0 은 아직까지 W3C 작업 초안이다. W3C는 2009년 말까지 XHTML 2 그룹을 중단한다고 발표하였다. 그러므로 XHTML 2.0 표준은 사라질 것이다. XHTML은 XHTML 1.x와 호환되지 않는다. 따라서 XHTML 1.0 에서 업데이트된 것 보다 XHTML을 기반으로 하는 새로운 언어가 특성이 더 정확해진다.
    • XHTML5는 HTML 5 초안에서 HTML 5와 함께 정의되었다.

    마크업


    HTML 4 구문 강조
    HTML 마크업은 HTML 요소(엘리먼트, Elements)와 그들의 속성(Attributes)과 문자 기반 데이터 형태와 문자 참조와 엔티티 참조를 포함하는 몇 가지 핵심 구성 요소로 이루어져 있다. 또 다른 중요한 구성 요소로는 문서 형식 정의(DTD, Document Type Definition)를 명시하는 문서 형식 선언(document type declaration)이다. 차기 HTML 5에서는 DTD를 지정하지 않아도 되고 오직 레이아웃 모드로 지정된다 [4].



    Hello world 프로그램은 프로그래밍 언어와 스크립트 언어 그리고 마크업 언어를 비교하기 위해 사용되는 일반적인 컴퓨터 프로그램이다. 그리고 HTML에서의 Hello world 프로그램은 단 9줄에 불과하다:

    <!doctype html>
    <html>
      <head>
        <title>Hello HTML</title>
      </head>
      <body>
        <p>Hello World!</p>
      </body>
    </html>
    

    (<html>과 </html>사이의 문자는 웹 페이지를 표현한다. <body>와 </body>사이의 문자는 표시되는 페이지의 내용이며, <head>와 </head>사이의 문자는 눈에는 보이지 않지만 웹 페이지를 표현하기위해 필요한 해더 정보를 담고 있다.<title>과 </title>사이의 문자는 웹 브라우저의 페이지 제목을 정의하는데 사용된다.)
    Hello world 프로그램을 최대로 짧게 만들고 싶다면:

    Hello world
    

    이라고 해도 되지만, 웹 표준에 위배된다.이 문서 형식 정의는 HTML 5이다. 만약 <!doctype html>로 선언하지 않은 경우 대다수의 브라우저는 "쿽스 모드"로 렌더링한다.

    HTML 요소



    이 부분의 본문은 HTML 요소입니다.
    HTML 문서는 완전한 HTML 요소로 구성되어 있고, HTML 요소의 가장 보편적인 형태는 세 가지 구성 요소를 가진다: "시작 태그"(Start Tag)와 "종료 태그"(End Tag) 와 같은 태그 한 쌍; 몇 가지 요소 속성은 그 태그들 내에서 특성을 부여한다. 마지막으로 문자와 그래픽 정보 콘텐츠를 화면에 표현한다.

    HTML 요소는 태그의 사이와 포함되는 모든 것이다. 태그는 꺾쇠괄호(<>)로 둘러싸인 키워드이다.

    HTML 요소의 일반적인 형태

    <tag>보이는 내용</tag>
    

    HTML 요소의 이름은 태그의 이름이다. 그리고 종료 태그의 이름은 슬래시 문자 ("/")로 시작된다.

    HTML 요소의 가장 보편적인 형태

    <tag attribute1="value1" attribute2="value2">보이는 내용</tag>
    

    속성이 주어지지 않는다면 시작 태그의 기본값을 사용하게 된다.

    태그의 기본적인 형태

    HTML의 머리부분 (<head>...</head>), 보통 제목은 <head>의 안에 포함된다. 예제:

    <head>
    <title>제목</title>
    </head>
    

    단락 구획

    <p>단락 1</p> <p>단락 2</p>
    

    새 줄(<br>







    ), <br>

    와 <p> 간의 차이점은 'br'은 페이지의 의미론적 구조를 변경하지 않는 줄바꿈(breaks a line)인 반면 'p'는 단락으로 페이지를 구분한다.

    <code><p>이것은 <br /> 줄바꿈을 <br /> 포함하는 <br /> 단락이다. </p></code>
    

    주석 사용

    <!--..설명!..-->
    

    주석은 코딩을 이해하는데 도움을 줄 수 있지만 웹 페이지에는 표시되지 않는다.

    HTML에서 사용되는 마크업 요소의 형태

    • 구조적 마크업은 본문의 목적을 표현한다. 예를 들어, <h2>골프</h2>는 "골프"를 두 번째 수준의 제목으로 규정한다. 그리고 그것은 브라우저에서 이 장의 처음에 나오는 HTML 마크업 제목과 유사한 방식으로 해석될 것이다. 구조적 마크업은 어떤 특정한 렌더링을 표시하지 않지만, 대부분의 웹 브라우저는 요소 포맷팅에 대한 기본적인 스타일을 표준화했다. 텍스트는 캐스캐이딩 스타일시트(CSS)로 더 꾸밀 수 있다.
    • 표현적 마크업은 기능에 관계없이 본문의 외관을 표현한다. 예를 들어, <b>굵은 글씨</b>는 시각적 결과 장치가 굵은 글씨 속에 있는 "boldface"를 해석해야 한다는 것을 지시하지만, 이것을 할 수 있는 장치가 무엇을 해야 할 지(예를 들어 텍스트를 크게 읽어주는 장치와 같은 )에 대한 어떠한 지시도 하지 않는다. <b>굵게</b>와 <i>이탤릭</i>과 같은 경우에는 보통 시각적 해석에 필적하는 여러 가지 요소가 있지만, 본래가 더 의미론적이다. 즉, 각각 <strong>strong emphasis</strong>와 <em>emphasis</em>같이 할 수 있다. 음성 사용자 에이전트가 어떻게 후자의 두 요소를 해석하는 지 지켜보는 것은 쉽다. 그러나 그것은 그들의 표현 상대와 맞먹지는 않는다. 예를 들자면 책의 이름을 강조하는 것이 스크린을 읽는 유저에게는 바람직하지 않지만, 화면에서 그러한 이름이 이탤릭체로 될 것이다. 대부분의 표현 마크업 요소는 스타일 디자인에 근거한 CSS에 호응해서 HTML 4.0 스펙에서는 받아들여지지 않을 것이다.
    • 하이퍼텍스트 마크업은 다른문서와 연결시켜주는 문서의 부분이다. XHTML 1.1 버전을 통한 HTML은 본문속에서 하이퍼링크를 생성하기위해 anchor 요소(<a>위키백과</a>)의 사용을 필요로 한다. 덧붙여, href 속성은 반드시 정확한 URL을 설정해야만 한다. 예를 들어, HTML 마크업인 <a href="[[[https://ko.wikipedia.org/\\\](https://ko.wikipedia.org/)\](https://ko.wikipedia.org/\](https://ko.wikipedia.org/))](https://ko.wikipedia.org/\](https://ko.wikipedia.org/)](https://ko.wikipedia.org/](https://ko.wikipedia.org/)))">한국어 위키백과</a>는 하이퍼링크로써 한국어 위키백과 처럼 보일 것이다.
    <a href="http://example.org"><img src="image.gif" alt="alternative text" width="50" height="50"></a>
    
    \\\\\\\\\\* 하이퍼링크로써 이미지를 표현하는 예제
    space
  • Maven
    0 개의 질문들

    아파치 메이븐(Apache Maven)은 자바용 프로젝트 관리 도구이다. 아파치 앤트의 대안으로 만들어졌다. 아파치 라이선스로 배포되는 오픈 소스 소프트웨어이다.

    space
  • hamonikr
    6 개의 질문들

    하모니카(영어: HamoniKR)는 한글을 사용하는 우리나라의 특성상 컴퓨터 운영체제의 한국어 사용자를 위한 지원은 매우 중요한 문제라 할 수 있다. 기존의 리눅스 운영체제에서도 한국어 지원을 지속적으로 하고 있으나, 리눅스 운영체제의 개발 기업들 또한 해외 기업들이 대다수이다.

    이러한 환경 속에서 국내 리눅스 운영체제의 대중적인 보급을 높이고자 국내 상황에 적용할 수 있는 리눅스OS 빌드 체계 및 한글화 개선을 지속적으로 수행 가능하도록 ‘오픈소스 한글화 지원 체계 구축’ 과 ‘개방형OS의 국내 보급 확대’를 위한 기반을 마련하기 위해 2014년 정보통신산업진흥원(NIPA)에서 관련 프로젝트가 진행되었다.

    이 프로젝트 진행 중 한글화 서비스 및 개발 빌드 체계 테스트를 위해 사용성이 높은 ‘리눅스 민트(Mint)’ 버전을 활용하게 되었으며, 이를 개선하여 발표한 리눅스 운영체제가 ‘하모니카OS’이다. 2016년 이후에는 국가에서 하는 프로젝트의 연속성은 없어졌고 하모니카 커뮤니티 (https://hamonikr.org) 참여자들 중심으로 자발적으로 수정, 배포 활동을 하고 있다.

    하모니카는 오픈소스 소프트웨어로 이루어진 개방형OS로서, 사용하기 위해 지불해야하는 라이선스 비용이 없으며 하모니카 커뮤니티에서 누구나 무료로 다운로드 받아 설치하고 사용할 수 있다.

    space
  • go
    0 개의 질문들

    Go의 초기 디자인은 2007년 9월 21일에 로버트 그리즈머, 롭 파이크, 켄 톰프슨이 인페르노 분산 운영체제와 관련된 작업을 하다가 시작되었다. 화이트 보드에 새로운 언어에 대한 스케치를 하면서 초기 20% 파트타임 프로젝트로 시작하였다가 2008년 1월 켄 톰프슨이 C 코드를 만들어내는 컴파일러를 만들기 시작했고, 2008년 중반 풀타임 프로젝트로 승격되었다. 2008년 5월 이안 테일러가 Go 스펙의 초안을 이용해서 GCC 프론트엔드를 만들기 시작했고, 2008년 말 러스 콕스가 참여하면서 프로토타입에서 실질적인 언어와 라이브러리들을 만들기 시작했다. 2009년 11월 10일에 리눅스와 MacOS 플랫폼을 대상으로 공식 발표되었다. Go가 처음 런칭되었을 때는 실무적인 소프트웨어를 만들기에는 준비가 좀 덜 된 상태였지만, 2010년 5월 롭 파이크는 구글에서 실제로 사용되고 있는 부분이 있다고 공개적으로 알리게 되었다. 2009년 11월에 Go가 발표되었다. 구글의 생산 시스템 중 일부 및 기타 기업들에 사용되고 있다.[3]

    Go는 다른 언어의 긍정적인 특징들을 유지하면서 공통이 되는 문제들을 해결할 새로운 프로그래밍 언어를 설계하기 위해 구글의 엔지니어 Robert Griesemer, 롭 파이크, 켄 톰프슨에 의해 실험적으로 시작되었다. 이 새로운 언어는 다음의 기능을 포함할 작정이었다:[4]

    정적 타이핑 및 대형 시스템으로의 스케일 가능할 것 (마치 자바와 C++처럼)
    너무 많은 필수적인 키워드와 반복 없이도 생산적이고 가독성이 좋을 것[5] (동적 프로그래밍 언어와 같이 가벼움)
    통합 개발 환경이 필요하지 않지만 지원도 가능할 것
    네트워킹 및 다중 처리를 지원할 것
    나중의 인터뷰에서, 언어 설계자 3명 모두 자신들이 C++의 복잡성을 싫어하며 이로 인해 새로운 언어를 설계하는 계기가 되었다고 언급하였다.
    ------ 편집1

    space
  • c++
    0 개의 질문들

    C 언어에 객체지향 프로그래밍을 지원하기 위한 내용이 덧붙여진 것이라고 할 수도 있지만, 애초부터 객체지향을 염두에 두고 만들어진 언어와는 다르게, 단지 더 좋은 C 언어로서 수속형 언어로 취급하기도 한다. 초기의 C++은 C 위에 놓인 트랜스레이터로 구현되었다. 즉, C++ 프로그램을 일단 C 프로그램으로 변환하고 나서 C 컴파일러로 컴파일하는 식이었고 따라서 C 언어에 대해 상위 호환성을 갖는 언어였다.

    그 후, C 언어의 표준 규격이 바뀔 때 const 수식 등 C++의 기능이 C 언어에 받아들이기도 했다. 현재 C 언어와 C++와의 사이에는 엄격한 호환성은 없다. 특히 C99의 출현으로 C 언어와의 호환성은 깨져 버렸다. 따라서 C99 이후로 C++은 C의 수퍼셋(superset)이 아니다. 그러나, C++17 표준안에서는 다시 C언어가 C++의 진부분집합이 될 것이 확실해 보인다. 현재 C와 C++가 명확한 구별 없이 혼재되어 사용되는 컴파일러가 대부분이지만 C99 이후의 문법을 C++ 컴파일러에서 컴파일 할 경우 오류가 발생할 수 있다.

    다음과 같은 다양한 기능을 가지고 있어 C++ 언어의 표준 규격은 몹시 복잡하다. C++ 표준의 모든 사항을 완전하게 지원하는 컴파일러는 현재 손꼽을 정도이다.

    • 다중 상속
    • 템플릿
    • 연산자 오버로드
    • 예외 처리
    • 실행시 형 식별
    space
  • linux
    2 개의 질문들

    리눅스(영어: Linux)는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영 체제이다. 혹은 커널을 뜻하기도 한다. 리눅스는 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있다. 리눅스는 다중 사용자, 다중작업(멀티태스킹), 멀티스레딩을 지원하는 네트워크 운영 체제(NOS)이다.

    엄밀하게 따지면 이 ‘리눅스’라는 용어는 리눅스 커널만을 뜻하지만, 리눅스 커널과 GNU 프로젝트의 라이브러리와 도구들이 포함된, 전체 운영 체제(GNU/리눅스라고도 알려진)를 나타내는 말로 흔히 쓰인다. 리눅스 배포판은 핵심 시스템 외에 대다수 소프트웨어를 포함한다. 현재 200여 종류가 넘는 배포판이 존재한다.

    초기 리눅스는 개개인의 애호자들이 광범위하게 개발하였다. 이후 리눅스는 IBM, HP와 같은 거대 IT 기업의 후원을 받으며, 서버 분야에서 유닉스와 마이크로소프트 윈도우 운영 체제의 대안으로 자리잡았다.

    리눅스는 데스크톱 컴퓨터를 위한 운영 체제로서도 인기가 늘어가고 있다. 지지자와 분석자들은 이와 같은 성공을 벤더 독립성과 적은 개발비, 보안성과 안전성에서 기인한다고 분석한다.

    space
  • c
    0 개의 질문들

    C는 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다. 유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. 오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.

    space
  • java
    1 개의 질문들

    자바(영어: Java, 문화어: 쟈바)는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 1991년 그린 프로젝트(Green Project)라는 이름으로 시작해 1995년에 발표했다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다. 현재 버전 10까지 출시했다.

    자바의 개발자들은 유닉스 기반의 배경을 가지고 있었기 때문에 문법적인 특성은 파스칼이 아닌 C++의 조상인 C 언어와 비슷하다.[1] 자바를 다른 컴파일언어와 구분 짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다. 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다. 바이트코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다

    space
  • javascript
    0 개의 질문들

    자바스크립트(영어: JavaScript)는 객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 아이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다. 자바스크립트가 썬 마이크로시스템즈의 자바와 구문이 유사한 점도 있지만, 이는 사실 두 언어 모두 C 언어의 기본 구문에 바탕을 뒀기 때문이고, 자바와 자바스크립트는 직접적인 관련성이 없다. 이름과 구문 외에는 자바보다 셀프나 스킴과 유사성이 많다.

    space
  • Shell
    2 개의 질문들

    (shell, 문화어: 쉘, 자령해석프로그램)은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸(껍데기의 영어 단어)은 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸qweqwe는 층이기 때문에 그러한 이름이 붙었다.
    qwe
    셸은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다. 명령 줄 셸은 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공하는 반면에, 그래픽 셸은 그래픽 사용자 인터페이스(GUI)를 제공한다.
    wwwwwwwwwwwwwwwww
    CLI와 GUI 기반 셸의 상대적 장점에 대해서는 논쟁이 많다. CLI 지지자는 CLI 셸 상에서 일반적인 수행(파일 이동 등)을 훨씬 빠르게 할 수 있다고 주장한다. 반대로 GUI 지지자는 GUI 셸의 상대적 사용성과 간편함을 내세운다. 일반적으로 성능을 중시하고 숙련된 관리자의 작업에 주로 사용되는 서버의 경우는 CLI가 많이 쓰이며 반면 일상적인 업무에 사용되는 컴퓨터엔 GUI가 많이 사용된다.

    목차

    역사

    최초의 유닉스 셸인 켄 톰프슨의 sh[1]는 멀틱스 셸을 따라 모형화한 것이었다.[2] 본 셸은 첫 유닉스 셸에서 파생한 것이다. 본 셸의 뒤를 이어서 등장한 셸은 C 셸(csh)이다. C 셸은 버어클리의 빌 조이(Bill Joy)에 의해서 작성되었으며, 셸 스크립터를 작성하는 언어가 C 언어를 닮았기에 C 셸이라고 불린다. 다음으로 나타난 셸은 TC 셸(tcsh)로서 C 셸의 기능에다 명령어-완성(command-completion)기능을 추가시켜 만든 퍼블릭 도메인 버전이다.

    실질적으로 모든 운영 체제의 셸은 상호 작용과 일괄 방식으로 사용될 수 있으며 일괄 방식의 경우 여러 명령어를 나열하여 둔 텍스트 파일의 이름을 지정함으로써 사용하는 것이 보통이다. 셸을 이용하는 일괄 방식은 프로그래밍 언어의 구조, 조건, 변수 등을 동반한다.

    셸의 목록

    그래픽 셸

    명령 줄 셸

    space
1
Tages
    활동순위
    유저
      파트너사