Web
IT 개발 용어 정리하기
IT 개발에서 사용되는 용어를 정리하자
프리징이 뭔데?
최근에 자주 드나드는 개발자 커뮤니티 디스코드에서 개발자 지인이 아래와 같이 하소연했다.
“프리징 일정 안 알려주고 상사분들 다 퇴근하셨네… 기다리고 있었는데 아오~”
프리징이라는 용어가 생소해서 물어보니
코드 프리징
(Code Freezing)을 말하고 있었다. 비록 지금 개발자로 취업한 상태는 아니고 개발자가 아니어도 IT 관련 업계에서 일을 하기 위해 준비 중인 상태였기에 프로덕트 기획 및 개발 단계에서 사용되는 용어들에 대한 정리가 필요하다고 느꼈다.개발 용어에서는 바뀌지 않는 확실한 개념의 용어들이 있으나, 기획이나 프로젝트 단계에서 사용되는 용어에는 회바회, 팀바팀으로 사용하는 용어에 조금씩 차이가 있을 수 있다. 일반적으로 사용되는 용어와 개념 정리를 위해 찾아 보았다.
이미 알고 있는 용어도 많았지만 이 용어들을 한 문장으로 쉽게 표현할 수 있는가? 물어봤을 때 자신있게 Yes라고 답할 수는 없을 것 같다. 알고 있던 용어, 모르고 있던 용어 관계 없이, 순서 없이 정리했다.
용어 정리
Ctrl + F
로 용어를 검색할 수 있어요.
- last updated at 2024.06.14컴파일
Compile
- 개발자가 작성한 소스 코드를 컴퓨터가 이해할 수 있는 바이너리 코드로 변환하는 과정
- 컴파일러는 컴파일을 수행하는 언어 번역 프로그램을 의미
빌드
Build
- 소스 코드를 실행 파일로 변환하는 과정
- 개발자가 작성한 코드를 컴퓨터가 실행할 수 있는 형태로 만드는 과정
QA
Quality Assurance
- 소프트웨어가 요구사항을 충족하고 오류 없이 작동하는지 확인하는 품질 보증 과정
- 테스터가 앱을 사용해보고 버그를 찾아내는 과정
코드 프리징
Code Freezing
- 코드를 더 이상 수정하지 않는 상황을 통칭
- 소스 코드를 더 이상 개발하거나 수정하지 않는 단계
프리징
Freezing
- 개발 측에서는 코드 프리징을 의미하기도
- 운영 측에서는 서비스 혹은 프로그램의 작동 중지 혹은 먹통이 된 상태를 의미
- “DB 프리징 현상이 발생하고 있다.”
싸인오프
Sign-off
- 프로젝트나 작업이 완료되어 승인하는 단계
- 개발 팀이 코드 프리징된 이터레이션에 대한 테스트를 완료하고 PM이나 클라이언트가 이를 승인하는 과정
배포
Deployment
- 소프트웨어를 사용자가 사용할 수 있도록 실제 서버에 설치하는 과정
- 새 버전의 앱을 앱 스토어에 올리는 것
서브밋
Submit
- 보통 앱 스토어나 소프트웨어 저장소에 새로운 버전의 소프트웨어를 제출하는 것
릴리즈
Release
- 완성된 소프트웨어를 공식적으로 배포하는 것
- 개발이 완료된 앱을 사용자에게 공개하는 것
이터레이션
Iteration
- 개발 과정에서 하나의 ‘주기’를 의미
- 반복적으로 작업을 수행하면서 소프트웨어를 개선하는 작업
- 앱을 릴리즈하는 ‘주기’를 의미
- PM(Product Manager)이 주로 하는 일 중 하나로, 이터레이션을 관리하고 각 이터레이션에서 어떤 기능을 내보낼지 결정하는 작업
PM
Project Manager
,Product Manager
- 프로젝트 관리자는 프로젝트 전체 진행을 관리하는 역할
- 제품 관리자는 제품의 전략과 로드맵을 관리하는 역할
서버/클라이언트/API
Server
,Client
,API
- 서버는 데이터를 저장하고 처리하는 시스템
- 클라이언트는 서버에 요청을 보내고 데이터를 받아 사용자에게 화면을 제공
- API는 다른 소프트웨어와의 상호 작용을 위해 정의된 인터페이스
- 서버 ↔ API ↔ 클라이언트
스프린트
Sprint
- 일정한 기간 동안 특정 작업을 완료하기 위한 짧은 개발 주기
애자일
Agile
- 반복적이고 점진적인 작업 방식을 강조하는 소프트웨어 개발 방법론
- 문서 중심과 절차적인 개발 방식이 아닌 신속함과 고객 중심의 피드백을 통해 즉시 유동적으로 개발하는 개발 방법론
- 예시로 고객의 요구 사항이 자주 변할 때, 매 스프린트마다 기능을 조정하고 개발하는 과정
- 방대한 내용이므로 더 찾아보고 이해할 것
로드 밸런싱
Load Balancing
- 네트워크 트래픽을 여러 서버에 분산시켜 시스템의 안정성을 높이는 기술
- 많은 사용자가 동시 접속할 때 서버에 과부하가 오지 않도록 트래픽을 분산시키는 기술
레거시
Legacy
- 기존의 오래된 코드나 시스템으로 최신 기술로 대체되지 않은 시스템을 의미
컨테이너
Container
- 소프트웨어가 실행되는 환경을 표준화하여 어디서나 동일하게 실행될 수 있도록 하는 기술
- Docker를 사용해 개발 환경을 통일하는 예시
마이크로 서비스
Microservices
- 애플리케이션을 작은 독립적인 서비스들로 나누어 개발하는 아키텍처
- 하나의 큰 애플리케이션을 사용자 인증, 결제, 상품 관리 등 독립적인 서비스로 분리하는 것
SDK
Software Development Kit
- 특정 플랫폼에서 소프트웨어를 개발할 수 있도록 도와주는 도구 모음
- 안드로이드 앱 개발을 위한 Android SDK가 예시
마일스톤
Milestone
- 프로젝트 진행 중 중요한 시점이나 목표를 나타내는 지표
스테이크 홀더
Stakeholder
- 프로젝트에 영향을 받거나 영향을 미치는 모든 이해 관계자
- 고객, 팀원, 경영진 등 모두 포함
페르소나
Persona
- 타겟 사용자의 구체적인 프로필을 작성하여 사용자 요구와 행동을 예측하는 도구
- “30대 직장인 남성을 타겟으로 한 사용자 페르소나를 작성해보자.”
회고
retrospective
- 스프린트가 끝난 후 팀이 모여 무엇이 잘 되었고 무엇이 개선되어야 하는 지 논의하는 회의
- “특정 작업을 끝내거나 특정 활동을 끝낸 후 회고록을 작성해보자”
SI
System Integration
- 시스템 구현 업무 포지션
SM
System Management
,System Maintenance
- 기존에 만들어진 시스템을 운영하는 업무 포지션
컨벤션
Convention
- 코드 또는 문서를 작성할 때 팀 단위로 지켜야 하는 작성 규칙
하이브리드 앱
Hybrid App
- 모바일 환경에서 안드로이드 환경과 iOS 환경 모두에서 구동이 가능한 웹 애플리케이션
- 개발 비용이 적게 측정되는 것이 장점으로, 금융 혹은 쇼핑몰 등 많이 사용
디버깅
Debugging
- 디버깅 혹은 디버그
- 코드에서 오류를 찾고 그 원인을 알아내어 제거하는 과정
- 주로 프로그램 개발 마지막 단계에서 진행하며 디버깅 도구의 도움을 받음
SEO
Search Engine Optimize
- 웹 페이지를 구글 등 검색 엔진이나 포털 사이트의 기준에 맞추어 구성하는 작업
- 사람들이 많이 검색할 만한 키워드를 배치하거나 웹 표준을 지키고, 스팸으로 분류되지 않게끔 하는 등 웹 페이지가 더 많이 노출될 수 있도록 처리하는 작업
버그/에러/예외
Bug
/Error
/Exception
- 버그는 소프트웨어에서 발생하는 예견치 못한 오류나 오작동
- 에러는 일반적으로 사용자에게 발생하는 문제로 버그와 달리 외부에 있는 유저가 내부에서 정한 형식을 따르지 않을 때 주로 발생
- 예외는 에러가 일어날 가능성을 개발자가 미리 예상하고 프로그램이 비정상적으로 종료되지 않도록 처리하는 것으로, 예외 처리(Exception Handling) 또는 트러블 슈팅(Trouble Shooting)을 통해 예외를 구분하고 유저에게 에러 메시지를 띄워줌
트래픽
Traffic
- 서버를 통해 전송되는 데이터의 양
- 서비스의 방문자 수가 많거나 접속이 잦을 수록 트래픽은 증가함
스레드
Thread
- 프로그램을 실행하는 하나의 프로세스 내에서 실제로 작업을 처리하는 주체
- 모든 프로세스는 반드시 하나 이상의 스레드를 가짐
멀티 스레드
Multi Thread
- 하나의 프로세스가 두 개 이상의 스레드를 가지는 경우
- 프로세스 내 각각의 스레드가 프로세스 메모리를 공유하기에 자원을 절약할 수 있고, 스레드간 정보 교환이 쉽다는 장점을 가짐
도메인
Domain
- 숫자로만 이루어진 IP와 달리
www.dongho.xyz
와 같이 문자로 지정된 인터넷 주소 (URL)
DNS
Domain Name System
- 도메인을 도메인이 올라가 있는 웹 서버의 IP로 연결하는 시스템
- 웹 페이지 접속에 필요한 IP를 도메인으로 변환해주거나 반대를 처리해주는 역할
롤백
Roll back
- 현재의 상태가 유효하지 않거나 망가졌을 때 기존 상태로 되돌리는 행위
SWOT 분석
Strengths
,Weaknesses
,Opportunities
,Threats
- 내부 및 외부 환경을 분석하는 것에 사용되는 분석 방법론 또는 도구
- S: 자사와 자사 제품 및 서비스에 좋은 영향을 주는 내부 환경 요소
- W: 자사와 자사 제품 및 서비스에 악영향을 주는 내부 환경 요소
- O: 자사와 자사 제품 및 서비스에 좋은 영향을 주는 외부 환경 요소
- T: 자사와 제품 서비스에 악영향을 주는 외부 환경 요소
AS-IS/TO-BE
AS-IS
: 개선 되기 전의 상태를 의미하며 현재 돌아가고 있는 프로세스를 의미
TO-BE
: 개선 된 후의 상태를 의미하며 개선할 사항의 프로세스를 의미
포팅
porting
- 이식한다는 의미
- 특정 기능을 특정 프로그램에 포팅하라, 서버에 반영하라는 의미
밸리데이션
Validation
- ‘확인’ 혹은 ‘검증’한다는 뜻으로 웹 개발에서는 주로 타당성 체크를 의미
- 검사하거나 분석하는 방법이나 작업 경로 등이 적절한가 확인하는 등의 범용적 의미 포함
프런트 오피스
Front Office
- 금융권에서 고객을 접하는 창구 또는 딜링 업무를 하는 트레이닝 부서
- 혹은 그것과 관련된 업무를 의미
미들 오피스
Middle Office
- 프론트 오피스를 지원하고 통제하는 부서 또는 업무
백 오피스
Back Office
- 일선 업무 이외에 후방에서 일선 업무를 지원하고 도와주는 부서 또는 업무
벤더
Vendor
- 제품 판매인 혹은 판매 업체
- 물품을 공급하거나 판매한 제품에 대한 책임을 지는 곳을 의미
R&R
Role & Responsibility
- 역할과 책임을 의미하며, 담당자끼리 수행할 업무를 나누는 것
- “알앤알은 컨펌되고 진행되고 있는 건가요?”
아젠다
Agenda
- 회의나 토론에서 의제, 안건, 예정표, 의사 일정을 의미
- 개발 쪽이 아니어도 자주 사용하는 경제학 용어
스코프
Scope
- 범위라는 뜻으로 주로 프로젝트에서 수행할 작업의 범위와 그 내용
- “이번 이터레이션의 스코프는 웹사이트 리뉴얼 프로젝트의 소셜 로그인 기능입니다.”
페일오버
Failover
- 서버, 시스템, 네트워크 등에서 이상이 생겼을 때 예비 시스템으로 자동 전환되는 것을 의미
페일백
Failback
- 페일오버에 따라 전환된 서버, 시스템, 네트워크 등을 오류가 발생하기 전의 상태로 되돌리는 것을 의미
PoC
Proof of Concept
- 개념 증명으로 해석되나, 주로 IT에서는 신기술이나 도입 예정 프로덕트를 요구사항에 맞는지 검증하는 절차를 의미
PWA
Progressive Web App
- 모바일 기기에서 네이티브 앱(안드로이드, iOS)과 같은 사용자 경험을 제공하는 웹 앱
- 사용자가 앱을 다운로드하거나, 업데이트 할 필요없이 웹 브라우저를 통해 앱을 바로 사용할 수 있음
- 웹 페이지와 달리 오프라인에서도 작동할 수 있는 것이 특징으로, 캐시된 데이터를 사용하고 네트워크가 연결되면 새로운 데이터를 불러와 업데이트
- 푸시 알림, 카메라, 마이크 등 모바일 기기 자체의 기능을 사용할 수 있
RFP
Rquirement For Proposal
- 고객이 요구 사항을 비딩 시점에 제안할 때 사용되는 용어
- 이를 통해 업체 후보를 고르는 것을 의미
데브옵스
devOps
,development + operations
- 개발과 운영을 합친 것으로 개발과 운영을 따로 분리하지 않고 하나로 개발하는 방법론 중 하나
스토리보드
- 기획 팀에서 아이디어를 통해 화면에 어떤 방식으로 표시해 나갈 것인지 정리하는 기법
- 최근에는 Figma를 통해 작업할 수 있음
적응형 웹
Adaptive Web Design
- 미리 웹 브라우저가 동작할 디바이스별로 레이아웃을 여러 개 정해놓고 조건에 따라 그 중 하나를 보여주는 웹 디자인 방식
반응형 웹
Responsive Web Design
- 적응형 웹과 달리 하나의 레이아웃이 웹 브라우저에 맞추어지는 형태로, 웹 브라우저의 가로폭이 바뀔 때마다 페이지 내에 있는 콘텐츠의 크기와 배치도 자동으로 맞춰지는 웹 디자인 방식
인터랙티브 웹
Interactive Web
- 웹 페이지 내의 콘텐츠가 클릭, 스크롤, 입력 등 사용자의 동작에 따라 상호 작용하는 웹 페이
리팩토링
Refactoring
- 이미 완성된 코드의 구조를 개선하는 일
- 결과값을 바뀌지 않지만, 코드 내부를 뜨어고쳐 다른 사람이 이해하기 쉽고 간결하게 만드는 행위
- 버그를 고치거나 새로운 기능을 만드는 것은 아니나 코드 생산성을 높이고 유지보수가 쉽게끔 만듦
기술 부채
Technical Debt
- 불확실한 업무, 촉박한 일정에 맞추어 제한된 방법으로 개발을 진행하면서 문제점이 누적된다는 관점
- 프로젝트에 대해 정리된 문서를 마련하지 못하거나, 조악한 코드로 작업을 계속하게 되거나, 자동화할 수 있는 일에 대한 자동화 처리를 해놓지 않는 등 다양한 상황에서 기술 부채가 쌓일 수 있음
- 기술적으로 빚을 진다는 의미
- 완전히 피할 수 있는 일이 아닌 만큼 무작정 나쁘다고 볼 수는 없으며 관리할 수 있는 선에서 기술 부채를 유지하고 작업을 추진해나갈 필요가 있음
어? 😮
Uh?
- 개발 팀에서 자주 나오는 단어로, 이 단어를 귀로 들었다면 당황하지 말 것
- 주로 이 단어 사용을 금지하는 팀이 많음
마무리
업데이트
해당 문서는 계속 업데이트될 예정입니다.
Jun 14, 2024 문서를 작성했습니다.