앱 개발 용어 정리 - 1

김태영·2024년 5월 1일
0

내일배움캠프

목록 보기
2/7
post-thumbnail

1. 통합 개발 환경 IDE, Integrated Development Environment

통합 개발 환경이란 무엇일까. 단어 그대로 이해한다면 통합된 개발 환경이라 할 수 있다. 문서 작성엔 텍스트 편집기, 영상 편집엔 동영상 편집기, 개발엔 통합 개발 환경을 사용한다. 대표적인 IDE로는 XCode, Eclipse, IntelliJ, Visual Studio 등이 있다.

그렇다면 무엇이 통합되어 있을까?

우리는 개발을 할 때 코드를 작성해야하고, 잘못된 부분은 없는지 디버깅도 해봐야하며, 컴퓨터가 이해할 수 있게 컴파일하고, 빌드를 마친 후에 최종적으로 사용자에게 배포까지 해야한다. 이 외에도 테스트나 패키징 등의 작업도 필요하다. 통합 개발 환경은 이 모든 것을 통합해 하나의 IDE 내에서 GUI를 통해 보다 효율적으로 개발할 수 있게 해준다. 보통 다음과 같은 기능들이 통합되어있다.

  • 텍스트 에디터
  • 컴파일
  • 디버그
  • 빌드
  • 플러그인
  • 서버 업로드

2. 컨벤션

Convention이라는 단어는 관습, 대회, 조약이라는 서로 다른 세 가지 의미를 띈다. 이번 글은 앱 개발에 대한 용어를 정리하고자 하므로, “조약”의 의미에서 컨벤션을 다뤄보려한다.

코딩 컨벤션

코드를 한번에 완벽하게 작성한다면 좋겠지만, 아무리 잘 작성한 코드여도 나중에 문제가 생길 수 있다. 이 때 한 줄에 1,000자가 넘어간다면 잘못된 부분만을 찾아 제대로 수정할 수 있을까? 팀원이 작성한 bananaIceCream 이라는 이름의 함수를 어떤 기능을 하는지 매번 찾아보고 사용해야할까?

코딩 컨벤션은 위와 같은 문제를 대비하기 위해 읽고 관리하기 쉬운 코드를 작성하는 코딩 스타일 규약이다. 코딩 컨벤션을 지켜 작성하면 가독성이 높아지고 잠재적인 오류를 줄일 수 있어 유지보수에도 도움이 된다.

보통 탭과 공백 사용, 변수나 함수명에 대한 명명규칙, 중괄호의 줄바꿈 여부 등을 정해 다른 사람이 작성한 코드를 봤을 때도 쉽게 의도를 파악하거나 오류를 찾을 수 있게 해준다.

3. 자료형

보통 자료형이라고 하면 냅다 정수형, 문자형 등의 종류만 생각이 났는데, 용어의 의미를 이번에 제대로 알아보자.

자료형이란 프로그래밍 언어에서 저장되는 데이터의 종류에 따른 형태를 말한다. 자료형에 따라 데이터의 의미, 값을 저장하는 방식 등이 결정된다.

코틀린의 자료형

코틀린은 모든 자료형이 참조형 자료형이다.

참조형 자료형?

자료형은 크게 기본형과 참조형으로 구별된다.

  • 기본형: 직접 값을 가지고 있다.
    ex. int, float, boolean
  • 참조형: 직접 값을 갖지 않고 주소 값을 참조한다. null 혹은 객체의 주소를 가지고 있다.
    ex. 배열, 클래스

4. 변수와 상수

며칠 전 교수님의 질문에 ‘변수는 변하는 수 입니다’라고 답한 적이 있는데, 값을 담아둘 수 있는 메모리 공간이다’라고 이해하는 게 앞으로 공부할 때 더 도움이 될거라고 하셨다. 변수가 변하는 게 아니라 변수의 값이 변하는 것이다라는 말도 덧붙이셨다.

정리하자면, 변수는 이름이 붙은 저장소고 상수는 변하지 않는 값이라고 할 수 있다. 물론 앱 개발의 관점에서 보면 변수는 변화하는 수, 상수는 변하지 않는 변수도 맞는 해석인 것 같다.

5. 메서드

클래스 내부에 정의되어 있는 함수를 메서드 혹은 멤버 함수라 한다. 여기서 함수는 어떠한 동작을 수행하기 위해 독립적으로 설계된 코드의 집합을 말한다. 메서드는 클래스에 대한 객체가 생성되어야 사용할 수 있지만, 함수는 독립적으로 사용할 수 있다는 차이점이 있다.

코틀린의 함수

자바의 경우 클래스 내부에서만 메서드를 정의할 수 있지만, 코틀린은 클래스 내부가 아니더라도 함수를 정의할 수 있다. 따라서 코틀린에서는 메서드라는 말 대신 함수라고 부르지...만 메서드와 함수 모두 같은 의미로 혼용해 사용하는 것 같다.

6. 클래스

보통 클래스를 비유할 때 설계도, 객체는 설계도로 찍어낸 제품이라 말한다. 그리고 클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다. 다시 클래스로 돌아와 용어를 설명하자면, 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀이다.

객체 지향 프로그래밍이란?

프로그램을 객체들의 모임으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임이다.

구성요소

  • 필드: 클래스의 속성(변수)을 나타낸다. 객체의 데이터나 상태 정보 등을 저장한다.
  • 메서드: 클래스의 행위를 나타낸다.
  • 생성자: 객체를 생성하고 초기화하는 역할을 한다.
  • 중첩 클래스: 클래스 내부에 존재하는 클래스를 의미한다. 외부 클래스의 멤버들에 접근할 수 있다.

7. 네이티브 앱 (Navtive App)

모바일 기기에 최적화된 네이티브 언어로 개발된 앱을 말한다. 안드로이드 앱이라면 Java나 Kotlin을 사용해 만들어진 앱, iOS 앱이라면 Swift나 Objective C를 사용해 만들어진 앱이라 이해할 수 있다. 네이티브 앱은 각 모바일 운영체제에 맞게 개발되기 때문에 기기에서 기본적으로 제공되는 기능을 쉽게 활용할 수 있다.

  • 장점
    - 해당하는 모바일 기기 자체의 기능(카메라, 음성 인식 등)을 활용할 수 있다.
    - 운영체제에 맞게 최적화된 방식으로 만들어지므로 속도가 빠르고 안정적이다.
    - 높은 사양의 그래픽으로 구현할 수 있다.
  • 단점
    - 플랫폼에 한정적이다.
    - 개발 난이도가 높고, 시간이 오래 걸린다.
    - 수정사항이 있는 경우 앱 마켓의 심사를 거쳐 업데이트를 진행해야 한다.

8. 웹 앱 (Web App)

웹 기술을 활용해 만들어진 앱을 말한다. 즉, 웹페이지를 스마트폰 앱처럼 만들어 앱을 사용하는 것처럼 보이게 한다. 앱 설치 없이 인터넷 브라우저를 통해 이용할 수 있다.

  • 장점
    - 웹 페이지만 제작하면 되기 때문에 시간과 비용이 적게 들어간다.
    - 기기의 종류와 상관없이 모든 기기에서 같은 페이지를 볼 수 있다.
    - 앱 설치가 필요하지 않아 네이티브 앱에 비해 유지 보수가 쉽다.
  • 단점
    - 모바일 기기 자체의 기능을 활용할 수 없다.
    - 주소 검색, 링크 클릭 등의 과정이 필요해 번거롭다.
    - 네이티브 앱에 비해 속도가 느리고 안정성도 떨어진다.

모바일 웹 vs. 웹 앱

모바일 웹과 웹 앱 모두 모바일 화면에 맞게 구성했다는 점에서 같은 것 아닌가 느낄 수 있다. 하지만 이 둘은 구동 방식에서 차이점이 있다.

  • 모바일 웹: 풀 브라우저 방식
    화면 일부분이 변경될 때 화면 전체 내용을 서버에서 새로 받아오는 방식을 사용해 실행 속도가 느리다.
  • 웹 앱: 단일 페이지 방식
    최초 한 번 페이지 전체를 받아오고 변경이 필요한 부분만 업데이트하는 방식을 사용해 실행 속도가 빠르다.
profile
화이팅

0개의 댓글