반응형
게임 회사에 인턴, 신입 사원으로 들어가면 업무에 관한 여러 단어가 실린 용어집을 받는다.
열성적인 게이머가 게임을 업으로 삼기 위해 게임사에 출사표를 던지기도 하지만 '캔디크러쉬사가', '꿈의 집' 등 메이저한 캐주얼 게임 정도만 가볍게 플레이해본 지원자도 적지 않다. 상황이 이렇다 보니 회사가 나눠주는 용어집에는 '몬스터', '인벤토리'처럼 게이머라면 누구나 알 법한 내용들이 가득하다.
기초적인 단어는 원활한 의사소통의 밑거름이다. 그러나 이것만 안다고 능사는 아니다.
실제로 나는 어릴 때부터 꽤 열심히 게임을 즐겨왔고 개발 용어도 조금은 알고 있다 생각했다. 그런데 막상 입사해보니 생전 처음 듣는 말이 사방에서 쏟아졌고 그런 단어는 교육 자료에 담겨있지 않았다 🥺
아래는 실무 중 개발자, 테스터들과 대화하기 위해 익힌 넓고 얕은 개발 용어 및 지식들이다. 아직 배울 게 산더미처럼 많긴 하지만!
개발
- API (Application Programming Interface)
애플리케이션들이 서로 상호작용할 수 있도록 매개체 역할을 하는 인터페이스. - SDK (Software Development Kit)
소프트웨어 개발 도구 모음. 운영 체제, 소프트웨어등을 위한 프로그램을 만들 수 있도록 제공되는 일련의 툴. - SQL (Structured Query Language)
데이터베이스 시스템에서 정렬, 탐색을 활용해 자료를 전문적으로 처리하는 데 쓰이는 언어. - 나스 (Network Attached Storage, NAS)
네트워크 결합 스토리지. 회사 등에서 인터넷을 통해 데이터를 주고받는 저장 장치다. - 데이터베이스 (Database, DB)
여러 사람이 공유 및 사용할 목적으로 통합, 축적, 관리하는 데이터의 집합. - 라이브러리 (Library)
소프트웨어 개발에 쓰이는 함수, 기능의 집합. - 리팩토링 (Refactoring)
겉으로 보이는 변화 없이 내부 구조를 개선하는 작업. 유지보수의 의미도 지니고 있기 때문에 가독성을 높이는 데 초점을 둔 클린 코드보다 상위 개념. - 매트릭 대시보드 (Metric Dashboard)
데이터를 시각화하여 분석, 모니터링에 도움을 주는 오픈소스 분석 도구. 그라파나 (Grafana), 키바나 (Kibana)가 대표적이다. - 프론트엔드 개발자 (Front-end Developer)
유저가 직접 마주하는 웹 페이지 화면, 클라이언트 영역 등 서비스의 앞단을 담당하는 개발자. - 백엔드 개발자 (Back-end Developer)
유저에게 보이지 않는 서버 영역 등 서비스의 뒷단을 담당하는 개발자. - 풀스택 개발자 (Full-Stack Developer)
프론트엔드, 백엔드 기술을 모두 이해하고 다룰 수 있는 개발자. - 컴파일 (Complie)
개발자가 작성한 코드를 기계어로 번역하는 것. - 빌드 (Build)
컴파일된 내용을 모아 실행 가능한 파일로 만드는 것. - 서버 (Server)
서비스 제공자. CPU, 하드 디스크, 주변 기기 등의 자원을 공유한다. - 소프트웨어 생명 주기 (Software Release Life Cycle)
소프트웨어 개발 단계의 총체. 일반적으로 프리 알파 → 알파 (Alpha) → 베타 (Beta) → RC(Release candidate) → 출시 순. 참고로 나이틀리(Nightly)는 이슈를 해결하거나 콘텐츠를 업데이트하기 위해 매일매일 배포되는 버전이다. - 인터넷 데이터 센터 (Internet Data Cenger, IDC)
수많은 서버가 입주하고 있는 물리적 공간이자 해당 서버들이 문제없이 동작하도록 관리해주는 서비스. - 애저 (Azure)
마이크로소프트에서 제작한 클라우드 컴퓨팅 플랫폼. - 오픈소스 (Open Source Software)
누구나 자유롭게 확인, 수정, 배포할 수 있는 코드. - 커밋 (Commit)
버전 관리 프로그램 깃(Git)에서 버그 수정, 기능 추가 등 의미 있는 변화를 데이터베이스에 기록하는 것. - 클라이언트 (Client)
서비스 요구자. 네트워크 통신을 활용해 서버에 접속하고 서버에 붙어있는 데이터베이스를 활용한다. - 통합 개발 환경 (Integrated Development Environmnet, IDE)
소프트웨어 개발과 관련된 모든 작업을 처리할 수 있는 소프트웨어. 비주얼 스튜디오 (Visual Studio), 이클립스 (Eclipse), 라자루스 (Lazarus) 등을 예로 들 수 있다. - 프레임워크 (Framework)
소프트웨어를 개발하기 위한 요소, 규약을 제공해주는 소프트웨어. - 플러그인 (Plug-in)
특정 기능을 해결하는 데 사용하기 위해 미리 만들어놓은 코드, 데이터. - 햄버거 버튼 (Hamburger button)
햄버거와 닮은 버튼. 대체로 인터페이스 최상위 모퉁이에 위치하며 선택 시 메인 메뉴가 나타난다. - 라디오 버튼 (Ratio Button)
옵션 단추로도 불리는 버튼. 유저가 다수의 선택 사항 중 하나를 선택할 수 있다. - 토글 (Toggle)
오로지 두 가지 선택지만 있는 상태에서 하나의 설정 값으로부터 다른 값으로 전환하는 스위치.
QA
- 개발 QA (Game dev QA)
개발 전 과정에 걸쳐 소프트웨어가 기획서에 맞게 구현되었는지 확인하고 버전을 관리하는 것. - 퍼블리싱 QA (Publishing QA)
후작업 과정에서 테스트 케이스를 바탕으로 소프트웨어를 검수하는 것. - 서비스 QA (Service QA)
운영 단계에서 유저에게 안내할 내용이 잘 반영되었는지 살펴보고 유저의 제보를 확인 및 내부 전달하는 것. - 기술 QA (Technical QA)
소프트웨어가 기획서에 맞게 구현되었는지 기술적인 내용을 테스트하는 것. - 펀 QA (Fun QA)
소프트웨어가 유저에게 즐거움을 줄 수 있는지 경험, 데이터, 알고리즘 등을 통해 테스트하는 것. - 기능 테스트 (Functional Test)
시스템이 기획서에 명시된 바와 같이 작동하는지 확인하는 테스트. - 스트레스 테스트 (Stress Test)
동시 사용자 수 등으로 인한 부하를 늘려가며 기능 및 성능을 확인하는 테스트. 부하 테스트라고도 한다. - 통합 테스트 (Integration Test)
통합된 시스템 사이의 상호작용, 관련 인터페이스의 결함을 확인하는 테스트. - 애드혹 테스트 (Ad-hoc Test)
공식적인 테스트 절차 없이 임의적으로 수행하는 비공식 테스트. - 샘플링 테스트 (Sampling Test)
전수검사에 어려움이 있는 경우 전체에서 임의의 샘플을 뽑아 확인하는 테스트. - 버그 (Bug)
예기치 못한 오류나 오작동. - 오류 (Error)
유저가 입력한 내용이 요구 사항과 다를 때 발생하는 외부적 문제. - 예외 (Exception)
오류를 미리 예측해 소프트웨어가 비정상적으로 동작하지 않도록 예방하는 것. - 버그 트래킹 시스템 (Bug Tracking System, BTS)
프로젝트 관리와 버그 추적을 위해 사용하는 도구. 지라(JIRA), 레드마인(Redmine), 아사나 (Asana) 등이 대표적이다. - 테스트 시나리오 (Test Scenario)
소프트웨어의 어떤 기능을 테스트할지 기술하는 것. - 테스크 케이스 (Test Case)
테스트 시나리오 속 기능을 어떻게 테스트할지, 기대 결과가 무엇인지 자세히 기술하는 것.
놀랍게도 아직도 헷갈리는 것들이 있었다. 까먹으면 다시 봐야지 😅
반응형