BlaCk_Log
-
리스프에서 멋진 3가지.프로그래밍/설계 2024. 11. 3. 13:32
이 글을 쓰게 된 계기는 Racket 공식 계정의 좋아요 때문.그리고 plwiki에 조금 기여해볼까 생각 중. 리스프라 하면 고전언어라고만 생각할지도 모르겠으나,선진적으로 구현된 부분들도 많다. 이 중 Code as data, data as code 혹은 Homoiconicity처럼 식상한 것을 제외하고, 알아보도록 합시다.Racket - 매크로: 본디 리스프에서 매크로는 유명하다. 그 중에서도 Racket의 매크로는 조금 특별하다.Racket - parameterize: Thread와 함께 사용할 수 있는 동적 바인딩.Common Lisp - CLOS: 매우 동적이고 유연한 객체지향 시스템.이 글을 보게되면 제가 가끔씩 Racket 기습찬양하는 이유를 알게될지도 모르겠네요. 1. Racket - 가장 ..
-
프롬프트, 프로그래밍처럼 생각하기프로그래밍/기타 2024. 2. 10. 00:32
제 블로그는 프로그래밍이 대부분의 주제를 다루고 있고, 이 글을 읽을 독자 또한 대부분 개발자라고 추측된다. 최근 2주간 프롬프트 엔지니어링을 하면서 얻은 인사이트를 공유해보자 한다. 당연히(?) 프롬프트만 만진건 아니긴 했지만.. 내 결론은 프롬프트 엔지니어링은 프로그래밍처럼 접근 가능하다이다. 1. 언어 LLM은 자연어를 기반으로 한다. 따라서 장점과 단점이 공존한다. 직관적이고 풍부한 표현과 어휘를 모두 활용할 수 있지만, 상대적으로 모호한 편. 모호함을 줄이기 위해서는 마치 프로그래밍을 하는 것처럼 구조적으로 작성하고, 동음이의어일 경우 영어나 한문을 병기 표시함으로서 더 정확하게 뜻을 전달할 수 있다. 나중에 로지반 같은 AI 전용 언어가 등장해도 재밌지 않을까 싶긴하다 ㅋㅋ 2. 컴퓨터 구조 ..
-
상품과 기호: 들뢰즈-가타리를 중심으로개인적인 생각들. 2023. 6. 25. 07:40
개발자분들이 의외로 철학쪽 내용을 좋아하셔서 독후감 과제를 하다 나온 내용을 옮겨보았습니다.원 글은 3페이지라는 제약 내에서 쓰여져서 짧긴하나, 압축적이라 기본적으로 요구하는 지식이 있으며 평소에 제가 쓰는 다른 글과 달리 조금.. 어려울 수도 있습니다. 아래에 추가로 작성한 글도 기초적인 내용이긴 한데, 익숙하지 않다면 어렵게 느껴질 수 있는 글 입니다.난이도 조절을 실패한 듯.1. 상품과 제품이 책에서 가장 인상 깊은 점은 역시 제목인 "소비자는 좋은 제품을 선택하지 않는다"이다.책의 "제품이 부품의 결합체지만 상품은 상징적 의미의 더미"라는 표현이 이를 설명하는 가장 간단한 명제라 할 수 있다. 상품은 제품/서비스란 실체를 가르키는 일종의 기호다. 그렇다면 "기호와 지시대상은 과연 다르게 받아들..
-
대략적인 금융 계획.기타 정보 2023. 1. 30. 11:34
내년 이 맘때 쯤에는 시간이 없을 듯 하여 미리 적어 놓은 내용을 다른분들께 도움이 될지는 모르겠지만.. 몇글자 적어봅니다. 개개인의 자산, 소비패턴등은 다르기 때문에 권장할 수는 없겠지만 필요하신분은 참고하십셔. 대부분 널리 알려진 아주 기초적인 정보입니다. * 본 글은 투자권유가 아니며, 각 개인의 투자 판단에 대한 책임을 지지 않습니다. 0. 포인트 쓸 내용이 없어서 먼저 쓴다. 당연한 소리겠지만 정형화된 소비 패턴이 있거나 많이 소비하는 경우 해당 업체의 포인트/마일리지를 적립하면 도움이 된다. 관련 어플을 깔면 쿠폰등의 할인등도 있을 수 있으니 소비패턴에 맞춰 알아서.. 간헐적인 소비를 한다면 그다지 의미있는 행동은 아니다. 간편 결제를 사용해 추가적인 포인트를 얻을 수 있겠다. 2022년 간편..
-
더 나은 Git 워크플로우를 향해서프로그래밍/기타 2023. 1. 15. 20:43
최근 몇개월간 Git 활용이 일진보한듯 하여 몇글자 적어본다. 0. 레포구조 시작하기 - 버전 관리란? 분산 환경에서의 Git - 분산 환경에서의 워크플로 깃은 분산 버전 관리 시스템(Distributed Version Control Systems)이기 때문에 각 컴퓨터마다 레포지토리를 가질 수 있다. 개발자 각자가 로컬 커밋을 가지고 원하는 때에 서버에 반영할 수 있는 것은 물론, (시간) 레포지토리 연결구조도 원하는대로 가져갈 수 있다. (공간) 위에서 가장 복잡해보이는 계층형은 리눅스처럼 거대한 프로젝트가 운영되는 방법이다. 메인테이너 밑의 관리자가 각자 분야의 기여를 받고, 최종적으로 메인테이너가 관리자 레포를 merge하는 식으로 운용한다. 이렇게 다양한 방식으로 구성할 수 있다는 점은 DVCS..
-
HTML과 CSS 전처리, 템플릿의 표현력프로그래밍/Web 2022. 9. 11. 01:55
별다른건 아니고, 예전에 찾았었던 자료들 정리나 하려고 쓰는 글. 그래도 굳이 쓰게된 동기를 찾는다면 JSX와 CSS In JS의 표현력에 관해 발전할 여지가 있는지이다. PHP를 사용하던 페이스북이 XHP(xhp-php5-extension, XHP: Introduction)를 만들고, 대체할 제품으로 React와 JSX, CSS-In-JS(슬라이드)를 소개하더니, 종국에는 서버 컴포넌트까지 만들어 내면서 PHP를 대체 가능하게 만들어버렸다. ReactJS 둘러보기 - XHP부터 React Native까지 난 이러한 과정에서 과연 표현력의 손실이 있는가가 궁금했다. 우리가 보지 못한 다른 가능성이 있는가도 말이다. 전처리, 템플릿 엔진 전처리기는 입력 데이터를 처리해 다른 프로그램에 대한 입력으로 사용되..
-
동시성, 병렬, 비동기, 논블럭킹과 컨셉들컴퓨터 2022. 6. 3. 11:44
위 용어들은 모두 빠르게 실행하거나, 빠르게 느끼도록 만들때 주로 사용하는 용어들이다. 많은 사람들이 이미 적어놨으나 저도 한번 동참해보겠습니다. 차이가 있다면 되도록 이미지를 많이 사용하여 직관적으로 이해하기 쉽게 만들어보는게 목표. 좋은 이미지를 찾는데는 항상 많은 시간이 소요된다. 또한 풍부한 레퍼런스와 넓은 범위를 다루려 노력했다. 1. 용어 동시성 / 병렬 동시성: 동시에 작업이 실행된 것처럼 보이면 되며(논리적) 병렬: 실제로 동시에 작업이 실행되어야 한다(물리적) 따라서 싱글코어에서 시분할로 나누어 일을 처리하더라도 동시성을 지원한다고 말 할 수 있다. 반대로 싱글코어에서 SIMD를 이용하면 병렬로 작업을 실행할 수 있다. [SIMD (Single Instruction Multiple Dat..
-
Pure CSS + SVG 애니메이션 적용 실패기프로그래밍/Web 2022. 4. 13. 14:58
때는 2022년 2월 21일. 비디오 플레이어 디자인을 고민할 때였다. 기본, 1줄 프로토타입, 2줄 프로토타입 이왕 만드는 것, 재생-일시정지 버튼에 무언가 포인트를 넣고 싶었다. 아이디어 원천은 LG 음악앱. 폰은 구렸지만 음악앱 하나는 기똥차게 좋았던 LG..ㅠ 처음 써봤을때 재생, 리플레이 인터렉션보고 감동받았다. (투박한 유튜브 따위와 비교가 안됨) 대략 이런 느낌 [Dribble: Play -> Pause, Micro Interactions] 먼저 움직이는 SVG를 만들어봤다. 일시정지 사각형 두개가 중앙에서 만나 깔끔하게 옆으로 솟아나는 재생버튼을 만들기란 어지간히 어려운 일이 아니었다. 똥손이라 단순한 크기조정과 이동 정도를 구현하면 몰라도, 자체적으로 그래픽 리소스를 만들 자신은 없었다...