구식화
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
구식화는 더 이상 사용되지 않거나 권장되지 않는 무언가를 의미한다. 소프트웨어 분야에서 구식화는 특정 기능이 더 이상 사용되지 않지만, 하위 호환성을 위해 당분간 유지되다가 나중에 제거될 수 있음을 나타낸다. 구식화의 이유는 더 나은 대체 기능의 등장, 보안 결함, 불필요한 기능, 주요 구조적 변경, 명명 일관성, 기능 통합 등 다양하다. 건축, 글쓰기, 기술 표준, 기술 용어 등 다양한 분야에서도 구식화가 발생한다.
더 읽어볼만한 페이지
- 하위 호환성 - 다운그레이드 공격
다운그레이드 공격은 중간자 공격의 일종으로, 암호화 통신 시 프로토콜이나 암호화 알고리즘을 낮은 버전이나 취약한 방식으로 변경하여 보안을 약화시키는 공격이며, SSL/TLS 프로토콜에서 지속적으로 발생하고, 하위 호환성 제거 및 HSTS와 같은 메커니즘을 통해 대응할 수 있다. - 하위 호환성 - 상위 호환성
상위 호환성은 컴퓨터 기술에서 새로운 시스템이나 기술이 이전 버전과 호환되는 것을 의미하며, 소프트웨어, 하드웨어, 파일 형식 등 다양한 분야에서 기술 발전과 사용자 편의성을 위해 중요한 역할을 한다.
구식화 | |
---|---|
개요 | |
정의 | 어떤 기술, 기능, 디자인 또는 관행의 사용을 권장하지 않음. |
목적 | 소프트웨어 개발자가 더 이상 사용하지 않는 기능에 의존하지 않도록 알리고, 새로운 대안을 사용하도록 장려함. |
기술적 구현 | |
방법 | 컴파일러 경고 표시 런타임 경고 표시 문서에서 명시 API 변경 (예: 이름 변경, 삭제) |
사용 사례 | |
예시 | 더 나은 성능의 새로운 알고리즘으로 대체된 오래된 알고리즘 더 안전한 새로운 API로 대체된 보안 취약점이 있는 API 더 최신 기술로 대체된 오래된 기술 |
고려 사항 | |
점진적 전환 | 점진적인 전환을 위해 기존 기능을 유지하면서 새로운 기능을 추가하는 방식으로 진행. |
하위 호환성 | 기존 코드의 작동을 유지하면서 새로운 코드를 개발할 수 있도록 함. |
문서화 | 명확한 설명과 함께 제공하여 개발자가 이유와 대안을 이해하도록 도움. |
2. 어원
일반적인 영어 사용법에서 동사 "to deprecate"는 "무언가에 대해 불찬성을 표명하다"는 의미를 지닌다. 이는 "기도로 (재앙)을 막다"라는 뜻의 라틴어 탈의 동사 ''deprecari''에서 유래되었다.
소프트웨어에서 구식화란 특정 기능이 더 이상 사용되지 않지만, 완전히 제거되지는 않은 상태를 의미한다. 구식화된 기능은 계속 남아있지만, 이를 사용할 경우 대체 기능을 사용하라는 경고 메시지가 나타날 수 있다. 이는 해당 기능이 나중에 제거될 수 있음을 암시한다.[14] 구식화는 이전 버전과의 호환성을 유지하고, 프로그래머들이 새로운 표준에 맞게 코드를 수정할 시간을 주기 위해 사용된다.
이러한 의미의 "deprecate"의 초기 사용례는 1984년 유즈넷 게시물에서 4.2BSD 및 C 프로그래밍 언어의 구식 기능을 언급하는 데 사용되었다.[2]
3. 소프트웨어
3. 1. 구식화의 이유
소프트웨어 기능이 구식화되는 주목할 만한 이유는 다음과 같다.
이유 | 예시 |
---|---|
해당 기능이 더 강력한 대체 기능으로 대체됨 | 리눅스 커널은 윈도우 네트워크와 통신하기 위한 smbfs 와 cifs 의 두 가지 모듈을 포함하고 있다. 후자는 더 나은 보안을 제공하고, 더 많은 프로토콜 기능을 지원하며, 커널의 나머지 부분과 더 잘 통합된다. 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