⌨️

소프트웨어 개발 용어 정리

Updated
2024/06/18 00:16
Category
Tech
Tags
Keyword
2 more properties

Plugin (플러그인)

특정 기능을 기존 애플리케이션에 확장
플러그인은 기존 소프트웨어 응용 프로그램에 대한 특정 기능을 말합니다. 플러그인은 종종 웹 브라우저, 콘텐츠 관리 시스템 또는 기타 소프트웨어 프로그램의 기능을 확장하는데 사용됩니다. 일반적으로 모듈식으로 설계되어 쉽게 설치하고 제거할 수 있습니다.

Library (라이브러리)

개발에 재사용할 수 있는 미리 작성된 코드
라이브러리는 소프트웨어에서 재사용할 수 있는 미리 작성된 코드 모음입니다. 라이브러리에는 종종 XML 구문 분석 또는 암호화 수행과 같은 특정 기능을 제공하는 일련의 함수, 클래스 또는 모듈이 포함되어 있습니다. 개발자는 이러한 라이브러리를 자신의 프로젝트에 포함하여 시간과 노력을 절약할 수 있습니다.

Package (패키지)

배포 및 설치할 수 있는 소프트웨어 번들
패키지는 단일 단위로 배포 및 설치할 수 있는 소프트웨어 번들입니다. 패키지에는 종종 라이브러리, 실행 파일 및 구성 파일과 같은 여러 파일이 포함됩니다. 일반적으로 설치 프로세스를 자동화하는 도구를 사용하여 쉽게 설치하고 관리할 수 있도록 설계됩니다.

SDK (Sortware Develop Kit, 소프트웨어 개발 키트)

특정 플랫폼 또는 기술용 소프트웨어 개발을 위한 도구 및 라이브러리 세트
SDK는 도구 및 라이브러리 세트입니다. 개발자가 특정 플랫폼 또는 기술용 소프트웨어를 구축하는데 사용할 수 있습니다. SKD에는 개발자가 시작하는데 도움이되는 프로그래밍 인터페이스, 설명서 및 샘플 코드가 포함되는 경우가 많습니다.

Authentication (인증)

사용자의 신원을 확인
Authentication은 사용자가 누구인지 확인하는 것을 의미합니다. 이는 사용자가 자신의 ID와 비밀번호, 생체 인식 기술 등을 이용하여 자신의 신원을 증명하는 것을 말합니다. 인증된 사용자는 시스템에 접근할 수 있는 권한을 부여받습니다.

Authorization (허가)

사용자의 대한 권한을 부여
Authorization은 인증된 사용자가 시스템에서 수행할 수 있는 작업에 대한 권한을 제공하는 것을 의미합니다. 즉, 사용자가 시스템에 접근할 수 있는지 여부를 결정하는 것이 Authentication이고, 사용자가 시스템에서 수행할 수 있는 작업에 대한 권한을 결정하는 것이 Authorization입니다.

Unit Test (단위 테스트)

가장 작은 단위인 함수, 메서드, 모듈 등의 각각의 단위가 기대한 대로 동작하는지 확인하는 테스트
단위 테스트는 애플리케이션의 가장 작은 단위인 함수, 메서드, 모듈 등의 각각의 단위가 기대한 대로 동작하는지 확인하는 테스트입니다. 이를 위해서는 해당 단위를 실행하는 코드와 함께 검증 코드(실제 값과 기대한 값이 같은지 확인하는 코드 등)를 작성하여 실행합니다. 단위 테스트를 작성함으로써 개발자는 작은 단위들이 기대한 대로 동작하며 다른 단위들과도 상호작용하는데 문제가 없는지 확인할 수 있습니다. 또한 단위 테스트를 통해 코드 수정 후 기존에 작성한 코드의 기능이 올바르게 동작하는지를 검증할 수 있습니다.

Integration Test (통합 테스트)

통합 테스트는 애플리케이션의 다양한 단위들이 서로 올바르게 상호작용하는지 확인하는 테스트
통합 테스트는 애플리케이션의 다양한 단위들이 서로 올바르게 상호작용하는지 확인하는 테스트입니다. 단위 테스트가 작은 단위들이 기대한 대로 동작하는지 검증하는 것이라면, 통합 테스트는 여러 단위들이 함께 동작할 때 기대한 결과가 나오는지 확인하는 것입니다. 통합 테스트를 통해 애플리케이션의 전반적인 동작을 검증하며, 다양한 단위들이 함께 동작할 때 생기는 문제점을 찾아내는 데 도움을 줍니다.
단위 테스트와 통합 테스트는 모두 중요합니다. 단위 테스트는 작은 단위들이 정확하게 동작하는지 확인하고, 통합 테스트는 전체적인 애플리케이션의 동작을 확인하여 문제점을 찾아내는 데 도움을 줍니다. 또한, 테스트를 자동화하여 지속적인 개발과 배포를 가능하게 하는 CI/CD 파이프라인을 구축하는 것도 좋은 방법입니다.

Serverless (서버리스)

서버가 없이 돌아가는 것이아닌, 개발자에게서 서버가 사라진것. 다른 플렛폼에서 서버를 관리함.
클라우드상에서 서버를 관리해줍니다. 개발자는 기존 서버를 운영하고 관리하는 리소스가 감소하기 때문에 적은 비용과 시간으로 서버를 구축할 수 있습니다.
서버의 스펙과 유지보수를 클라우드에서 관리하기 때문에 비교적 쉽게 접근이 가능하고 운영이 가능합니다. 또한 서버 동작 방법도 함수를 정의하는 방식입니다. 이때 서버는 함수의 콜 횟수만큼 비용이 첨부되기 때문에 비용 정책면에서도 합리적이라고 할 수 있습니다.
하지만 Cold Start 문제가 있는데 이 문제는 서버가 항상 열여있는것이 아니기때문에 함수가 호출순간 서버가 켜지기 때문에 처음 콜하는 시간이 오래걸릴 수 있습니다. 이런 문제를 해결하기 위해서는 캐시를 적극 활용하는 것도 좋은 방법입니다.
또 다른 문제점은 Resource Limit 입니다. 요청에대한 타임아웃이 설정되어있어 너무 무거운 요청에대해서는 원할하게 동작하지 않을 수 있습니다.
Cold Start 문제로 인하여 매번 서버가 새로 켜지기때문에 서버가 가지는 상태는 유지할 수 없습니다. 따라서 값을 DB에서 CRUD 하는 방법으로 상태를 유지해야하며 요즘 사용하고있는 Restful API를 통해 개발하는것이 유리합니다.