목록FP (6)
규도자 개발 블로그
2022 LiftIO 후기 (부제: 개발자 부족의 시대, Elixir가 특효약이 될수 있는 이유) 지금으로서는 약 한 달이나 지난, 어쩌면 너무나도 늦은 후기일 수도 있겠다. LiftIO란 함수형 프로그래밍을 좋아하는 사람들이 모여 만드는 콘퍼런스라고 홍보하고 있으며 올해가 딱 두번째인 신생아 컨퍼런스이다. 아마 함수형 프로그래밍이 점점 더 인지도를 얻어가는 만큼 이 흐름이 쭉 이어지지 않을까 싶다. 나도 현업에서는 파이썬을 주로 쓰고는 있지만 항상 함수형 프로그래밍에 대한 관심은 갖고 있고, 특히나 또 elixir와 Rust에 관심이 많으므로 참여하게 됐다. 당시 세션은 이렇게 구성돼있었다. 아쉽게도 Rust와 관련된 세션은 없었다. 사실 세션 하나하나는 기억이 나질 않고 예전에 내가 엘릭서(Elixi..
엘릭서(Elixir)라는 약을 팔아보자 엘릭서라는 이름 자체는 많은 사람들이 익숙할 거라 생각한다. 어쩌면 이름 자체는 파이썬이라는 이름보다 더 인지도가 있지 않을까 할 정도로 꽤나 자주 마주치게 되는 단어이다. 특히나 엘릭서라는 이름을 많은 사람들에게 알린 계기는 단연코 메이플이 아닐까 싶다. 이밖에도 클래시 로얄이나 리니지 등 수많은 게임 및 매체에서 사용되는 이름이다. 요 근래 엘릭서 프로그래밍 언어를 공부하면서 정말 좋은 언어라는 걸 많이 느낀다. 하지만 이직을 하게 되면서 현업에 적용해볼 기회가 없을 것이기 때문에 그간 배우면서 느꼈던 엘릭서의 장점들을 한번 나열해보려 한다. 말 그대로 엘릭서(Elixir)라는 약을 팔아보려 한다. 엘릭서의 유일한 약점은 "생태계"인 것 같다. Functiona..
closure로 class 만들어보기 (feat python) 예전에 이런 글을 썼었다. 클로저(closure)란 무엇인가 (clojure 아님. Feat. Python) 이 글을 쓰면서 그런 생각이 들었다. 꼭 class와 object같다. 그래서 한번 만들어봤다. def closure_class(data=None): if data is None: data = { 'name': '' } def closure(): def set_name(name): data['name'] = name return data['name'] def get_name(): return data['name'] closure_set = lambda: ... cl..
함수형 프로그래밍을 하면서 느낀 것들 함수형 프로그래밍과 함수형 프로그래밍을 위한 언어를 배우면서 느끼게 된 점이 참 많다. 공부해가면서 크고 작은 깨달음의 과정들이 있었고 또 깨달아가고 있는데 그것들을 지금 적어두지 않으면 경험상 곧 머지않아 당연하게 느끼고 머릿속에서 희석될 것이 뻔하기 때문에 의식적으로 남겨야할 것 같다는 생각이 들었다. 그런 의미로 기록한다. 1. Equal sign(=)에 대한 개념 회귀 프로그래밍을 배우지 않은 사람들은 절대 풀 수 없는 1차방정식 문제가 하나 있다. x = x + 1 하지만 프로그래밍을 배운 사람이라면 x가 생략된 이전의 과정에서 이미 정수형으로 초기화된 상태이며, 그 초기화된 x에 1을 더해 새로이 또 x에 할당한 것이라는 걸 쉽게 유추할 수 있다. 그럼 보..
클로저(closure)란 무엇인가 (clojure 아님. Feat. Python) closure의 사전적인 정의는 이렇다. 프로그래밍에서 사용하는 closure란 1번과 2번, 폐쇄라는 의미를 차용하기 위해 부여한 이름으로 보인다. 그렇다면 프로그래밍에서의 closure란 무슨 의미일까. "중첩된 함수에서 내부 함수가 정의될 때 스코프가 변수를 저장해두어 내부 함수의 변수를 나중에 사용할 수 있도록 하는 것" 을 의미한다. 무슨 말인지 쉽게 와닿진 않는다. 개발자들에게 익숙한 코드로 살펴보자. 우리가 흔하게 볼 수 있는 함수는 이러한 모양이다. def hello(name): inner_var = name print("Hello " + inner_var) hello("World") =============..