SlideShare a Scribd company logo
https://elixir-lang.org/install.html
결론
회사에서
하라니까…
입사했을때는 C++ 개발자였던 내가 이세계로 워
프한 후(전배)에는 C#에 Elixir 개발자???!!!!
Elixir is a
dynamic, functional language
designed for building scalable and maintainable applications.
Elixir is a
dynamic, functional language
designed for building scalable and maintainable applications.
https://madnight.github.io/githut/#/pull_requests/2019/2
https://madnight.github.io/githut/#/pull_requests/2019/2
https://prograils.com/posts/why-discord-pinterest-moz-
bleacher-report-use-elixir-case-studies
얼랭 생태계를 날로 먹을 수 있다
(with OTP)
https://elixirschool.com/ko/
https://elixirschool.com/ko/
https://hexdocs.pm/elixir/Enum.html
이것도 사실 엘릭서의 장점임
(문서화 간단함)
- Dynamic type임 (요즘 대세)
- UnitTest, Dynamic Supervisor 로 보안.
- Dynamic Supervisor
- 프로세스를 무한히 늘리기 편함
- 도데체 함수형 언어란 무엇인가??????????
- 함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀
리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하
는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. (from 위키)
- 특징은 다음과 같다
- Pure function (스레드 안전 -> 병렬처리 간단함 -> WA!!!) 사실 완벽한건 아님
- 익명함수, higher-order function(아직도 익명함수, 1급함수 안되는 언어 없제????)
- 사실 중요한건 Stateless라는 특성
- C 같은 State(상태) 중심 언어와는 달라서 코딩할 때 적응이 필요
- 어떤 현상의 재현이 간단함 (버그가 엄청 생기지 않음!)
- (딴이야기긴 한데) 재귀 짜기가 쉬움.
- 패턴매칭덕분임
- Erlang 승차감 조쿠요
- 언어단에서 지원해주는 것도 많음
- 저는 자세히 모르고 Discord가 잘 압니다
- https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b
- 얼랭 자체가 안전성에 미친 사람들이 만듬
- 실시간 코드 변경
- 유닛 테스트
- Supervisor 모델
- 문제가 되는 놈만 죽이자!
- 초기상태? 그냥 바로 만들어보자
- 이걸 해주는 것이 Supervisor
사실 Erlang꺼임
ㅎㅎ;;;ㅈㅅ…ㅋㅋ!!
- 객체지향 하다 온 사람이 적응하기 힘듬
- Stateless
- 액터 모델
- 러닝 커브가 쎔(특히 한국인은 더)
- Macro 와 Erlang이 2가지 러닝커브
- 가볍게 쓰긴 좋다는 말이다!!!!!(머쓱)
- 느림
(책에서도 단독으로 쓰는건 권장 ㄴ)
https://blog.discordapp.com/using-rust-to-scale-elixir-
for-11-million-concurrent-users-c6f19fc029d3
보통 RUST나 C랑 섞어 씁니다
- 버전업을 팍팍함(원래 어린애가 쑥쑥 자람)
- 의존성들이 따라오질 못함
- 레포들이 업데이트가 느림
- (물론 어느정도 대책은 있습니다)
- 참고자료가 아무래도 적음
- 진짜로 적음
- DB 래퍼
- 유닛 테스트 툴
- Config 저장
- 명령어 alias
- 빌드 툴
- 의존성 관리
- 바이너리 배포(최근에 추가됨!!!!!)
- 포매터도 있다
- 언어 차원에서 빌드툴을 지원
- 의존성 추가, 버전 등을 명시하기 편함.
- 프로젝트 관리도 편하다 (umbrella)
- Aliases까지 지원
- 프로젝트에 맞게 세팅 가능.
- 기존 명령어까지 override
- Mix deps.~~ 로 의존성 관리 가능
(Hex 사용)
A database wrapper and language integrated query for Elixir
코드 준비 끝!
명령어 두줄로
설정 끝!
마이그레이션 끝!스키마 정의 끝!
있을만한건 다 있다
테스트별 세팅, 세팅, 종료처리, 등등
이제 리팩토링 막함(편안)
ㅇㅈ합니다
Prof. cglee
설정도 테스트를 위해
따로 만들 수 있음.
ㅇㅈ합니다
222222
Prof. cglee
ㅇㅈ합니다
3333
Prof. cglee
Mix format
CI에서 연결해서 사용도 가능
Githook에 연결해서 사용도 가능
심지어 옵션 설정도 가능함(라인 글자 제한 등등…)
이것도 Elixir 버전에 따라서 쑥쑥 성장중
코드 에러도 잡아줘서 완전 편함
- 기능이 안정적이다
- 언어 버전이 올라갈 때 묶인 기능이 같이 올라감
- 선택의 고민을 할 필요가 없음 (선택의 여지가 없다는 말도 되지만…)
- 서포트가 안 끊긴다(언어가 살아있는 한 아마도…)
- 간단하게 올리기 쉽다.
- 기본 제공하고 플러그인 설치는 다르지 않을까요. 이미 제공되어있는거니…
WELCOME MULTI-THREADING
NO FREE LUNCH
Actor 끼리 Message로 통신
https://www.brianstorti.com/the-actor-model/ https://hamait.tistory.com/716
•Create more actors
•Send messages to other actors
•Designate what to do with the next message
편하게 쓸 수 있게
이미 준비되어있다.
https://hamait.tistory.com/716
- 기능이 안정적이다
- 언어 버전이 올라갈 때 묶인 기능이 같이 올라감
- 선택의 고민을 할 필요가 없음 (선택의 여지가 없다는 말도 되지만…)
- 서포트가 안 끊긴다(언어가 살아있는 한 아마도…)
- 간단하게 올리기 쉽다.
- 기본 제공하고 플러그인 설치는 다르지 않을까요. 이미 제공되어있는거니…
근데 인터페이스 바뀌
었는데요?
인자가 없는 Run
인자가 True인 run
인자가 False인 run
이런식으로 가능
(이제 case do 같은거 잘 안씀)
(사실씀)
여러 오브젝트에서 특정 값을 추출
해내는 래핑 함수 같은거 만들때 편
함.
에러 처리할 때 이 패턴매칭을 많이
씀
LET IT CRASH!!!!!!!
아까 봤던 액터 모델
그럼 데이터는 어떻게 주고받지?
DB는 하나일텐데, DB도 액터인가?
-> 공유자원을 쓸 수 밖에 없는 상황이 생기기
에 완벽하게 모든게 Pure Function인건 아님
EX) ETS, DB ADAPTER, FILE
대체적으로 원칙이 지켜짐.
(가끔 안되서 짜증나긴 하는데) 편함
Immutable
생각보다 잘해준다.
다 참조형식으로 함.
(head tail이 괜히 있는게 아니더라. 왜 PL때 이런거 안알려줬지…)
Manning의 action in elixir에서.
Manning의 action in elixir에서.
Manning의 action in elixir에서.
버그 찾기가 좋아짐(것같은 착각이 듬)
- 그 함수에서 자기 할일만 잘 하면 버그가 잘 안생김
- 버그가 터져도 자기 할 일만 잘 하게 고치면 됨
list를 한차례씩 변환해주는 코드
어떤 데이터가 차례차례 바뀌어간다는 느낌이 있어서 좋음 (중간에 다른코
드 끼어드는것도 막고)
이런식으로 하면 진짜 코드 재로딩 한다.
(recompile로 전체 가능)
(피닉스 쓰면 코드 바뀔때마다 알아서 재로딩해준다)
매크로 등등…
매크로 등등…
- 당장 쓰는 사람이 없고
- 뽑을려는 회사도 없고
- 앞으로 어떻게 될지 모르겠다(신생언어니까)
- 넘나 편하고
- 생산성은 확실히 좋은것같고
- 힙스터감성을 느끼기도 좋음
(무수한 악수요청을 받을 수 있음)
어쩔수 없다냐~
https://www.irasutoya.com/
미쿠냥콘 3
냥냥한 미쿠콘
이상 이미지출처들

More Related Content

What's hot

Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
Seungmo Koo
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
종민 김
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
Eyal Vardi
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
React js
React jsReact js
React js
Rajesh Kolla
 
React JS part 1
React JS part 1React JS part 1
React JS part 1
Diluka Wittahachchige
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
Suhyun Park
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Jemin Huh
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
DaeMyung Kang
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
내훈 정
 
脱 Excel設計書
脱 Excel設計書脱 Excel設計書
脱 Excel設計書
rai
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
DaeMyung Kang
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
 
[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
NAVER D2
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
Seungmo Koo
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
YEONG-CHEON YOU
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
Xionglong Jin
 

What's hot (20)

Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
React js
React jsReact js
React js
 
React JS part 1
React JS part 1React JS part 1
React JS part 1
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
 
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
 
脱 Excel設計書
脱 Excel設計書脱 Excel設計書
脱 Excel設計書
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
 
[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희[213]monitoringwithscouter 이건희
[213]monitoringwithscouter 이건희
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 

Similar to [Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다

Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
KwangSeob Jeong
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XpressEngine
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
KwangSeob Jeong
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
월간 IT 슬라이드
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013devCAT Studio, NEXON
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
Sungchul Park
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
MooYeol Lee
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임codenavy
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
SeungWoo Lee
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
Ildoo Kim
 
In c
In cIn c
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
Hyun-min Choi
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
cho hyun jong
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발
WebFrameworks
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
Ubuntu Korea Community
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 

Similar to [Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다 (20)

Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임병렬 프로그래밍 패러다임
병렬 프로그래밍 패러다임
 
Node.js in Flitto
Node.js in FlittoNode.js in Flitto
Node.js in Flitto
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
7 8 1
7 8 17 8 1
7 8 1
 
In c
In cIn c
In c
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
Nodejs를 이용한 개발
Nodejs를 이용한 개발Nodejs를 이용한 개발
Nodejs를 이용한 개발
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
5 6 1
5 6 15 6 1
5 6 1
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 

[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다