์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. ๊ฐœ์š”2. ๋ฒ„์ „3. Windows ์šด์˜ ์ฒด์ œ์—์„œ4. ๊ธฐํƒ€

1. ๊ฐœ์š”[ํŽธ์ง‘]

Portable Operating System Interface + X[1]

POSIX๋Š” IEEE๊ฐ€ ์ œ์ •ํ•œ ์œ ๋‹‰์Šค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค(API) ๊ทœ๊ฒฉ์ด๋‹ค. ์ด ๊ทœ๊ฒฉ์„ ๋”ฐ๋ฅด๋ฉด ์œ ๋‹‰์Šค์™€ ์ง์ ‘์ ์ธ ์—ฐ๊ด€์ด ์—†์–ด๋„ ์œ ๋‹‰์Šค ํ˜ธํ™˜(Unix-like) ์šด์˜ ์ฒด์ œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์ด๋Ÿฐ ์ผ€์ด์Šค์ธ๋ฐ, ์œ ๋‹‰์Šค์™€๋Š” ๋ณ„๋„๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ POSIX ํ‘œ์ค€์„ ๊ฑฐ์˜ ๋‹ค ์ค€์ˆ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋ˆ…์Šค๋Š” ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์šด์˜ ์ฒด์ œ๋กœ ๋ณธ๋‹ค. ๋‹ค๋งŒ ๊ณต์‹ ์ธ์ฆ์„ ๋ฐ›์€ ๊ฒฝ์šฐ๋Š” ํ”์น˜ ์•Š์œผ๋ฉฐ, ๋„“๊ฒŒ ๋ด์„œ ํ˜ธํ™˜ ์šด์˜ ์ฒด์ œ๋ผ๋Š” ์–˜๊ธฐ.

์œ ๋‹‰์Šค์˜ ์ผ์ข…์ธ 4.4BSD-Lite Release 2์™€ FreeBSD์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์—ญ์‹œ ์œ ๋‹‰์Šค์˜ ์ผ์ข…์ธ macOS๋„ POSIX๋ฅผ ๋”ฐ๋ฅธ๋‹ค. macOS๋Š” 10.5 ๋ฒ„์ „๋ถ€ํ„ฐ ์•„์˜ˆ ์ •์‹ ์ธ์ฆ์„ ๋ฐ›์•˜๋‹ค. macOS 11 Big Sur ๋˜ํ•œ Intel ๋งฅ๊ณผ Apple Silicon ๋งฅ ๋ชจ๋‘ UNIX 03 ์ธ์ฆ์„ ๋ฐ›์•˜๋‹ค.

2. ๋ฒ„์ „[ํŽธ์ง‘]

  • POSIX.1
  • POSIX.1b
  • POSIX.1c
  • POSIX.2
  • POSIX.1-2001
  • POSIX.1-2008
  • POSIX.1-2017

3. Windows ์šด์˜ ์ฒด์ œ์—์„œ[ํŽธ์ง‘]

ํ•œ ๋•Œ ์œˆ๋„์šฐ๋„ ์œ ๋‹‰์Šค ์ง€์›์„ ์œ„ํ•ด POSIX 1.0์— ์ค€ํ•˜๋Š” ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ํƒ‘์žฌํ•˜์˜€์œผ๋‚˜, Windows NT ์ปค๋„ ๊ธฐ๋ฐ˜์˜ Windows XP๊ฐ€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์šด์˜ ์ฒด์ œ๋กœ ๋ณ€๋ชจํ•˜๋ฉด์„œ POSIX ์ง€์›์ด ์ œ๊ฑฐ๋˜์—ˆ๋‹ค. Windows Server 2003 R2๋ถ€ํ„ฐ๋Š” POSIX 2.0์— ์ค€ํ•˜๋Š” ์„œ๋ธŒ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๋‚˜ ์ œ์–ดํŒ์—์„œ SUA(Subsystem for UNIX-based Applications)๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค.[2] ์ดํ›„ Windows 8์—์„œ[3] SUA๊ฐ€ ๋ฏธํƒ‘์žฌ๋˜๋ฉด์„œ POSIX ์ง€์›๋„ ์ œ๊ฑฐ๋˜์—ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํ•œ๋™์•ˆ Windows์—์„œ POSIX ํ™˜๊ฒฝ์„ ์ด์šฉํ•˜๋ ค๋ฉด Cygwin์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฐ–์—๋Š” ์—†์—ˆ๋‹ค๊ฐ€, Windows 10 Anniversary Update์— ๋“ค์–ด์„œ WSL(Windows Subsystem for Linux)์ด๋ผ๋Š” ๋ฆฌ๋ˆ…์Šค ์„œ๋ธŒ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ํƒ‘์žฌํ•˜์—ฌ POSIX ํ™˜๊ฒฝ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.[4]

4. ๊ธฐํƒ€[ํŽธ์ง‘]

์ •๊ทœ ํ‘œํ˜„์‹์ด POSIX์˜ ์ผ๋ถ€์ด์ง€๋งŒ, ์›Œ๋‚™ ์˜ค๋ž˜๋œ ๊ทœ๊ฒฉ์ด๋ผ ์†๋„์ƒ์˜ ์†ํ•ด๊ฐ€ ์žˆ์–ด ์ƒ๋‹น์ˆ˜๊ฐ€ ๋” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ฐ๋Š” PCRE[5]๋กœ ๊ฐˆ์•„ํƒ„ ์ƒํƒœ์ด๋‹ค.

PHP์—์„œ ์˜ˆ์ „์— ์ •๊ทœํ‘œํ˜„์‹ ํ•จ์ˆ˜๋กœ ๋„๋ฆฌ ์“ฐ์˜€๋˜ ereg ๊ณ„์—ด ํ•จ์ˆ˜๊ฐ€ POSIX ๊ธฐ๋ฐ˜์˜ ์ •๊ทœํ‘œํ˜„์‹ ํ•จ์ˆ˜์˜€์œผ๋‚˜, PCRE ๊ธฐ๋ฐ˜์˜ preg ๊ณ„์—ด ํ•จ์ˆ˜๋กœ ๋Œ€์ฒด๋˜๋ฉด์„œ ํ•œ๋™์•ˆ ๋ ˆ๊ฑฐ์‹œ ์š”์†Œ๋กœ ๋‚จ์•„์žˆ๋‹ค๊ฐ€ PHP 7๋ถ€ํ„ฐ๋Š” ์ œ๊ฑฐ๋˜์—ˆ๋‹ค.
[1] UNIX์˜ X
[2] Windows Vista์™€ 7๋„ ์–ผํ‹ฐ๋ฐ‹ ์—๋””์…˜ ๋˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์—๋””์…˜์ผ ๊ฒฝ์šฐ ์ œ์–ดํŒ์—์„œ SUA๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.
[3] ์„œ๋ฒ„ ์šด์˜์ฒด์ œ๋Š” Windows Server 2012 R2๋ถ€ํ„ฐ.
[4] ๋‹จ, WSL1 ๋ฒ„์ „์—์„œ๋Š” ์‹ค์ œ๋กœ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ์ฝœ(์ด๋ฅผ POSIX API๋ผ๊ณ  ๋ณผ ๋•Œ)์„ Windows API๋กœ ๊ตฌํ˜„ํ•˜๋Š”, ์ฆ‰ ์ผ์ข…์˜ ๋ฒˆ์—ญ ์ž‘์—…์„ ๊ฑฐ์ณค์œผ๋ฏ€๋กœ ์›๋ž˜์˜ ์„œ๋ธŒ์‹œ์Šคํ…œ์˜ ์ •์˜ํ•˜๊ณ  ๊ทธ๋‚˜๋งˆ ๋น„์Šทํ•˜๋‹ค๊ณ  ํ•ด์ค„ ์ˆ˜ ์žˆ์—ˆ์œผ๋‚˜, WSL2 ๋ถ€ํ„ฐ๋Š” Hyper-V ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์˜ˆ ์‹ค์ œ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด ๊ฐ€์ƒํ™”๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฑด ์›๋ž˜ ์˜๋ฏธ๋กœ์„œ์˜ ์„œ๋ธŒ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•˜๊ธฐ ๋”๋”์šฑ ์• ๋งคํ•˜๊ธฐ๋Š” ํ•˜๋‹ค.
[5] Perl Compatible Regular Expressions