{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name                   = 라이노
| logo                   = Inicio de ldp para 260px50px moziyarinocrnt.jpg
| screenshot             =
| caption                =
| developer              = [[모질라 재단]], [[모질라 코퍼레이션]]
| status                 = 개발 중
| latest release version = 1.7.14
| latest release date = {{시작 날짜와 나이|2022|01|06}}
| latest preview version =
| latest preview date    =
| operating system       = [[크로스 플랫폼]]
| platform               = [[자바 가상 머신]]
| language               =
| programming language   = [[자바 (프로그래밍 언어)|자바]]
| genre                  = [[자바스크립트 엔진]]
| license                = [[모질라 공용 허가서|MPL]]
| website                = {{URL|www.mozilla.org/rhino}}
}}

'''라이노'''(Rhino)는 온전히 [[자바 (프로그래밍 언어)|자바]]로 작성된 [[자바스크립트 엔진]]의 하나로, [[모질라 재단]]이 [[오픈 소스 소프트웨어]]로 관리하고 있다. 모질라에서 하나 더 개발하고 있는 [[C++]]로 작성되고 [[모질라 파이어폭스]]에 사용되는 [[스파이더몽키]] 엔진과는 구별한다.

== 역사 ==
라이노 프로젝트는 1997년 [[넷스케이프]]에서 시작되었다. 당시 넷스케이프는 완전히 자바로 작성된 [[넷스케이프 내비게이터]] 버전을 개발할 예정이었으며 이에 따라 자바로 작성된 자바스크립트 구현체가 필요하였다. 넷스케이프가 자바게이터(Javagator)에 대한 작업을 착수하면서 이른바 라이노 프로젝트가 자바스크립트 엔진으로서 완성되었다. 그 이후로 썬 마이크로시스템즈를 포함한 일부 주요 기업들은 자사의 제품에 라이노를 사용하기 위해 라이선스하였고 넷스케이프에 지불하여 작업을 계속해나갔다.

원래 라이노는 모든 자바스크립트 코드를 생성된 [[자바 클래스 파일]]의 [[자바 바이트코드]]로 컴파일하였다. [[JIT 컴파일]]과 더불어 종종 자바스크립트의 C++ 구현체에 버금갈 정도로 최고의 성능을 뽐냈지만 두 가지 결점에서 고통을 받았다. 첫째로 바이트코드를 생성하는데 컴파일 시간이 길었고 생성된 클래스를 불러오는 것이 리소스를 많이 잡아먹는 과정이었다. 또, 대부분의 [[자바 가상 머신]](JVM)이 사용되지 않은 클래스라든지 클래스 파일 로드의 결과로 억류된 [[문자열]]의 [[쓰레기 관리|수집]]을 하지 못했기 때문에 [[메모리 누수]]가 발생하였다(자바의 나중 버전에서 변경되었다).

그 결과, 1998년 가을 라이노는 인터프리트 모드를 추가하였다. 클래스파일 생성 코드는 선택적인 [[동적 적재]] 패키지로 이동되었다. 컴파일 속도는 더 빨라졌고 스크립트를 더 이상 사용하지 않을 때 다른 모든 자바 객체처럼 수집이 가능하다.

라이노는 1998년 4월 [[모질라 재단]]에 릴리스되었다. 원래 라이노 클래스파일 생성은 출시 때부터 제한되었다. 그러나 라이노의 라이선스 제공자가 클래스 파일 생성을 포함한 라이노 전체를 오픈 소스로 릴리스하는 것에 동의하였다. 오픈 소스로 릴리스된 이후 라이노는 다양한 용도로 사용되었고 수많은 사람들이 코드에 기여하고 있다.<ref>{{웹 인용 | url = https://developer.mozilla.org/en-US/docs/Rhino/History | title = Rhino History | publisher = [[모질라 재단]] | accessdate = 2008-03-20 | archive-date = 2013-03-12 | archive-url = https://web.archive.org/web/20130312051616/https://developer.mozilla.org/en-US/docs/Rhino/History | url-status = dead }}</ref> 프로젝트는 [[오라일리 미디어]]의 자바스크립트 책의 커버의 동물의 이름을 가져왔다.<ref>[http://www.oreilly.com/catalog/jscript5/ O'Reilly's Javascript book, inspiration for the Rhino name]</ref> 1.7R1 버전을 기준으로, 라이노는 [[자바 버전 역사|자바 4]] 이상을 지원하며, 버전 1.7의 [[자바스크립트]]를 지원한다.<ref>{{웹 인용|url=https://developer.mozilla.org/en/docs/New_in_Rhino_1.7R1|title=New in Rhino 1.7R1|publisher=Mozilla Foundation|accessdate=2008-03-20|archive-date=2008-04-05|archive-url=https://web.archive.org/web/20080405122330/http://developer.mozilla.org/en/docs/New_in_Rhino_1.7R1}}</ref>

== 이용 ==
라이노는 자바스크립트 스크립트를 [[클래스 (컴퓨터 프로그래밍)|클래스]]로 변환한다. 라이노는 [[컴파일러|컴파일]] 및 [[인터프리터|인터프리트]] 모드로 동작한다. [[서버 사이드]] 애플리케이션에 사용하기 위해 고안되었으므로 자바스크립트에 연관되는 [[웹 브라우저]] 오브젝트 자체 지원은 없다.

라이노는 라이노 [[명령 줄 인터페이스|셸]]을 사용함으로써 [[디버거]]로 사용할 수 있다. 자바스크립트 셸은 배치 모드나 탐색 프로그래밍을 위한 인터랙티브 환경에서 스크립트를 실행하는 단순한 방식을 제공한다. 라이노를 임베드함으로써 애플리케이션에 사용할 수 있다.

라이노 1.6r2의 사소한 수정판이 [[썬 마이크로시스템즈]] 릴리스 [[자바 플랫폼, 스탠더드 에디션|자바 SE]] 버전 6에 번들되어 있으며, 2006년 12월에 출시되었다. 이를 통해 자바스크립트가 자바 프로그램의 일부로 통합되면서 자바스크립트에서 자바 리소스에 더 쉽게 접근할 수 있다. 자바 6의 다른 구현체들은 차이가 있을 수 있다.

== 같이 보기 ==
* [[자바스크립트 엔진]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* [http://www.mozilla.org/rhino/download.html Download Rhino ]
* [https://developer.mozilla.org/en/Rhino_downloads_archive Download Archive] {{웨이백|url=https://developer.mozilla.org/en/Rhino_downloads_archive |date=20120324122618 }}
* [http://www.ibm.com/developerworks/java/library/j-5things9.html 5 things you didn't know about ... the Java Scripting API] by Ted Neward

{{ECMA스크립트}}
{{모질라}}

[[분류:JVM 프로그래밍 언어]]
[[분류:모질라]]
[[분류:자바스크립트 엔진]]
[[분류:크로스 플랫폼 소프트웨어]]
[[분류:모질라 라이선스 소프트웨어]]