SlideShare a Scribd company logo
1 of 43
Download to read offline
함수형 언어 클로저를 만나다	
SliPP	양완수	
2015.12.12
대안언어들 관심을 두기 시작	
•  빠른 아이디어 검증	
•  운영 시 적합한 도구를 뚝딱!	
•  먼가 있어보고 싶은데?
LISP	과의 첫 만남 	
•  SICP	(	Structure	and	Interpreta:on	of	
Computer	Programs)	
•  hBps://mitpress.mit.edu/sicp/
Scheme		
•  머 이런 요상한 언어가 다 있지?	
•  그런데 이상하게 끌려…해커가 되는 건가?
첫번째 스터디 	
•  Lisp을 좋아하는 사람들의 그룹(한국 리스퍼)	
•  hBps://groups.google.com/forum/?
fromgroups#!forum/lisp-korea
Clojure	와 만나다.	
•  Clojure	도 Lisp	이래!!	
•  그리고	JVM에서도 돌아간데~~
첫번째스터디 도망~		
•  머야? 이 사람들 이클립스도 안쓰잖아!?	
•  친숙함의 문제	
•  적용할 곳을 찾지 못했다?	
•  그저 단순한 호기심
두번째 스터디	
•  Slipp	(hBp://www.slipp.net)	
•  2013년 겨울 쯤	
•  같은 세계사람들	
•  라이브 코딩하며 활발한 토론
어라?		
•  코딩이 재미있네~	
•  명령이아닌 선언적	
•  리스트의 해석	
•  LEGO 조립같은?
아쉬운 마무리 그리고 느낀점	
•  선언적 사고를 통해 우연적 복잡성이 낮아진것 같
다.	
•  REPL	로 인해 테스트 먼저의 흐름을 잊었다.	
•  그리고 쉽지는 않다.	
•  결국 친숙함이 문제 	
•  클로저를 어디다 써먹지에 대한 고민이 별로 없어 	
•  첫번째 스터디와 마찬가지로 그저 호기심으로
끝!
세번째 스터디	
•  이전 스터디의 아쉬움	
•  사내 스터디 조직 	
•  일단 미끼는 JAVA	8	
•  함수형에 대해서 진지해짐
뒤를 돌아보게 되다.
동시성 작업을 해본적이 있었나?	
•  아직까지 한번도 없다.
동시성 작업을 해본적이 있었나?	
•  Lock 관리는 비지니스 복잡성이 아니다.
최근만든 객체가 재사용된적 있나?	
•  객체의 유연함은 무한대	
•  유연함이 재사용성을 깨트리고 있다.
변화에 빠른 대응이 가능했나?	
•  Agile	시대	
•  신중한 설계가 발목 잡는다.
변화를 막을 수 없었다.	
•  기본적으로 Mutable	
•  변화가 여러 곳에 흩어져 있다.	
•  접근 통제로 인해 코드를 이해하고 테스트하기 어
렵다.
코드는 읽기 쉬웠나요?	
•  명령방법의 표준이란 존재하지 않는다.	
로컬변수 선언 	 로컬변수 할당 	
분기문 	
반복 제어 	 탈출
코드는 읽기 쉬웠나요?	
•  객체간의 관계에도 표준이란 존재하지 않는다.	
•  여러 곳에 흩어진 상태의 변화는 코드를 이해하기
힘들게 만든다.
ORM	?	
•  대부분의 프로그래밍은 데이터의 관리의 문제를
다룬다.	
•  영속성에 대한 관리는 비지니스의 복잡성이 아니
다.	
•  O	O가 부재한 상황에서 Rela:on	Mapping은 무
의미하게 느껴진다.
노력들	
•  Design	PaBern	
•  SOLD	
•  Clean	Code	
•  Framework
좀 나아지셨나요?
표준이란 존재하지 않는다.	
•  개취 ( 개인의 취향)
결국 우연적 복잡성 증가	
•  우연적으로 발생하는 복잡성
왜 빠져들고 있을까?
함수형프로그래밍은 단순함으로의 복귀
Clojure	?	
•  JVM,	Javascript(ClojureScript),	CLR	에서 컴파일
되어 실행되는 동적언어이며 함수형 언어이다.	
•  Rich	HicKey가 만들었다.
불변성	
•  불변성은 멀티쓰레드 환경에서 안전하다.	
•  영속적 자료구조 	
(	def			a		’	(		1				2				3	))	
(	def			b				(	cons	4		a	))
부수효과가 없는 함수	
•  오로지 인자로만 결과가 만들어지고 반환값으로
만 외부에 영향을 준다.	
•  데이터의 불변성은 부수효과를 없게 만든다.	
•  부수효과가 없는 함수는 테스트하기 쉽다.
고계함수	
•  함수를 인자로 받고 동적으로 함수를 반환하는 함
수를 다루는 함수
•  코드 구성을 쉽게 해준다.	
(defn	blank?	[s]	(	even?	#(	Character/isWhitspace	%	)	s	))	
(filter	#(even?	%)	[1	2	3	4]	))	
à	(	2	4	)		
(map	#(<		3	%	)	[1	2	3	4]	))	
à	(	1	2	)
익명함수	
•  함수가 하는 일에만 충실하면된다.	
•  그 많은 Interface	명을 외우지 않아도 된다.
선언적 프로그래밍	
•  명령형적인 프로그래밍에서는 문제 자체에 집중
하지 못하기 때문에 Bug발생의 빈도가 높다.	
로컬변수 선언 	 로컬변수 할당 	
분기문 	
반복 제어 	 탈출
선언적 프로그래밍	
•  불필요한 명령이 없어 마치 정의 하는 듯 보인다.	
•  선언을 통해 세부 구현을 숨기고 오로지 함수인자
와 반환되는 값에 관심을 가질 뿐이다.	
•  코드의 이해도가 높아진다.	
(defn	blank?	[s]	(	even?	#(	Character/isWhitspace	%	)	s	))
데이터는 시퀀스	
•  시퀀스 추상화	
•  강력한 시퀀스 라이브러리
객체라는 것은 데이터의 집합일뿐	
•  객체를 데이터의 집합으로 본다면	
•  조합기에 의한 유연성을 보장 받을 수 있다.	
•  변화에 유연해진다.	
•  단순히 고계함수에 인자로 넘겨 줄 함수구현 만
변경하면된다.
필요하면 만들어 쓸 수 있다.	
•  클로저는 Lisp		의 방언	
•  Lisp	의 강력한 무기 중 하나 매크로	
•  우회로 인한 우연적 복잡성을 제거한다.
Java	와 상호작용이 쉽다.	
import	java	class	
class		생성	및	사용	
sta:c	method	사용
Java	의 모든 것을 가져다 쓸 수 있다.	
•  hBps://clojars.org/
FP	위에 OO	를 양념으로…
클로저에 대한 오해 I	
•  괄호,괄호,괄호	
– 실제 비교해보면 약간 많을 뿐 그렇게 과하지 않다.	
– 다른 LISP	과 다르게 괄호를 많이 제거 했다.	
•  전위표기법은 불편해	
– 자 어떤가?	
(	+	1	2	3	4	5)	
(	1	+		2	+		3	+		4		+	5)	
hBp://ntalbs.github.io/2014/04/08/clojure-fallacy/
클로저에 대한 오해 II	
•  현업에서 사용하지 않는다.	
– hBp://clojure.org/Companies	
– Amazon,	Neglix,	Facebook	등 175여개 기업에서 사
용중이다.
결론	
•  OOP	,FP	가 만병통치약은 아니다.	
•  서로 부족한 부분을 보안 해 줄 수 있는 관계
감사합니다.

More Related Content

What's hot

이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaDexter Jung
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018devCAT Studio, NEXON
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나none
 
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!영호 김
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면Byeongsu Kang
 
신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)Byeongsu Kang
 
112 deview
112 deview112 deview
112 deviewNAVER D2
 
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Eunchong Yu
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it goChris Ohk
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들Lee Geonhee
 
소프트웨어 설계 악취: 기술 부채 관리 방법
소프트웨어 설계 악취: 기술 부채 관리 방법소프트웨어 설계 악취: 기술 부채 관리 방법
소프트웨어 설계 악취: 기술 부채 관리 방법Jay Park
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실Jay Park
 
Stash 사용자 교육
Stash 사용자 교육Stash 사용자 교육
Stash 사용자 교육Byeongsu Kang
 

What's hot (20)

이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
Hot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With JavaHot Trend Lambda Expressions, Compare C# With Java
Hot Trend Lambda Expressions, Compare C# With Java
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
Pinpoint 도입기 - 2016 신림프로그래머 오픈 세미나
 
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면멸종하는 공룡이 되지 않으려면
멸종하는 공룡이 되지 않으려면
 
신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)신규 협업도구 사용자 교육(공통 비개발자)
신규 협업도구 사용자 교육(공통 비개발자)
 
112 deview
112 deview112 deview
112 deview
 
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기Slack과 Rust로 Amazon ECS에서 서비스 배포하기
Slack과 Rust로 Amazon ECS에서 서비스 배포하기
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
 
소프트웨어 설계 악취: 기술 부채 관리 방법
소프트웨어 설계 악취: 기술 부채 관리 방법소프트웨어 설계 악취: 기술 부채 관리 방법
소프트웨어 설계 악취: 기술 부채 관리 방법
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
(알도개) 무한 루프에 빠진 개발자 논쟁 시리즈: 2편 추상화의 허와 실
 
Stash 사용자 교육
Stash 사용자 교육Stash 사용자 교육
Stash 사용자 교육
 

Viewers also liked

영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA경원 이
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSADaekwon Kang
 
Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책Youmi Bae
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetectJunyi Song
 

Viewers also liked (7)

영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
SLiPP 스터디 - MSA
SLiPP 스터디 - MSASLiPP 스터디 - MSA
SLiPP 스터디 - MSA
 
Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect딥러닝(Deep Learing) using DeepDetect
딥러닝(Deep Learing) using DeepDetect
 
Slipp 발표 - GO
Slipp 발표 - GOSlipp 발표 - GO
Slipp 발표 - GO
 

Similar to Slipp clojure-1212

클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)Sang-Kyu Park
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013devCAT Studio, NEXON
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011devCAT Studio, NEXON
 
LinqPad for DevOps
LinqPad for DevOpsLinqPad for DevOps
LinqPad for DevOps성수 이
 
Oop design principle
Oop design principleOop design principle
Oop design principleRyan Park
 
InfovisKr 고전 독서 모임 소개 - The Grammar of Graphics
InfovisKr 고전 독서 모임 소개 - The Grammar of GraphicsInfovisKr 고전 독서 모임 소개 - The Grammar of Graphics
InfovisKr 고전 독서 모임 소개 - The Grammar of GraphicsDaegwon Kim
 
BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩Sumin Byeon
 
C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초Yu Yongwoo
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing languageJaeYeoul Ahn
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 
OSS개발자포럼(2017.01) 파이썬 소개자료
OSS개발자포럼(2017.01) 파이썬 소개자료 OSS개발자포럼(2017.01) 파이썬 소개자료
OSS개발자포럼(2017.01) 파이썬 소개자료 YoChun YoChun
 
토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.PptxMyeongin Woo
 
MFC 발견 (1)
MFC 발견 (1)MFC 발견 (1)
MFC 발견 (1)종훈 박
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용r-kor
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍Seungmo Koo
 
FP, lazy evaluation
FP, lazy evaluation FP, lazy evaluation
FP, lazy evaluation 성범 홍
 

Similar to Slipp clojure-1212 (20)

클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)클로져 소개 강의 (한국정보통신산업노동조합)
클로져 소개 강의 (한국정보통신산업노동조합)
 
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
이승재, M2 AI코드 개발 생산성 향상 사례, NDC2013
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011
 
LinqPad for DevOps
LinqPad for DevOpsLinqPad for DevOps
LinqPad for DevOps
 
Oop design principle
Oop design principleOop design principle
Oop design principle
 
InfovisKr 고전 독서 모임 소개 - The Grammar of Graphics
InfovisKr 고전 독서 모임 소개 - The Grammar of GraphicsInfovisKr 고전 독서 모임 소개 - The Grammar of Graphics
InfovisKr 고전 독서 모임 소개 - The Grammar of Graphics
 
BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩BD Talk 2017 봄 - 원정코딩
BD Talk 2017 봄 - 원정코딩
 
C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초C 언어 스터디 01 - 기초
C 언어 스터디 01 - 기초
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
How to use the Ruby programing language
How to use the Ruby programing languageHow to use the Ruby programing language
How to use the Ruby programing language
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
OSS개발자포럼(2017.01) 파이썬 소개자료
OSS개발자포럼(2017.01) 파이썬 소개자료 OSS개발자포럼(2017.01) 파이썬 소개자료
OSS개발자포럼(2017.01) 파이썬 소개자료
 
토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx토이 프로젝트를 하자.Pptx
토이 프로젝트를 하자.Pptx
 
MFC 발견 (1)
MFC 발견 (1)MFC 발견 (1)
MFC 발견 (1)
 
한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용한글 언어 자원과 R: KoNLP 개선과 활용
한글 언어 자원과 R: KoNLP 개선과 활용
 
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
게임서버프로그래밍 #4 - 멀티스레드 프로그래밍
 
Vim 강의
Vim 강의Vim 강의
Vim 강의
 
Git 꿀팁
Git 꿀팁Git 꿀팁
Git 꿀팁
 
FP, lazy evaluation
FP, lazy evaluation FP, lazy evaluation
FP, lazy evaluation
 
(Lisp)
(Lisp)(Lisp)
(Lisp)
 

Slipp clojure-1212