개념 사전
아티클에서 반복 등장하는 용어, 원칙, 자료를 독립 페이지로 정리합니다.
- 개념적 일관성개념적 일관성은 소프트웨어 시스템이 훌륭하고 독립적인 여러 아이디어들의 단순한 집합체가 아니라, 단일하고 통일된 설계 철학과 원칙을 바탕으로 구성되어야 함을 의미한다
- 구조적 프로그래밍goto문을 배제하고 순차, 선택, 반복이라는 세 가지 제어 구조만으로 프로그램의 흐름을 구성하는 프로그래밍 패러다임
- 논리적 경계와 물리적 경계소프트웨어 아키텍처에서 코드가 개념적으로 어떻게 나뉘는지를 나타내는 논리적 경계와, 그 코드가 런타임에 어떤 프로세스·서버·저장소로 배치되는지를 나타내는 물리적 경계를 구분하고 두 경계의 관계를 정리한다.
- 모듈러 모놀리스 (Modular Monolith)단일 배포 단위를 유지하면서 내부적으로는 명확한 도메인 경계와 캡슐화된 모듈로 구성하여, 모놀리스의 운영 단순성과 마이크로서비스의 구조적 이점을 절충하려는 소프트웨어 아키텍처 스타일이다.
- 발산적 변경하나의 클래스가 서로 다른 이유로, 서로 다른 방향으로 자주 변경되는 현상
- 방어적 프로그래밍예상치 못한 입력, 오류, 오용으로부터 소프트웨어를 보호하여 예측 가능하고 안정적으로 동작하도록 만드는 프로그래밍 원칙과 기법의 총체
- 본질적 복잡성과 우발적 복잡성Brooks는 아리스토텔레스의 본질(essence) / 우연(accident) 구분을 소프트웨어에 적용하여, 개발의 어려움을 두 범주로 나눈다
- 선언형 프로그래밍선언형 프로그래밍은 계산 과정을 단계별로 지시하는 대신, 계산의 논리와 원하는 결과를 기술하는 프로그래밍 패러다임이다.
- 의사소통사람들 과 소통 하는 행위
- 카고 컬트 과학과 카고 컬트 프로그래밍리처드 파인만이 사이비 과학을 진단하기 위해 제시한 카고 컬트 과학 개념과, 이를 소프트웨어 개발 관행에 적용한 카고 컬트 프로그래밍 개념을 함께 다루는 문서.
- 코드 리뷰 문화코드 리뷰를 결함 발견, 지식 공유, 품질 기준 형성의 장으로 운영하는 팀 문화
- 현학형식적인 규칙 이나 중요 하지 않은 사소한 세부 사항 에 지나치게 관심을 갖는 성향
- AI 네이티브 (AI-Native)AI 네이티브는 인공지능이 나중에 덧붙인 기능이 아니라 시스템의 설계 원리이자 가치 창출의 근본 축으로 처음부터 내재된 소프트웨어, 기업, 인프라의 패러다임을 가리키는 개념이다.
- AX (AI 전환)AX는 인공지능 기술을 기업과 정부 등 조직의 운영·의사결정 구조 전반에 결합하여 근본적으로 재편하는 인공지능 전환(AI Transformation)을 가리키는 용어이다.
- Nextjs 앱 아키텍처TODO: 개념을 한 문장으로 설명
- Ports and Adapters애플리케이션의 핵심 비즈니스 로직을 포트라는 추상 인터페이스로 감싸고, 어댑터를 통해 UI나 데이터베이스 같은 기술적 세부사항과 분리함으로써 교체 가능성과 테스트 용이성을 높이는 소프트웨어 아키텍처 패턴이다.
- Railway-Oriented Programming성공과 실패라는 두 개의 트랙을 파이프라인처럼 연결해 함수를 합성함으로써, 오류 처리를 예외적인 분기가 아니라 정상적인 데이터 흐름의 일부로 다루는 함수형 오류 처리 패턴이다