맨위로가기

구식화

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구식화는 더 이상 사용되지 않거나 권장되지 않는 무언가를 의미한다. 소프트웨어 분야에서 구식화는 특정 기능이 더 이상 사용되지 않지만, 하위 호환성을 위해 당분간 유지되다가 나중에 제거될 수 있음을 나타낸다. 구식화의 이유는 더 나은 대체 기능의 등장, 보안 결함, 불필요한 기능, 주요 구조적 변경, 명명 일관성, 기능 통합 등 다양하다. 건축, 글쓰기, 기술 표준, 기술 용어 등 다양한 분야에서도 구식화가 발생한다.

더 읽어볼만한 페이지

  • 하위 호환성 - 다운그레이드 공격
    다운그레이드 공격은 중간자 공격의 일종으로, 암호화 통신 시 프로토콜이나 암호화 알고리즘을 낮은 버전이나 취약한 방식으로 변경하여 보안을 약화시키는 공격이며, SSL/TLS 프로토콜에서 지속적으로 발생하고, 하위 호환성 제거 및 HSTS와 같은 메커니즘을 통해 대응할 수 있다.
  • 하위 호환성 - 상위 호환성
    상위 호환성은 컴퓨터 기술에서 새로운 시스템이나 기술이 이전 버전과 호환되는 것을 의미하며, 소프트웨어, 하드웨어, 파일 형식 등 다양한 분야에서 기술 발전과 사용자 편의성을 위해 중요한 역할을 한다.
구식화
개요
정의어떤 기술, 기능, 디자인 또는 관행의 사용을 권장하지 않음.
목적소프트웨어 개발자가 더 이상 사용하지 않는 기능에 의존하지 않도록 알리고, 새로운 대안을 사용하도록 장려함.
기술적 구현
방법컴파일러 경고 표시
런타임 경고 표시
문서에서 명시
API 변경 (예: 이름 변경, 삭제)
사용 사례
예시더 나은 성능의 새로운 알고리즘으로 대체된 오래된 알고리즘
더 안전한 새로운 API로 대체된 보안 취약점이 있는 API
더 최신 기술로 대체된 오래된 기술
고려 사항
점진적 전환점진적인 전환을 위해 기존 기능을 유지하면서 새로운 기능을 추가하는 방식으로 진행.
하위 호환성기존 코드의 작동을 유지하면서 새로운 코드를 개발할 수 있도록 함.
문서화명확한 설명과 함께 제공하여 개발자가 이유와 대안을 이해하도록 도움.

2. 어원

일반적인 영어 사용법에서 동사 "to deprecate"는 "무언가에 대해 불찬성을 표명하다"는 의미를 지닌다. 이는 "기도로 (재앙)을 막다"라는 뜻의 라틴어 탈의 동사 ''deprecari''에서 유래되었다.

이러한 의미의 "deprecate"의 초기 사용례는 1984년 유즈넷 게시물에서 4.2BSD 및 C 프로그래밍 언어의 구식 기능을 언급하는 데 사용되었다.[2]

3. 소프트웨어

소프트웨어에서 구식화란 특정 기능이 더 이상 사용되지 않지만, 완전히 제거되지는 않은 상태를 의미한다. 구식화된 기능은 계속 남아있지만, 이를 사용할 경우 대체 기능을 사용하라는 경고 메시지가 나타날 수 있다. 이는 해당 기능이 나중에 제거될 수 있음을 암시한다.[14] 구식화는 이전 버전과의 호환성을 유지하고, 프로그래머들이 새로운 표준에 맞게 코드를 수정할 시간을 주기 위해 사용된다.

3. 1. 구식화의 이유

소프트웨어 기능이 구식화되는 주목할 만한 이유는 다음과 같다.

이유예시
해당 기능이 더 강력한 대체 기능으로 대체됨리눅스 커널윈도우 네트워크와 통신하기 위한 smbfscifs의 두 가지 모듈을 포함하고 있다. 후자는 더 나은 보안을 제공하고, 더 많은 프로토콜 기능을 지원하며, 커널의 나머지 부분과 더 잘 통합된다. cifs가 포함된 이후, smbfs는 구식화되었다.[5]
해당 기능에 설계 결함, 종종 보안 결함이 포함되어 있어 사용을 피해야 하지만, 기존 코드가 이에 의존하고 있다.
해당 기능이 불필요하다고 간주되어 계획된 향후 버전에서 제거될 예정초기 버전의 마크업 언어 HTML은 페이지 디자이너가 텍스트를 표시할 글꼴을 지정할 수 있도록 FONT 요소를 포함했다. CSS 및 HTML 4.0의 릴리스와 함께, FONT 요소는 불필요해졌고, HTML에서 구조적 마크업을 표기하고 CSS에서 그래픽 형식을 지정하는 이점을 해쳤다. 따라서 FONT 요소는 Transitional HTML 4.0 표준에서 구식화되었고, Strict 변형에서는 제거되었다.[8]
소프트웨어의 계획된 향후 버전에서 주요 구조적 변경이 이루어져 이전 기능을 지원하는 것이 불가능하거나 비실용적이 될 것애플은 Mac OS 9에서 Mac OS X로의 전환을 계획하면서, 사소한 변경만으로 대부분의 프로그램을 지원할 수 있는 이전 시스템의 API의 부분 집합을 만들었다. 이는 Carbon 라이브러리(이후 자체적으로 구식화됨)로, Mac OS 9와 Mac OS X 모두에서 사용할 수 있었다. 당시 주로 Mac OS 9를 사용하던 프로그래머는 Carbon에서 지원되는 API 함수만 사용하여 해당 프로그램이 Mac OS X에서 네이티브로 실행되도록 할 수 있었다. 다른 Mac OS 9 기능은 구식화되었으며, Mac OS X에서는 네이티브로 지원되지 않았다.[9]
명명 일관성API는 서로 다른 개발자가 서로 다른 철자를 사용한 결과로 "color"와 "colour"와 같은 철자를 일관성 없이 혼합할 수 있다. 일관성을 강제하기 위해, 한 철자를 사용하는 모든 식별자는 다른 철자에 대해 복제되고 선호되지 않는 철자를 사용하는 식별자는 구식화될 것이다.
한때 독립적으로 사용 가능했던 기능이 해당 공동 기능과 결합됨VLC 미디어 플레이어에서 VLC는 "VideoLan Client"의 약자였으며, 별도의 "VideoLan Server"가 해당 공동 기능으로 사용 가능했다. 클라이언트와 서버 모두 동일한 패키지에서 사용 가능하게 되었고, 따라서 하나를 독립적으로 얻는 것은 비실용적이게 되었다.[10]


4. 다른 분야에서의 사용

건축 규정의 한 예로, 접지되지 않은("2구") 전기 콘센트가 있다. 시간이 지남에 따라 이러한 구형 장치는 더 안전한 접지된("3구") 콘센트로 대체되었다. 구형의 접지되지 않은 콘센트는 새로운 설치에는 금지되었지만 기존 전기 배선에서 "소급 적용"을 통해 여전히 허용되었다. 따라서 접지되지 않은 콘센트는 구식이 된 지역에서도 합법적으로 구매할 수 있지만, 일반적으로 기존의 구형 전기 설비에 대한 수리에만 사용된다.

글쓰기와 편집에서, 단어의 사용은 모호하거나, 혼란스럽거나, 일부 독자에게 불쾌감을 줄 수 있기 때문에 구식화될 수 있다. 예를 들어, "sanction"(인가)과 "inflammable"(가연성)은 자동 반의어 또는 자기 모순적인 의미를 가지고 있기 때문에 오해를 받을 수 있으며, 글쓰기 스타일 가이드에서는 명확하게 이해되고 모호하지 않은 다른 단어로 대체할 것을 권장하는 경우가 많다. 시간이 지남에 따라 다른 함축적 의미를 갖게 된 일부 단어 사용, 예를 들어 "gay"(게이) 또는 "colored"(유색인)는 격식 있는 글쓰기에서 구식으로 간주될 수 있다.

기술 표준에서는 특정 조항의 사용이 권장되지 않거나 새로운 조항으로 대체될 수 있다. 예를 들어, 이더넷 표준 IEEE 802.3-2012에서 조항 5(계층 관리)는 5.2.4를 제외하고 조항 30(관리)에 의해 "구식화"되었다.

구식화는 또한 기술 용어가 변경 또는 대체로 인해 구식이 될 때 발생할 수 있다. 고생물학의 예로는 이전에 구식화되었던 용어 ''브론토사우루스''가 있다. 이 용어는 고유한 속으로 다시 인정받기 전,[11] 인기 있는 용어였지만 속 ''아파토사우루스''의 구식화된 이름으로 간주되었다.[12] 의학에서 구식화된 용어로는 "consumption"(결핵), "grippe"(인플루엔자), "apoplexy"(뇌졸중) 등이 있다. 화학 명명법에서 국제 표준 기구인 IUPAC(국제 순수 및 응용 화학 연합)는 "메틸 에틸 케톤"이라는 용어를 구식화했으며, 대신 "에틸 메틸 케톤"이라는 용어를 사용하는 것을 권장한다.[13]

참조

[1] 웹사이트 JEP 277: Enhanced Deprecation http://openjdk.java.[...] 2018-02-09
[2] 웹사이트 A New Meaning of 'Deprecate' https://www.merriam-[...] Merriam-Webster 2023-03-01
[3] 서적 The Jargon File, Version 2.9.10 https://www.gutenber[...] 1992-07-01
[4] 웹사이트 Windows client features lifecycle https://learn.micros[...] Microsoft 2023-02-27
[5] 웹사이트 On the future of smbfs https://lwn.net/Arti[...] 2006-05-15
[6] 서적 The GNU C Library https://www.gnu.org/[...] GNU 2008-08-02
[7] 웹사이트 Java Thread Primitive Deprecation http://download.orac[...] Oracle 2011-05-13
[8] 서적 HTML & XHTML : the definitive guide https://www.worldcat[...] O'Reilly 2007
[9] 뉴스 Carbonization 101 http://preserve.mact[...] 2000
[10] 웹사이트 The cross-platform streaming solution https://www.videolan[...] 2023-03-01
[11] 웹사이트 Brontosaurus Finally Validated as a Distinct Dinosaur https://abcnews.go.c[...] 2020-06-27
[12] 서적 The Dinosauria https://archive.org/[...] University of California Press
[13] 서적 Nomenclature of Organic Chemistry : IUPAC Recommendations and Preferred Names 2013 (Blue Book) Royal Society of Chemistry 2014
[14] 웹사이트 JEP 277: Enhanced Deprecation http://openjdk.java.[...] 2021-01-09
[15] 웹인용 JEP 277: Enhanced Deprecation http://openjdk.java.[...] 2018-02-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com