리스펙스는 입력 전용 표면이며, 부수효과는 타깃 실행기에 의존합니다. 여기서는 IO(콘솔/stdio), FS(파일/경로), Net(HTTP/소켓) 능력을 오늘 기준으로 어떻게 다뤄야 하는지 개념을 정리합니다.
개념
- 능력은 효과 범주를 이름 붙이기 위한 개념입니다(IO/FS/Net).
- 리스펙스 자체는 런타임을 제공하지 않습니다. 효과는 결국 타깃 언어의 표준 라이브러리/프레임워크로 연결됩니다.
- 가이드에서는 모듈 헤더/임포트를 쓰지 않습니다. 변환 후 타깃 쪽에서 표준 라이브러리를 사용하세요.
지금 안정적인 것
- 순수(부수효과 없는) 코드는 모든 타깃에서 안정적으로 변환됩니다.
- 결과 출력: 일부 타깃은 마지막 값을 자동으로 출력하지 않습니다. 타깃 측의
print/console.log등으로 감싸서 출력하세요.
제약과 한계(현재)
- 타깃 간에 통일된 IO/FS/Net 계층은 아직 보장되지 않습니다.
- 경로/인코딩/시간대/권한은 OS/타깃별로 다릅니다. UTF‑8, 필요한 경우에만 절대 경로, 에러 처리 권장.
- 네트워크 호출은 타깃의 라이브러리/정책(CORS, TLS, 프록시 등)에 따릅니다.
안전/권한
- 데이터의 입출처를 명확히 하세요(입력 검증, 출력 인코딩).
- 샌드박스(브라우저), 권한/UAC(데스크톱), 런타임 플래그(Node/deno/python)를 준수하세요.
실무 팁
- 리스펙스를 타깃으로 변환
- 타깃에서 표준 라이브러리로 IO/FS/Net 연결
- 리스펙스는 가능하면 순수로 유지, 효과는 타깃의 작은 래퍼에서 수행
바로 실험: www.lenacode.com