<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://www.gaonwiki.com/w/index.php?action=history&amp;feed=atom&amp;title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4%2F%EC%95%A0%EB%93%9C%EC%98%A8</id>
	<title>라이믹스/애드온 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://www.gaonwiki.com/w/index.php?action=history&amp;feed=atom&amp;title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4%2F%EC%95%A0%EB%93%9C%EC%98%A8"/>
	<link rel="alternate" type="text/html" href="https://www.gaonwiki.com/w/index.php?title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4/%EC%95%A0%EB%93%9C%EC%98%A8&amp;action=history"/>
	<updated>2026-09-23T02:39:27Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.gaonwiki.com/w/index.php?title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4/%EC%95%A0%EB%93%9C%EC%98%A8&amp;diff=108231&amp;oldid=prev</id>
		<title>Gaon12: 새 문서. 애드온의 동작 방식과 호출 지점, 파일 구조, 코어 기본 애드온 정리</title>
		<link rel="alternate" type="text/html" href="https://www.gaonwiki.com/w/index.php?title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4/%EC%95%A0%EB%93%9C%EC%98%A8&amp;diff=108231&amp;oldid=prev"/>
		<updated>2026-08-21T06:03:11Z</updated>

		<summary type="html">&lt;p&gt;새 문서. 애드온의 동작 방식과 호출 지점, 파일 구조, 코어 기본 애드온 정리&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026년 8월 21일 (금) 15:03 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l101&quot;&gt;101번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;101번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[라이믹스/XE와의 차이점]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[라이믹스/XE와의 차이점]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/모듈]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/모듈]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[XpressEngine/애드온]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/애드온/언어 자동 선택]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/애드온/언어 자동 선택]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/애드온/ZipperUpper!]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[XpressEngine/애드온/ZipperUpper!]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gaon12</name></author>
	</entry>
	<entry>
		<id>https://www.gaonwiki.com/w/index.php?title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4/%EC%95%A0%EB%93%9C%EC%98%A8&amp;diff=108229&amp;oldid=prev</id>
		<title>Gaon12: 새 문서. 애드온의 동작 방식과 호출 지점, 파일 구조, 코어 기본 애드온 정리</title>
		<link rel="alternate" type="text/html" href="https://www.gaonwiki.com/w/index.php?title=%EB%9D%BC%EC%9D%B4%EB%AF%B9%EC%8A%A4/%EC%95%A0%EB%93%9C%EC%98%A8&amp;diff=108229&amp;oldid=prev"/>
		<updated>2026-08-21T06:00:06Z</updated>

		<summary type="html">&lt;p&gt;새 문서. 애드온의 동작 방식과 호출 지점, 파일 구조, 코어 기본 애드온 정리&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{틀:상위문서|라이믹스}}&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;애드온&amp;#039;&amp;#039;&amp;#039;(addon)은 [[라이믹스]]와 [[XpressEngine|XE]]에서 페이지가 처리되는 과정의 특정 지점에 끼어들어 동작을 바꾸거나 기능을 덧붙이는 확장 요소이다. 게시판이나 회원처럼 독립적인 기능 단위를 담당하는 [[XpressEngine/모듈|모듈]]과 달리, 애드온은 자체 화면이나 URL을 갖지 않고 이미 진행 중인 요청에 개입한다.&lt;br /&gt;
&lt;br /&gt;
이 때문에 애드온은 비교적 작은 코드로 사이트 전반에 영향을 주는 기능을 구현할 수 있다. 본문의 URL을 자동으로 링크로 바꾸거나, 접속 통계를 기록하거나, 출력 직전의 HTML에 스크립트를 삽입하는 것이 대표적인 예이다.&lt;br /&gt;
&lt;br /&gt;
== 동작 방식 ==&lt;br /&gt;
애드온은 요청 처리 과정에서 코어가 정해 둔 &amp;#039;&amp;#039;&amp;#039;호출 지점&amp;#039;&amp;#039;&amp;#039;(&amp;lt;code&amp;gt;called_position&amp;lt;/code&amp;gt;)마다 실행된다. 애드온 파일은 매번 전체가 실행되며, 파일 안에서 현재 호출 지점이 무엇인지 확인한 뒤 필요한 시점에만 동작하도록 작성한다.&lt;br /&gt;
&lt;br /&gt;
라이믹스 코어가 사용하는 호출 지점은 다음 네 가지이다.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 호출 지점 !! 시점 !! 코어 내 위치&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;before_module_init&amp;lt;/code&amp;gt;&lt;br /&gt;
| 모듈이 초기화되기 전. 요청 처리의 가장 이른 단계이다.&lt;br /&gt;
| &amp;lt;code&amp;gt;classes/module/ModuleHandler.class.php&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;before_module_proc&amp;lt;/code&amp;gt;&lt;br /&gt;
| 모듈의 실제 처리가 시작되기 전&lt;br /&gt;
| &amp;lt;code&amp;gt;classes/module/ModuleObject.class.php&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;after_module_proc&amp;lt;/code&amp;gt;&lt;br /&gt;
| 모듈의 처리가 끝난 뒤. 처리 결과를 가공할 수 있다.&lt;br /&gt;
| &amp;lt;code&amp;gt;classes/module/ModuleObject.class.php&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;before_display_content&amp;lt;/code&amp;gt;&lt;br /&gt;
| 최종 HTML이 출력되기 직전&lt;br /&gt;
| &amp;lt;code&amp;gt;classes/display/DisplayHandler.class.php&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
실제 애드온 코드는 대체로 다음과 같은 형태를 띤다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if ($called_position == &amp;#039;after_module_proc&amp;#039; &amp;amp;&amp;amp; Context::getResponseMethod() == &amp;#039;HTML&amp;#039;)&lt;br /&gt;
{&lt;br /&gt;
	// 이 지점에서만 수행할 작업&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
관리자 화면이나 검색엔진 크롤러에서는 동작할 필요가 없는 경우가 많으므로, &amp;lt;code&amp;gt;Context::get(&amp;#039;module&amp;#039;) != &amp;#039;admin&amp;#039;&amp;lt;/code&amp;gt;이나 &amp;lt;code&amp;gt;!isCrawler()&amp;lt;/code&amp;gt; 같은 조건을 함께 확인하는 것이 일반적이다.&lt;br /&gt;
&lt;br /&gt;
== 파일 구조 ==&lt;br /&gt;
애드온은 라이믹스 설치 경로의 &amp;lt;code&amp;gt;addons&amp;lt;/code&amp;gt; 폴더 아래에 애드온 이름과 같은 폴더를 만들어 배치한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
addons/&lt;br /&gt;
└─ 애드온이름/&lt;br /&gt;
   ├─ 애드온이름.addon.php   ← 실행되는 본체&lt;br /&gt;
   └─ conf/&lt;br /&gt;
      └─ info.xml            ← 이름, 설명, 제작자, 설정 항목 등&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;conf/info.xml&amp;lt;/code&amp;gt;에는 여러 언어의 이름과 설명을 함께 넣을 수 있다. 코어에 포함된 애드온의 경우 한국어, 영어, 일본어, 중국어 등 여러 언어의 제목과 설명이 등록되어 있다.&lt;br /&gt;
&lt;br /&gt;
== 코어 기본 애드온 ==&lt;br /&gt;
라이믹스는 다음 애드온을 코어에 포함하여 배포한다.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 애드온 !! 설명&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;adminlogging&amp;lt;/code&amp;gt; || 관리자 활동 기록&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;autolink&amp;lt;/code&amp;gt; || 본문에 포함된 URL을 자동으로 링크로 변환&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;counter&amp;lt;/code&amp;gt; || 접속 정보 기록. 이 애드온을 켜야 접속 통계가 수집된다&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;member_extra_info&amp;lt;/code&amp;gt; || 회원 확장 정보 처리&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;photoswipe&amp;lt;/code&amp;gt; || 이미지 클릭 시 확대 보기 제공&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;point_level_icon&amp;lt;/code&amp;gt; || 포인트 등급 아이콘 표시&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
이 밖에 XE 시절 서드파티로 배포되던 본문 내 이미지 조절, 이미지 리사이즈, 리캡챠 등의 기능도 라이믹스 코어에 포함되어 있다. 자세한 내용은 [[라이믹스/XE와의 차이점]] 문서를 참고하자.&lt;br /&gt;
&lt;br /&gt;
== 설치와 관리 ==&lt;br /&gt;
애드온은 &amp;lt;code&amp;gt;관리자 페이지 → 고급 → 애드온&amp;lt;/code&amp;gt;에서 사용 여부를 설정한다. 애드온마다 PC와 모바일에서의 사용 여부를 따로 지정할 수 있고, &amp;lt;code&amp;gt;conf/info.xml&amp;lt;/code&amp;gt;에 설정 항목이 정의된 경우 관리자 화면에서 값을 입력할 수 있다.&lt;br /&gt;
&lt;br /&gt;
새 애드온을 추가할 때는 FTP 또는 SFTP로 &amp;lt;code&amp;gt;addons&amp;lt;/code&amp;gt; 폴더에 업로드한다. 이때 &amp;lt;code&amp;gt;addons/이름/이름/파일들&amp;lt;/code&amp;gt;처럼 폴더가 이중으로 중첩되지 않도록 주의해야 한다.&lt;br /&gt;
&lt;br /&gt;
[[라이믹스/릴리즈 노트/2.1.34|2.1.34]] 이상에서는 공식 자료실에 등록된 자료를 관리자 화면에서 바로 설치하는 쉬운설치 기능을 이용할 수도 있다.&amp;lt;ref name=&amp;quot;easyinstall&amp;quot;&amp;gt;[https://rhymix.org/news/1948052 쉬운설치 지원을 시작합니다]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 사용할 수 없는 애드온 ==&lt;br /&gt;
XE 시절 널리 쓰이던 애드온 가운데 상당수는 라이믹스에서 사용할 수 없다. 같은 기능이 이미 코어에 들어가 있거나, 코어와 충돌하여 다른 기능의 동작을 방해하기 때문이다. 이러한 자료는 블랙리스트로 처리되어 활성화되지 않는다.&lt;br /&gt;
&lt;br /&gt;
블랙리스트에 오른 애드온과 그 대체 방법은 [[라이믹스/블랙리스트]] 문서에 정리되어 있다.&lt;br /&gt;
&lt;br /&gt;
== 주의사항 ==&lt;br /&gt;
애드온은 요청 처리 과정에 매번 개입하므로, 활성화된 애드온이 많아질수록 페이지 처리 시간이 늘어난다. 사용하지 않는 애드온은 비활성화하거나 삭제하는 것이 좋다.&lt;br /&gt;
&lt;br /&gt;
또한 오래된 애드온은 최신 PHP에서 경고나 오류를 발생시킬 수 있다. 특히 PHP 8.x는 이전 버전에서 경고 수준이던 문제를 오류로 처리하므로, 오래된 자료를 사용할 때는 라이믹스 버전과 PHP 버전 호환성을 먼저 확인해야 한다.&lt;br /&gt;
&lt;br /&gt;
애드온은 사이트의 모든 요청을 거쳐 가므로 사이트 데이터 전반에 접근할 수 있다. 신뢰할 수 있는 출처의 자료만 설치하는 것이 바람직하다.&amp;lt;ref name=&amp;quot;easyinstall&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[라이믹스]]&lt;br /&gt;
* [[라이믹스/블랙리스트]]&lt;br /&gt;
* [[라이믹스/XE와의 차이점]]&lt;br /&gt;
* [[XpressEngine/모듈]]&lt;br /&gt;
* [[XpressEngine/애드온/언어 자동 선택]]&lt;br /&gt;
* [[XpressEngine/애드온/ZipperUpper!]]&lt;br /&gt;
&lt;br /&gt;
== 각주 ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 분류 --&amp;gt;&lt;br /&gt;
[[분류:라이믹스]]&lt;/div&gt;</summary>
		<author><name>Gaon12</name></author>
	</entry>
</feed>