프로그래밍 용어 정리
찾아보고 참조하거나 제가 이해하는데로 짧게 정리했습니다
명확한 이해를 위해 추가로 더 찾아보세요
틀린 부분이 있으면 바로 잡아주셔도 좋아요
라이브러리
: 자주 사용하고 공통되게 사용할 수 있는 기능들을 묶은 것
API(Application Programming Interface)
: 프로그램을 작성하기 위한 일련의 부 프로그램, 프로토콜 등을 정의하여 상호 작용을 하기 위한 인터페이스 사양
ex) JAVA API, 구글 지도API, 날씨 정보 API, 거래소 API
프레임워크
: 프로그래밍에 집중하도록 기본적인 기능을 제공하는 환경
ex) Spring, Django, Bootstrap, .Net Framework
모듈
: 한 프로그램의 일부분
패키지
: 폴더
ex) ui.main 패키지 안에 메인 화면에 관련된 프로그래밍 파일들이 존재한다
아키텍쳐
: 프로그램에 대한 설계
고객의 현재의 요구사항과 미래의 요구사항을 모두 충족시킬수 있도록 고려하여 설계해야 함
플랫폼
: 프로그램이 실행되는 환경
ex) Windows, Linux, macOS, 앱스토어, 구글플레이
컴포넌트
: 교체되어도 원활하게 동작할 수 있도록 설계한 소프트웨어 부품
ex) 안드로이드 4대 컴포넌트(Service, Intent, Broadcast Receiver, Content Provider)
는 교체되어도 되나? 그냥 객체화가 잘되어 있는 클래스를 뜻하는 건가?
IDE(Integrated Development Environment)
ex) AndroidStudio, Eclipse, Xcode
SDK(Software Development Kit)
: 개발 도구의 집합
ANR(Application Not Responding)
: Android의 main thread를 너무 오래 사용해 UI에 대한 처리를 못하는 경우 발생
디자인 패턴
: 설계를 할 때 자주 발생하는 문제를 피하기 위한 패턴
ex) MVC, MVP, MVVM, Repository, DI, Observer
애자일
: 아무런 계획이 없는 개발 방법과 지나치케 계획이 많은 개발 방법들 사이에서 타협접을 찾고자 하는 개발 방법론
TDD(Test Driven Development)
: 요구사항을 검증하는 자동화된 테스트 케이스를 작성하고 이를 통과하기 위한 최소한의 코드를 생성
작성한 코드를 표준에 맞게 리팩토링한다.
CI(Continuos Integration)
: 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리파지토리에 병합하여 안정적인 개발을 돕는 자동화 프로세스
CD(Continuos Delivery)
: 애플리케이션을 실시간 프로덕션 환경에 적용할 수 있도록 하는 자동화 프로세스
DI(Dependency Injection)
: 외부에서 의존 객체를 생성하여 넘겨주는 것
보일러 플레이트 코드
: 꼭 필요한 기능이지만 코드가 쓸데없이 길고 자주 쓰이는 코드
ex) setter, getter
레거시(Legacy)
: 현재까지 남아 사용되고 있거나 현제의 체계에 영향을 미치는 과거의 체계
DTO(Data Transtfer Object)
: 데이터 전송 객체
DAO(Data Access Object)
: 데이터베이스에 접근하기 위한 클래스
쇼트서킷
: