본문 바로가기

𝗶𝗢𝗦 𝗕𝗼𝗼𝘁 𝗖𝗮𝗺𝗽/데일리미션

[내일배움캠프] 앱개발 용어 정리(02)

버그(Bug)

- 소프트웨어나 프로그램의 코드에 존재하는 오류결함을 의미

- 원래 의도한 동작과 다르거나 예상하지 못한 동작을 유발

 

버그의 종류

프로그래밍 실수

    프로그래머가 코드를 작성하는 동안 실수로 인해 발생하는 버그

    오타, 잘못된 연산, 논리 오류 등을 포함할 수 있음

환경 의존성

    특정 환경에서만 발생하는 버그

    특정 운영 체제, 하드웨어, 또는 소프트웨어 버전에 종속적인 문제가 해당

데이터 입력 오류

    사용자로부터 잘못된, 예상치 못한 입력으로 인한 문제

다중 스레딩/프로세싱 문제

    동시에 여러 작업이 진행되는 경우 발생할 수 있는 동기화 문제로 인한 버그

 


 

에러(Error)

- 프로그램이 실행되는 동안 발생한 예외적인 상황이나 오류 

- 프로그램의 정상적인 동작을 방해하거나 중단 시킬 수 있음 

 

에러의 유형

컴파일 에러 (Compile-time Error)

    소스 코드를 컴파일하는 과정에서 발생하는 에러로 프로그램이 실행되기 전에 발견됨

    주로 문법 오류나 타입 오류와 관련이 있음

    컴파일러는 이러한 에러를 발견하고 프로그램을 실행 파일로 변환하지 않음

런타임 에러 (Runtime Error)

    프로그램이 실행 중일 때 발생하는 에러로 컴파일 단계에서는 발견되지 않음

    프로그램이 실행 중에 특정 조건이나 상황에서 예외가 발생할 때 런타임 에러가 발생

    예를 들어, 0으로 나누기, 배열 범위를 초과, 변수를 참조할 때 값이 없는 경우 등이 런타임 에러의 일반적인 사례

 


 

예외처리

- 프로그램이 실행되는 동안 예외적인 조건이나 에러가 발생할 경우

   프로그램이 중단되는 것을 방지하고 대체할 수 있는 매커니즘을 제공하는 프로그래밍의 한 기술 

- 예외는 런타임 시 발생하고, 예외처리를 통해 이러한 상황에 적절한 조치를 취할 수 있음 

 

예외처리 기법

try-catch 구문

    예외가 발생할 수 있는 코드를 try 블록 안에 배치하고, 예외가 발생하면 catch 블록에서 해당 예외를 처리하는 방식

    이를 통해 프로그램은 예외가 발생해도 종료되지 않고 계속 실행될 수 있음

try {
    // 예외가 발생할 수 있는 코드
} catch (ExceptionType e) {
    // 예외를 처리하는 코드
}

 

throw 문

    프로그래머가 의도적으로 예외를 발생시키는 데 사용

    throw 문을 사용하여 특정 조건이 충족되면 예외를 일으킬 수 있습음

if (condition) {
    throw new Exception("This is an exception message.");
}

 

finally 블록

    예외 발생 여부와 관계없이 항상 실행되는 코드 블록

    주로 리소스의 해제나 정리 작업을 위해 활용

try {
    // 예외가 발생할 수 있는 코드
} catch (ExceptionType e) {
    // 예외를 처리하는 코드
} finally {
    // 항상 실행되는 코드
}

 


 

라이브러리(Library)

- 재사용 가능한 코드 모음 

- 특정 목적을 달성하기 위해 사용할 수 있는 함수, 클래스, 모듈 등의 모음 

 

특징 

재사용성 

    라이브러리는 특정 기능을 구현한 코드를 모아놓은 것

    다양한 프로젝트에서 재사용할 수 있음

    개발 생산성을 높여줌 

모듈화

    라이브러리는 주로 모듈화되어 있어서 필요한 모듈만 가져와서 사용할 수 있음

    코드의 일부분만 사용할 수 있게 해주어 불필요한 코드를 포함하지 않고 필요한 부분만 사용할 수 있도록 함

확장성

    라이브러리는 필요에 따라 새로운 기능을 추가하거나 업데이트할 수 있음

    라이브러리의 유지보수와 기능의 확장이 용이하게 만듬

다양한 언어 및 환경

    다양한 프로그래밍 언어와 환경에서 사용할 수 있는 라이브러리들이 존재

    각 언어나 환경에 따라 특화된 라이브러리들이 개발되어 있음 

예시

Java - Apache Commons 라이브러리

JavaScript - React, Angular 등의 라이브러리

 


 

프레임워크(Framework)

- 특정한 목적을 가진 소프트웨어 애플리케이션을 개발하기 위한 구조나 틀을 제공하는 추상화된 플랫폼

- 개발자가 애플리케이션을 만들기 위해 사용하는 기본 구조, 규칙, 라이브러리, 도구, 디자인 패턴 등이 사전에 정의되어 있음

- 프레임워크를 사용하면 개발자는 일반적인 기능을 빠르게 구현하고, 코드의 재사용성과 유지보수성을 높일 수 있음

 

특징 

구조적인 틀 제공

    프레임워크는 개발자에게 애플리케이션을 구축하기 위한 기본적인 구조를 제공

    애플리케이션의 아키텍처, 디자인 패턴, 코드 구조 등을 미리 정의해놓은 것을 의미

재사용 가능한 코드 및 라이브러리

    프레임워크는 자주 사용되는 기능이나 모듈을 미리 구현하여 제공

    개발자는 필요한 부분만 가져와 사용할 수 있으며, 코드의 재사용성이 증가

규칙과 규약

    프레임워크는 개발자에게 특정한 규칙과 규약을 부여

    개발자가 일관된 방식으로 코드를 작성하고 프로젝트를 구성할 수 있도록 함

빠른 개발

    기본적인 구조와 기능이 이미 구현되어 있기에 애플리케이션의 핵심 로직에 집중할 수 있음, 이는 빠른 개발과 생산성 향상으로 이어짐

유지보수성 증가

    프레임워크는 일관된 구조와 표준을 제공하여 코드의 유지보수성을 높임

    새로운 기능 추가나 변경이 필요할 때, 프레임워크의 규칙에 따라 일관성 있는 방식으로 수정이 가능

프레임워크의 예

웹 개발 - Django, Ruby on Rails, Spring 등

모바일 앱 개발 - Flutter, React Native 등

 


 

퍼블리싱

- 어떠한 콘텐츠를 제작하여 공개하거나 배포하는 과정을 의미

- 주로 출판업이나 미디어 산업에서 사용되며, 다양한 형태의 콘텐츠를 대중에게 공개하거나 유통하는 활동을 포괄함

 

출판 분야

    책, 잡지, 신문, 웹사이트 등의 콘텐츠를 제작하고 배포하는 활동

    책을 출판하거나 디지털 미디어를 만들어 공개하는 것이 여기에 속함

웹 퍼블리싱

    웹 개발 분야에서는 웹사이트를 디자인하고 개발하여 공개하는 것을 웹 퍼블리싱이라고 함

    웹사이트의 디자인, 콘텐츠 제작, 프로그래밍 등을 통합적으로 다루는 활동을 말함

디지털 미디어

    음악, 영화, 게임 등의 디지털 미디어 콘텐츠를 제작하여 배포하는 것도 퍼블리싱에 해당할 수 있음

퍼블리싱의 목적

- 만들어진 콘텐츠를 대상 대중이나 시장에 공개하여 접근 가능하게 하는 것

- 이를 통해 정보나 엔터테인먼트를 널리 전파하고 소비자들에게 제공할 수 있음

- 웹 퍼블리싱의 경우, 웹사이트를 공개함으로써 사용자들이 콘텐츠에 접근하고 상호작용할 수 있도록 하는 것이 목표 중 하나

 


 

UI(User Interface)

- 사용자 인터페이스

- 사용자와 소프트웨어 간의 상호 작용을 가능하게 하는 모든 것을 포함하는 개념

- 소프트웨어, 웹사이트, 애플리케이션, 기타 디지털 제품 및 서비스의 일부로 사용자 경험(UX)을 형성하는 중요한 구성 요소 중 하나

 

UI 유형

그래픽 사용자 인터페이스 (GUI)

    아이콘, 버튼, 창 등의 그래픽 요소를 사용하여 사용자와 소프트웨어 간의 상호 작용을 제공

    대부분의 운영 체제 및 응용 프로그램은 GUI를 사용하고 있음

텍스트 기반 사용자 인터페이스 (TUI 또는 CUI)

    명령 줄 인터페이스와 같이 텍스트를 사용하여 상호 작용하는 방식

    터미널 창이나 콘솔 창에서 명령어를 입력하는 형태가 여기에 해당

웹 사용자 인터페이스 (Web UI)

    웹사이트에서 사용자와 상호 작용하기 위한 디자인과 기능을 포함함

    웹 페이지의 레이아웃, 버튼, 링크, 양식 등이 여기에 속함

모바일 사용자 인터페이스 (Mobile UI)

    터치 스크린을 사용하는 모바일 기기에서의 사용자 인터페이스를 나타냄

    모바일 애플리케이션의 디자인과 동작이 여기에 해당됨

음성 인터페이스 (Voice UI)

    음성 명령을 사용하여 상호 작용하는 인터페이스

    음성 비서 및 음성 기반 시스템이 이에 해당함

 


 

UX(User Experience)

- 사용자 경험

- 사용자 경험은 사용자가 제품, 서비스 또는 시스템과 상호 작용하는 동안 느끼는 모든 경험과 감정을 포괄하는 개념

- 디지털 제품 및 서비스 뿐만 아니라 모든 종류의 제품 또는 서비스에 적용될 수 있음 

 

* 사용자 경험은 사용자가 제품 또는 서비스를 어떻게 인지하고 평가하는지, 그리고 해당 제품 또는 서비스를 사용하는 과정에서 느끼는 만족도와 편의성 등을 중점적으로 다룸, 이는 디자인, 상호 작용, 성능, 접근성, 시각적 디자인, 정보 아키텍처 등과 관련이 있음

 

사용자 경험 요소

유용성 (Usability)

    제품 또는 서비스가 사용자에게 얼마나 유용하며, 사용자의 목표를 얼마나 효과적으로 달성할 수 있는지를 나타냄

만족도 (Satisfaction)

    사용자가 제품 또는 서비스를 사용하고 나서 느끼는 만족도와 기쁨의 정도를 나타냄

접근성 (Accessibility)

    모든 사용자가 쉽게 접근하고 사용할 수 있는 정도를 나타냄

    장애가 있는 사용자들을 고려한 디자인이 여기에 포함됨

효율성 (Efficiency)

    사용자가 목표를 달성하는 데 소요되는 노력과 시간을 최소화하는 정도를 나타냄

학습성 (Learnability)

    사용자가 제품 또는 서비스를 얼마나 빠르게 학습하고 익힐 수 있는지를 나타냄

감성적 측면 (Emotional Aspects)

    사용자가 제품 또는 서비스를 사용하는 과정에서 느끼는 감정과 경험을 나타냄

UX 디자인이란?

- 사용자 경험의 측면을 고려하여 제품이나 서비스를 디자인하고 최적화하는 프로세스를 의미

- 디자이너들은 사용자의 니즈와 행동을 이해하고, 사용자 중심의 디자인을 통해 만족스러운 사용자 경험을 제공하는 것을 목표로 함

 

 
클라이언트

- 컴퓨터 네트워크에서 서비스 또는 자원을 요청하고 사용하는 디바이스나 소프트웨어

- 일반적으로 서비스 제공자 또는 서버에게 정보나 서비스를 요청하며, 서버는 해당 요청에 대한 응답을 제공

- 클라이언트-서버 모델은 네트워크 기반 응용프로그램에서 흔히 사용됨 

 

클라이언트의 예시

    웹 서버에 페이지를 요청하여 사용자에게 보여주는 웹 브라우저

    모바일 앱, 이메일 클라이언트, 파일 전송 프로그램, 게임 클라이언트 등

 

* 사용자가 직접 조작하거나, 다른 소프트웨어나 시스템에서 자동으로 작동되어 서버로부터 정보나 서비스를 받아오기도 함

* 주로 서버와의 상호 작용을 위해 네트워크 프로토콜을 사용하며, 일반적으로 HTTP, FTP, SMTP 등의 프로토콜을 이용

* 컴퓨팅에서 클라이언트-서버 모델은 분산 컴퓨팅 및 네트워크 기반 응용프로그램 개발에서 중요한 개념으로 사용

 

 
API(Application Programming Interface)

- 응용 프로그램 간의 상호 작용을 위한 규약이나 인터페이스를 의미

- 소프트웨어 컴포넌트들이 서로 통신할 수 있도록 하는 다양한 규칙과 도구들을 포함

- 다양한 형태로 존재하며, 일반적으로 웹 API, 라이브러리 API, 운영체제 API 등이 있음 

- 프로그래머에게 소프트웨어를 개발하는 데 도움을 주며, 코드의 재사용성을 높이고 다른 소프트웨어와의 통합을 쉽게 할 수 있도록 함

 

웹 API (Web API)

    웹 API는 웹 서버에서 제공되는 인터페이스로, 클라이언트와 서버 간의 통신을 위한 규약

    대표적인 웹 API로는 RESTful API, SOAP API 등이 있음

    웹 개발에서는 외부 서비스나 데이터에 접근하기 위해 웹 API를 활용

라이브러리 API

    프로그래밍 언어나 프레임워크에서 제공하는 라이브러리는 해당 언어나 프레임워크의 기능을 활용할 수 있게 해주는 인터페이스를 제공

    예시

    * Java의 Standard Library나 Python의 requests 라이브러리는 각각의 언어에서 사용 가능한 API

운영체제 API

    운영체제 API는 운영체제에서 제공하는 서비스와 리소스에 접근할 수 있도록 하는 인터페이스를 의미

    파일 시스템 조작, 네트워크 통신, 메모리 관리 등 운영체제의 여러 기능을 프로그램이 사용할 수 있게 함

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31