[Erlang] module
erlang์ ๋ชจ๋์ ๋ํด์ ์ ๋ฆฌํ๋ค.
erlang์ ๋ชจ๋์ ๋จ์ผ ํ์ผ์ ๋จ์๋ก ๋ช
ํํ๊ฒ ๊ตฌ๋ถ๋๋ค.
๋ชจ๋ ์์ค์ฝ๋์ ์ต์๋จ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋ ์ ์ธ์์ด ์กด์ฌํด์ผ ํ๋ค.
-module(test).
...์ฝ๋๋ค
์กฐ๊ธ ์ ์ํ ์ ์, ํ์ผ๋ช
๊ณผ ๋ชจ๋๋ช
์ ์ ํํ๊ฒ ์ผ์นํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
ํ์ผ๋ช
์ด test.erl๋ฉด ๋ชจ๋๋ช
๋ test๋ค.
์๋๋ ๊ฐ๋จํ hello world ์ฝ๋๋ค.

์ ๋ชจ๋๋ช
์ test๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๋ด์ ์กด์ฌํ๋ ๊ธฐ๋ฅ์ ์ธ๋ถ์์ ์ธ์ ์๊ฒ ํ๋ ค๋ฉด ๋ฐฉ์ถ(export)๋ฅผ ํด์ผํ๋๋ฐ, ๊ทธ๊ฒ ์ ๊ธฐ ์๋จ์ ์๋ export๋ฌธ์ด๋ค.
์ ๊ธฐ์๋ ๋ฉ์ธ ์ง์
์ ์ผ๋ก ์ฌ์ฉํ main ํจ์๋ฅผ ๋ด๋ณด๋๋๋ฐ, export ๋ฌธ์๋ ์ฌ๋ฌ๊ฐ์ ํจ์ ์๊ทธ๋์ฒ๊ฐ ์กด์ฌํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํจ์ ์๊ทธ๋์ฒ๊ฐ ์ข ๋
ํนํ ํธ์ด๋ค. ์ ๊ธฐ์ main/0์ ํจ์ ์ด๋ฆ์ด main์ด๊ณ , ํจ์ ๋งค๊ฐ๋ณ์ ๊ฐ์๊ฐ 0๊ฐ๋ผ๋ ๋ป์ด๋ค. ๋ฐ๋ก ํ์
์ ๋ํ ํํ์ ์๋ค.
๋ง์ฝ ์ ๊ธฐ์ ๊ฐ๋จํ ๋ง์
ํจ์๋ฅผ ์ถ๊ฐํด์ exportํ๊ณ ์ถ๋ค๋ฉด,
์ด๋ ๊ฒ ํ ์ ์๋ค.
export์ import
์ด๋ฒ์๋ export์ import๋ฅผ ์ฌ์ฉํด์ ๋ชจ๋๋ผ๋ฆฌ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ด๋ณด๋ด๊ณ ๊ฐ๋ค์ฐ๋์ง ๊ฐ๋จํ๊ฒ ๋ณด๊ฒ ๋ค.
์ผ๋จ, export์ฉ ์ฝ๋๋ฅผ ํ๋ ๋ง๋ จํด๋ดค๋ค.
๋ณ๊ฑฐ์๋ค. ๋ง์
ํ๋์ ๋บ์
ํ๋๋ค.

๊ทธ๋ฆฌ๊ณ importํ๋ ์ธก์์๋, ๋ค์๊ณผ ๊ฐ์ด ๋ชจ๋๋ช ๊ณผ, ๊ทธ ์์ ์๋ ๊ฐ์ ธ์ฌ ํจ์๋ค์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋๋ช
:ํจ์๋ช
์ ํํ๋ก ํธ์ถํ๋ค.
๋ค ์ปดํ์ผํ๊ณ ์คํํ๋ค.
๋ค๋ง ์ ์ํ ์ ์, ์ฌ๊ธฐ์ ๋ณ๋ค๋ฅธ ์ค์ ์ ํ์ง ์์ผ๋ฉด. ํจ๊ป ์คํ๋ ๋ชจ๋๋ค์ ํญ์ ํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์๋ฌดํผ ๊ทธ๋ผ ์ ๋์ํ ๊ฒ์ด๋ค.
๋ณต์กํ ๊ตฌ์ฑ์ ์ ๋ชปํด์
erlang์ ๋ชจ๋์์คํ
์ ๋งค์ฐ ์์์ ์ด๊ณ ๋จ์ถํ๋ค.
๋ง.. ๊ณ์ธตํ์ผ๋ก ๋ชจ๋์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ธ๋ถํํด์ ์๊ณ ๋ค์์คํ์ด์ค ๊ธฐ๋ฐ์ผ๋ก importํ๊ฑฐ๋ ๊ทธ๋ฐ๊ฑด ๋ชปํ๋ค.
์ด๋ฐ์์ผ๋ก ์ฝ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋๋ ๋ ํฐ ์๋ฏธ๊ฐ ์๋ค๋ ๊ฒ์ด๋ค.

์ด์ฐจํผ ์ปดํ์ผํ๋ฉด

beam ํ์ผ๋ค์ ํํํ(flat) ํํ๋ก ๋์ ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ๊ฒ ์ธ์๋ฐ์ ์๋ค.
ํ ๋๋ ํฐ๋ฆฌ์ ๋ค ์์๋ถ๊ณ ๊ธ๋ก๋ฒํ๊ฒ ๋ก๋ํด์ ์ฐ๋๊ฒ ์ ์ผํ ์ฌ์ฉ๋ฒ์ด๋ค.
๊ทธ๋์ ๋ชจ๋ ์ด๋ฆ์ด ๊ฒน์น์ง ์๊ฒ ์์ฃผ ์ ์ง์ด์ค์ผ ํ๋ค.
์ฐธ์กฐ
https://www.tutorialspoint.com/erlang/erlang_modules.htm
https://stackoverflow.com/questions/4476108/namespaces-and-records-in-erlang