개발자 · 아키텍처
Natsu Standard Architecture
NSA는 새로운 발명이 아니라 현업에서 쓰는 아키텍처를 AI가 쓰기 좋게 다시 해석한 것입니다. 소프트웨어는 Feature 단위로만 정의되고, Feature는 API, Port, L1, L2 넷으로 이루어집니다.
ntstd.dev / 예약 앱 / 코드 뷰어예시 화면
예약 만들기
booking · 단계 6
문서
문서코드디버그
예약 요청
회원 확인
빈 자리?
예약 저장
마감 안내
알림 보내기
Feature
Feature는 넷으로 이루어집니다
| 무엇인가 | 누가 쓰는가 | |
|---|---|---|
| API | 밖에서 받는 요청의 계약 | AI가 대화에서 끌어냅니다 |
| Port | 데이터베이스나 다른 Feature처럼 Feature 밖의 능력을 부르는 접점 | AI가 대화에서 끌어냅니다 |
| L1 | 사람이 읽는 논리 흐름. 문서이자 실행물 | AI가 쓰고 사람이 그래프로 읽고 승인합니다 |
| L2 | 흐름의 각 단계 안을 채우는 순수 연산 코드 | AI가 씁니다 |
L1은 문서이자 실행물입니다. 런타임은 Feature 폴더의 L1 파일을 해석해서 단계 순서대로 실행하므로, L1과 별도의 흐름 코드는 없습니다.
L2는 네트워크나 데이터베이스를 직접 호출하지 못하고, 그런 호출은 L1의 단계가 Port를 거쳐서만 합니다.
제약 하나
제약 하나가 다섯 곳에서 일합니다
L1은 사람이 한 화면에서 읽을 수 있고 기계가 결정론적으로 그릴 수 있는 문법만 허용합니다.
- 01기계가 승인한 L1을 그래프로 그립니다. 백 번 열어도 같습니다.
- 02승인본을 그린 문서 그래프와 지금 코드에서 뽑은 코드 그래프를 대조합니다. 다르면 main에 병합되지 않습니다.
- 03Feature 하나는 자기 API와 Port와 L1만 알면 구현됩니다. 컨텍스트가 작아 경량 모델도 정확합니다.
- 04L1 그래프로 그려지는 Feature만 공유 마켓에 올라가므로 코드를 읽지 않고 검토합니다. 마켓은 계획입니다.
- 05배우는 사람은 Java 문법 대신 L1 그래프 읽는 법을 배웁니다.
ntstd.dev / 예약 앱 / 디버그예시 화면
예약 만들기
방금 누른 «예약하기»
디버그
문서코드디버그
예약 요청2ms
회원 확인11ms
빈 자리?4ms
예약 저장18ms
마감 안내
알림 보내기7ms
5단계 · 42ms
경계
덮는 범위는 경계로 말합니다
밀리초 지연을 다투는 소프트웨어, 동시 사용자 수백만, 언어와 프레임워크를 제한 없이 고르는 소프트웨어는 뺐습니다. 남는 것이 세상의 작은 앱 대부분입니다.
지원 언어
L2 코드의 언어는 런타임이 지원하는 것으로 제한됩니다. 지금은 Java이고, Python과 Go 런타임은 만드는 중입니다.
확장 Feature
L1 문법으로 적지 못하는 기능은 L1 없이 코드로 내부를 쓰되 API와 Port 선언은 같습니다. 부르는 쪽 그래프에서는 내부가 보이지 않는 노드 하나입니다.
스택
런타임은 Java와 Spring 위에서 돌고, 데이터는 PostgreSQL에 저장됩니다.