창고

프로그래밍 용어 정리

날아갔나요 2019. 5. 27. 20:09

 

찾아보고 참조하거나 제가 이해하는데로 짧게 정리했습니다

명확한 이해를 위해 추가로 더 찾아보세요

틀린 부분이 있으면 바로 잡아주셔도 좋아요

 


 

라이브러리

 : 자주 사용하고 공통되게 사용할 수 있는 기능들을 묶은 것

 

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)

 : 데이터베이스에 접근하기 위한 클래스

 

쇼트서킷

 :