분류 전체보기 1429

haskell의 monad를 이해하기 쉽게 설명해. 예제도 포함하고

Haskell의 **Monad(모나드)**는 처음 접하면 마치 "저주"처럼 느껴질 수 있지만, 사실 핵심 아이디어는 아주 단순합니다. 모나드는 **"어떠한 값을 맥락(Context) 속에 넣고, 그 맥락을 유지하면서 계산을 이어가는 방법"**에 대한 표준입니다.1. 모나드를 이해하는 비유: "포장된 선물"모나드를 이해하기 위해 세 가지 구성 요소를 선물 상자에 비유해 보겠습니다.포장된 값: 일반적인 값(예: 5)이 아니라, 어떤 상태나 위험 요소가 포함된 상자 안에 들어있는 값(예: Maybe 5)입니다.포장지(맥락): 값이 처한 상황입니다.Maybe: "값이 없을 수도 있음"이라는 맥락IO: "외부 세계와 상호작용함"이라는 맥락[] (List): "값이 여러 개일 수 있음"이라는 맥락연결 고리 (>>=..

Programming 2026.05.01

Sd 카드 오래 안 쓰면 데이터 날아가나

SD 카드는 전원이 공급되지 않는 상태로 오랜 기간 방치하면 데이터가 소실될 가능성이 분명히 있습니다. SD 카드가 데이터를 저장하는 물리적 원리와 관리법을 간단히 정리해 드릴게요.1. 데이터가 사라지는 이유 (플래시 메모리의 한계)SD 카드는 플래시 메모리(NAND Flash) 방식을 사용합니다. 이는 미세한 전자들을 세포(Cell) 안에 가두어 데이터를 기록하는 방식입니다.전하 누설: 시간이 흐르면 가두어 두었던 전자들이 조금씩 새어 나갑니다. 이를 '전하 누설'이라고 하는데, 일정한 수준 이하로 전자가 줄어들면 기계가 데이터를 읽지 못하게 되어 파일이 깨지거나 사라집니다.플로팅 게이트 방식: 특히 데이터를 저장하는 통로인 '절연층'이 노후화되면 전자가 더 빨리 빠져나갑니다.2. 얼마나 오래 버틸 수..

Computer 2026.05.01

java ee에서 value object의 public field로 컬럼들을 정의하고 사용하면 편한데 왜 private으로 하고 get, set 메소드를 만드는가

Java EE(현재의 Jakarta EE)나 Spring 같은 Java 기반 환경에서 관습적으로 private 필드와 Getter/Setter를 사용하는 이유는 단순히 "남들이 그렇게 하니까"가 아니라, 유연성, 제어권, 그리고 프레임워크와의 호환성 때문입니다.공개 필드(Public Field)를 쓰면 코드가 짧아져서 당장은 편할 수 있지만, 장기적으로는 다음과 같은 문제들에 직면하게 됩니다.1. 캡슐화와 데이터 보호 (Encapsulation)가장 근본적인 객체지향 원칙입니다. 필드가 public이면 외부의 어떤 클래스든 데이터를 마음대로 수정할 수 있습니다.검증 로직의 부재: 나이(age) 필드에 -100이 들어가거나, 이름(name)에 null이 들어가는 것을 막을 방법이 없습니다.Setter의 역..

Programming 2026.05.01

tail -100 file 을 powershell로

리눅스의 tail -100 명령어를 PowerShell에서 구현하려면 Get-Content cmdlet을 사용하면 됩니다.가장 표준적인 방법은 다음과 같습니다.1. 기본 명령어PowerShell Get-Content filename.txt -Tail 1002. 주요 옵션 및 활용법실시간 모니터링 (tail -f와 동일): 파일의 끝부분을 보여주면서 새로 추가되는 내용을 실시간으로 확인하려면 -Wait 옵션을 추가합니다.PowerShell Get-Content filename.txt -Tail 100 -Wait별칭(Alias) 사용: 명령어가 너무 길다면 기본 내장된 별칭을 사용하여 타이핑을 줄일 수 있습니다.gc: Get-Content의 별칭

Programming 2026.04.18