앱 개발 용어 정리 - 2

김태영·2024년 5월 2일
0

내일배움캠프

목록 보기
3/7
post-thumbnail

1. 버그(Bug)

버그하면 생각나는 것은 어원이 진짜 버그(벌레)라는 것이다.

1945년 9월 9일 하버드 마크 II(Harvard Mark II)라는 컴퓨터가 계속 오동작하자 그레이스 호퍼(Grace Hopper)는 조수와 함께 끼어있던 죽은 나방을 발견한다. 이후, 발견한 나방을 핀셋으로 잡아 컴퓨터의 접촉 불량 현상을 해결했다. 이를 계기로 프로그램이나 시스템 오류를 버그라고 부르게 된다. 사진은 잡은 나방을 붙여 놓은 일지이다.

그래서 버그가 정확히 뭔데?

프로그램을 실행하는 과정에서 발생하는 오류를 말한다. 다시 말해, 프로그램이 개발자의 의도에 따라 동작하지 않으면 버그라고 한다. null 포인터 호출, 메모리 누수 등이 버그에 해당된다. 더해서 문제를 해결하기 위해 프로그램을 수정하는 작업은 디버깅(Debugging)이라 한다.

2. 에러(Error)

에러는 단순하게 오류이다. 좀 더 자세히 설명하면, 개발자가 예외 처리를 제대로 하지 않아 발생하는 오류를 에러라 말한다. 보통 사용자에 의해 발견되는 경우가 많다. 예를 들어, 번호 입력란에 사용자가 문자열을 입력했을 때 예외 처리가 잘 되지 않아 발생하는 오류가 해당된다.

그렇다면 버그가 에러이고 에러가 버그인 것이 아닌가?

에러가 버그를 만드는 것은 맞지만, 둘은 조금 다른 의미를 가진다.

  • 버그: 개발자의 잘못으로 결과 값이 이상하게 나온다.
  • 에러: 사용자가 이상한 값을 입력해서 프로그램이 이상하게 동작한다.

위와 같이 이해하면 될 것 같다.

3. 예외 처리

에러에 대해 설명할 때 예외 처리라는 말이 나왔다. 예외 처리란 무엇일까? 말 그대로 예외 상황을 처리하는 것으로, 오류가 발생했을 때 프로그램이 오작동을 하지 않도록 설계한 프로그래밍 언어의 개념 또는 컴퓨터 하드웨어 구조를 말한다. 예외 처리는 소프트웨어만 해당되는 줄 알았는데, 하드웨어도 포함된다는게 새로웠다.

예외는 보통 언제 발생할까?

하나하나 다 적을 수 없을 정도로 많은 예외가 있지만, 보통 다음과 같은 사례들이 있다.

  • null 참조 오류
  • 자료형의 불일치
  • 배열의 범위를 벗어난 접근
  • 존재하지 않는 메서드/파일 호출
  • 비논리적인 알고리즘

4. 라이브러리(Library)

라이브러리는 특정 기능만을 수행하도록 제작된 프로그램 모음이다. 따라서 혼자서 동작하는 완전한 프로그램이 아니다. 사용자는 미리 정의된 메서드와 클래스들을 사용해 쉽고 빠르게 프로그램을 개발할 수 있다.

프로그램 모음이 어째서 라이브러리라는 이름으로?

라이브러리라 하면 도서관을 떠올리게 되는데, 사실 Library는 책을 뜻하는 라틴어 libre에서 파생된 책들의 집합이라는 의미이다. 그렇다면 이제 조금 이해가 되는 것 같기도 하다. 예를 들어, 도형을 그려주는 라이브러리가 있다고 해보자. 라이브러리 안에는 원을 그려주는 기능(책), 선을 그려주는 기능 등이 포함되어 있을 것이다. 이런 기능들(책들)이 모여 기능의 집합 라이브러리가 되는 것이다.

5. 프레임워크(Framework)

단어를 먼저 살펴보면 틀을 뜻하는 Frame과 일을 뜻하는 Work가 합쳐진 용어이다. 어떤 목적을 구현하기 위한 뼈대 역할을 하는 구조라고 생각할 수 있겠다. 마치 요리를 완성시키기 위한 모든 것이 준비되어 있는 밀키트 같다.

그래서 왜 쓰는걸까?

당연하게도 프레임워크는 이미 검증이 된 코드들로 다 준비되어 있다보니 코드의 품질적인 면에서도 이점이 있을 것이다. 같은 이류로 개발 시간도 단축할 수 있겠다.

6. 퍼블리싱

퍼블리싱은 출판한다는 의미를 갖고있다. 보통 퍼블리싱을 설명할 때, 웹 개발과 웹 디자인의 중간 과정으로 말한다. 화면에 사용자가 볼 수 있게 ‘출판’하는 작업을 의미하는 것이다.

조금 다른 관점에서 설명해보자면, 개발되어진 어떠한 상품을 배급, 유통하는 것을 말하기도 한다.

설명은 조금 다르지만, 사용자가 보거나 사용할 수 있게 출판한다는 점에서 같은 의미인 것 같다.

7. UI(User Interface)

글꼴이나 레이아웃 등 사용자가 마주하게 되는 시각적인 디자인을 말한다. 사용자가 적은 동작으로 원하는 결과를 얻을 수 있게 만드는 것을 목표로 한다.

8. UX(User Experience)

사용자 경험, 사용자가 어떠한 서비스나 제품, 회사와 상호작용하면서 느끼는 종합적인 만족을 의미한다. 사용자의 요구 사항을 정확하게 충족시키고, 단순하고 즐겁게 이용할 수 있게 만드는 것을 목표로 한다.

9. 클라이언트

사전적 의미로 클라이언트는 고객, 의뢰인을 의미한다.

그렇다면 앱 개발의 관점에서 클라이언트란 무엇일까?

클라이언트는 서버의 서비스를 받아 사용하는 장치 또는 프로그램을 말한다. 서비스를 받아 사용한다는 점에서 ‘고객’이라는 의미가 사용된 것 같다. 장치로는 스마트폰, 노트북, 프로그램으로는 웹 브라우저가 대표적이다.

10. API

API는 Applicaton Programming Interface의 준말로, 여러 애플리케이션이 서로 통신할 수 있게 도와주는 인터페이스를 말한다. 여기서 애플리케이션은 소프트웨어, 인터페이스는 규칙을 의미한다. 옷 가게를 예를 들어 보자면, 공장에서 옷을 가져와 고객에게 판매하는 옷 가게 사장님이 API라고 할 수 있다.

profile
화이팅

0개의 댓글