프로그래밍/설계
-
리스프에서 멋진 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 - 가장 ..
-
객체지향 시스템과 패러다임 그리고 철학프로그래밍/설계 2021. 12. 14. 00:31
자바스크립트는 왜 프로토타입을 선택했을까 라는 글을 읽고 떠오르는 내용들을 덧붙이거나 정리 해보았습니다. 원글과는 접근법이 좀 다르며, 기획이 아닌 급하게 쓴 글이라 의식의 흐름 사이에서 표류합니다 ㅠㅠㅠ 빠른요약 클래스와 프로토타입의 가장 커다란 차이는 객체 생성 방식 [클래스 -> 인스턴스 vs 객체 -> 복사된 객체]. 가장 큰 공통점은 객체지향이며, 프로그램을 객체라는 단위로 나누고 상호작용하게 하는 것. 객체지향의 핵심인 캡슐화를 잘하기 위한 가장 간단한 방법은 추상화를 잘 하는 것. 추상화는 데이터 위주의 성질(고전적 OOP), 형태(타입), 상태(데이터 주도 설계)와 관계 중심인 시간(절차지향), 행동(함수형), 정의(논리형), 상황(도메인 주도 설계, AOP) 등으로 나누어 생각할 수 있음..
-
간단한 모나드 설명과 예제프로그래밍/설계 2020. 2. 11. 13:57
리엑트 네이티브 스터디 때문에 시작한 글이었는데 생각보다 길어져서 분리하게 되었다. 자바스크립트 관련 코드는 해당 스터디쪽 문서에 올릴 예정. 역시 모나드를 이해할때는 Haskell이 가장 효율적이므로 Haskell로 된 코드를 사용해보자. 자바스크립트로도 설명할 수 있지만(모나드 섹션 하단의 링크 참조) 이해하기에 코드가 깔끔하진 않다. 하스켈의 간단한 입출력 예제다. main = do putStrLn "Input: " x >= 타입 생성자 M 타입 생성자는 C++의 templete 와 유사하여 다른 타입을 인자로 받는다. 완전히 같진 않지만 아래와 같이 대응된다고 생각하면 된다. -- Haskell myFunc :: Int -> Int data MyData t = MyData t -- 형태: * ->..
-
내 맘대로 프로그램 설계 7. - 함수형 프로그래밍.프로그래밍/설계 2019. 5. 21. 17:07
내 맘대로 하는 프로그램 설계 시리즈. Chapter1 - 간단한 데이터 처리(4섹션) 2017/12/27 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 1. - 이유와 준비. 2018/01/11 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 2. - 데이터 타입. 2018/01/16 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 3. - 함수와 변수. 2018/05/29 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 4. - 고정 크기 데이터. 2017/06/30 - [프로그래밍/설계] - 프로그래밍과 추상화에 대하여.[부록] Chapter2 - 임의의 데이터 처리 2018/06/10 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 5. - 리스트와 재귀. 2019/05/20 ..
-
내 맘대로 프로그램 설계 6. - 데이터구조와 알고리즘.프로그래밍/설계 2019. 5. 20. 09:53
내 맘대로 하는 프로그램 설계 시리즈. Chapter1 - 간단한 데이터 처리(4섹션) 2017/12/27 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 1. - 이유와 준비. 2018/01/11 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 2. - 데이터 타입. 2018/01/16 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 3. - 함수와 변수. 2018/05/29 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 4. - 고정 크기 데이터. 2017/06/30 - [프로그래밍/설계] - 프로그래밍과 추상화에 대하여.[부록] Chapter2 - 임의의 데이터 처리 2018/06/10 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 5. - 리스트와 재귀. 2019/05/20 ..
-
내 맘대로 프로그램 설계 5. - 리스트와 재귀.프로그래밍/설계 2018. 6. 10. 02:17
내 맘대로 하는 프로그램 설계 시리즈.Chapter1 - 간단한 데이터 처리(4섹션) 2017/12/27 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 1. - 이유와 준비.2018/01/11 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 2. - 데이터 타입.2018/01/16 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 3. - 함수와 변수.2018/05/29 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 4. - 고정 크기 데이터.2017/06/30 - [프로그래밍/설계] - 프로그래밍과 추상화에 대하여.[부록] Chapter2 - 임의의 데이터 처리 2018/06/10 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 5. - 리스트와 재귀(현재). 1. 시작하기.시작하기..
-
내 맘대로 프로그램 설계 4. - 고정 크기 데이터.프로그래밍/설계 2018. 5. 29. 18:31
이번 섹션에서는 섹션2,3 정리와 고정 크기 데이터에 대하여 배우도록 하겠습니다. 다시 연재 시작했어요. 내 맘대로 하는 프로그램 설계 시리즈. Chapter1 - 간단한 데이터 처리(4섹션) 2017/12/27 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 1. - 이유와 준비. 2018/01/11 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 2. - 데이터 타입. 2018/01/16 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 3. - 함수와 변수. 2018/05/29 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 4. - 고정 크기 데이터.(현재) 2017/06/30 - [프로그래밍/설계] - 프로그래밍과 추상화에 대하여.[부록] Chapter2 - 임의의 데이터 처리 20..
-
내 맘대로 프로그램 설계 3. - 함수와 변수.프로그래밍/설계 2018. 1. 16. 04:23
원래 합쳐져서 Section2 였던 '기초'에서 '간단한 데이터 처리'와 '함수'로 나뉘어 구성하게 되었습니다. 너무 길어서 로딩도 오래걸리고, 읽는 사람도 힘들겠더군요. 내 맘대로 하는 프로그램 설계 시리즈.Chapter1 - 간단한 데이터 처리(4섹션) 2017/12/27 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 1. - 이유와 준비. 2018/01/11 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 2. - 데이터 타입. 2018/01/16 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 3. - 함수와 변수.(현재) 2018/05/29 - [프로그래밍/설계] - 내 맘대로 프로그램 설계 4. - 고정 크기 데이터. 2017/06/30 - [프로그래밍/설계] - 프로그래밍과 추상..