[ 잡다구리 개발 용어 ]

carrotsman·2022년 4월 19일
308

개발실무

목록 보기
3/5

IT 실무 용어

IT는 참 이상하다. 개발 기술 자체는 명확한데 개발자들끼리 커뮤니케이션하다보면 말하는 방법도 다르고 단어도 다르다. 그래서 정리해봤다. 간지나는 실무 용어 정리다. 자료조사와 생각나는대로 이 게시글에 정리해볼 생각이다.


들어가며

요즘 댓글을 확인하며 조금 더 상세하게 작성해야겠다는 생각이 든다. 얏빠리 너무 방심해버린걸까나 ㅎㅎ 나 역시 개발자기 떄문에 확실한 정보를 추구한다. 그런 의미에서 잘못된 정보에 대한 지적은 언제나 환영이다. 자 그럼.. 이쿠죠..

지구의 모든 개발자들아! 나에게 힘을줘!..


인프라


인프라

IT 리소스, 시스템, 플랫폼, 환경을 제어하는 인력으로 대부분 하드웨어나 CI/CD 관리를 한다.

DevOps

Development + Operation 개발과 운영을 결합해 탄생한 개발 방법론으로 개발 운영 둘다 하란 뜻이다.

컴파일

컴파일이란 소스 A > B로 변환하는 작업을 말한다. 우리가 Java, C#로 코드를 짜봤자 컴파일이 없다면 컴퓨터는 해당 소스를 실행시키지 못한다. 한마디로 기계어로 변환하는 작업을 말한다.

인터프리터

인터프리터는 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 한 줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램으로 모든 소스를 번역해 결과파일을 만들어내는 방식의 컴파일과 다르게 줄단위 실행으로 초기 속도는 빠르나 성능상 컴파일 프로젝트보다 낮다.

빌드

여러 개의 소스를 1개의 실행 파일로 패키징하는 작업으로 컴파일언어의 경우 내부에 컴파일 프로세스가 포함되어있다.

배포

빌드된 실행 바이너리를 실행할 수 있는 환경에 업로드하는 것을 말한다. 우리가 이거할라고 똥꼬쑈한다고 생각하면 된다.

CI/CD

애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 릴리즈하는 방법으로 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포다. 그니까 개발 이후에 똥꼬쇼할 필요없이 웹 서버 안내리고 자동화된 배포와 파일 병합등을 제공하는 것을 말한다.

취약점

취약점은 공격자가 시스템의 정보 보증을 낮추는데 사용되는 약점이다. 한마디로 해커들의 공격인데 언제나 늘 새로운 방법으로 우릴 짜증나게한다. 제품 경쟁시 취약점 처리 여부도 포함되어있다. 검수 전에 처리 안되면 위약금 오지게 내는 경우가 발생하니 주기적으로 취약점 추적 및 예방이 필요하다. 만들었다고 끝나는게 아니라고

DNS (Domain Name Server)

특정 이름으로 웹 서버의 IP로 연결하는 시스템이다. 네이버도 모두 고유의 IP를 가진 웹 서버를 운용할 것이다. 가시적으로 보이기 위해 www.naver.com 이라는 도메인으로 서비스를 제공하는 것이다.

NAC/NAT/NAS

다 네트워크와 관련있는 개념이다. NAC과 NAT은 보안에 해당하고 NAS는 네트워크 스토리지를 뜻한다.

  • NAC (Network Access Control) : 엔드포인트 보안 기술, 사용자 또는 시스템 인증 및 네트워크 보안을 통합하는 보안 접근 방식
  • NAT (Network Address Translation) : 사설 IP를 공인 IP로 변환해주는 서비스
  • NAS (Network Attched Storage) : 네트워크 환경 데이터 스토리지

프로토콜

컴퓨터끼리 데이터 송수신을 위해 사용하는 규약으로 다음과 같은 종류가 있다.
이 정도만 알아도 실무에서 어버버대진 않는다. (프로토콜의 종류와 포트에 대해서는 다른 글에서 다루겠다.)

  • HTTP/HTTPS (Hyper Text Transfer Protocol)
  • FTP/TFTP/SFTP (File Transfer Protocol)
  • SNMP (Simple Network Management Protocol)
  • SMTP (Simple Mail Transfer Protocol)
  • POP3 (Post Office Protocol)
  • ICMP (Internet Control Message Protocol)
  • IGMP (Internet Group Management Protocol)
  • DHCP (Dynamic Host Configuration Protocol)
  • ARP (Address Resolution Protocol)

SSL (Secure Socket Layer)

전송 계층 보안는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약이다. 간단하게 HTTPS를 적용하기 위해 SSL 인증서를 적용해야된다. 정도로 이해하고 넘어가자. 이거 설명할라면 글 따로 써야된다.

VPN

가설사설망으로 VPN 네트워크에 접속하게 되면, 외부에 있는 컴퓨터라도 내부 네트워크에 접속해 있는것처럼 이용할 수 있다. 그니까 외부에서 내부 인트라넷 네트워크에 접근하려면 이 VPN을 사용해야된단 얘기다.

트래픽

인터넷 트래픽은 인터넷을 경유하는 데이터의 흐름이다. 당신이 입사해서 트래픽 많이 발생하는데? 라는 말을 듣는다면 해당 서버로 사람들이 오지게 들어오고 있구나 이해하면 된다는 뜻이다.

로드 밸런싱

부하분산 또는 로드 밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 한마디로 대규모 서비스를 제공하는데 서버 1대만 뭐빠지게 일하면 힘드니까 비율을 정해 서버의 트래픽을 분산하는 것을 말한다.

이씨투

아마존 AWS Elastic Compute Cloud의 약자 EC2를 말하는 것. 그냥 AWS에서 제공하는 클라우드 가상 컴퓨팅 시스템을 말하는 것이다.

MSA

MicroService Architecture의 줄임말로 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법, 분업과 책임전가에 제격임

스테이징서버

운영환경에 적용하기 전에 확인하는 서버로 불안감이 많은 한국인들에게 무조건 적으로 필요한 서버다. 운영환경과 동일한 설정을 기반으로 완전히 배포되기 전 오류가 없는지 검토하기 위한 서버

핫픽스

'와 이거 지금 이대로 나두면 X된다' 싶은 오류를 즉각적으로 처리하기 위해 긴급 배포하는 것을 말한다.


개발


프론트 엔드

HTML, CSS 및 JavaScript를 사용하여 웹 사이트의 그래픽 사용자 인터페이스를 구현하는 개발이다.

백 엔드

프론트 엔드에 있는 사용자들이 하고자 하는 행동을 처리하는 것으로 로그인, DB 작업 등 뒷단 기능을 구현하는 개발이다.

풀스택

프론트 엔드 + 백 엔드 둘다 가능한 스펙

SDK (Software development kit)

개발 도구의 집합으로 Java의 JDK를 말한다. 그냥 어떤 언어를 사용해서 코드를 짤때 코딩을 위한 바이너리 패키지를 SDK라고 하는 구나 정도로 이해하면 된다. 이거 빠삭하다고 직장 안바뀐다.

CRUD

씨알유디라고 불리는 데 우리가 게시판을 만들어도 CRUD 기능을 전부 포함하고 있다. C는 create, R은 read, U는 update, D는 delete를 뜻한다.

버그

말그대로 벌레, 실행 중 발생하는 오류를 말하며 소스를 벌레처럼 짜면 버그가 발생한다.

디버깅

말그대로 벌레잡이, 벌레가 발생한 원인을 찾기위한 절차로 님들 취직하면 한평생해야되는 것이다.

예외처리

이타치 빙의해서 오류가 발생할 상황을 미리 예측하고 예방해놓는 코딩방식으로 비정상적으로 종료되지 않도록 하기 위해 하는 작업이다. 이거 잘해놓으면 간지남 좀;

스냅샷

스냅샷은 여러 방면에서 살짝 다른 의미를 갖고 있는데 특정 시간에 데이터 저장 장치의 상태를 별도의 파일로 저장하는 것을 말하며 스냅샷 기능을 이용하여 데이터를 저장하면 유실된 데이터 복원과 일정 시점의 상태로 데이터를 복원 가능하다.

연결 오류가 뜨는 경우 네트워크가 연결됐는지 확인해야 될 때가 있는데 그때 '해당 서버로 핑날려봐' 라는 멘트를 듣게된다. cmd창에서 ping 대상IP 명령어를 입력해 트래픽 송신 정보가 정상적으로 찍히면 연결된 것이다.

모듈

이게 진짜 개발자별로 의미가 상이한 단어 중하난데, 정말 포괄적으로 많이쓰이는 단어다. 원래 모듈이란 프로그램을 구성하는 요소의 일부로 단위 기능을 뜻한다. 근데 라이브러리나 서드파티 모듈등을 전부 모듈이라 칭해서 이건 좀 눈치가 있어야한다.

런타임 환경

특정 프로그램의 구동환경을 말하는 것이다. Javascript의 nodeJS와 같은 개념이라고 생각하면 된다.

  • eojin 님이 좋은 글을 남겨주셨습니다.


프레임워크와 라이브러리

  • 먼저 프레임워크는 다양한 의미에서 해석될 수 있는데 크게 정리해보면 프로젝트의 구조, 즉 뼈대에 해당하는 녀석으로 프로젝트를 구축함에 있어 많은 기능을 포함하고 있다.
  • 라이브러리는 특정 기능 함수 집합으로 특정 기능을 구현할 때 그 기능에 해당하는 라이브러리를 추가해 개발 시간을 줄일 수 있다.

! 프레임워크와 라이브러리의 차이는 프로젝트나 기능을 구축함에 있어 제어권이 어디에 있느냐의 차이다. 라이브러리는 참조하여 개발자가 객체를 만들고 제어하지만 프레임워크는 객체에 대한 정보만 설정해놓으면 프레임워크가 알아서 처리하는 구조를 띈다. 부트스트랩, react, vue, angular와 같은 녀석들은 프레임워크로 분류되고 Jquery, D3, PDF 등등 솔루션을 더 풍부해지게 도와주는 짜바리들을 라이브러리로 분류된다.

  • 여기서 하나 대두되는 이슈가 react는 라이브러리인가 프레임워크인가다. react 공홈에 가보면 라이브러리라고 못박혀있다. 컴포넌트의 호출이나 정의 방식이 지정되있지 않기 떄문에 라이브러리라 하는 사람이 있고 어찌됐건 react가 우리가 작성한 컴포넌트를 호출하고 state, props 같은 규칙이 존재하기 떄문에 프레임워크라 말하는 사람이 있다고 한다. 난 프레임워크에 가깝다고 생각햇는데 공홈에서 라이브러리라니까... 할말이 없다 ㅎㅎ 만든 애들 말이 맞겠징 ㅎㅎ

서드파티

하드웨어나 소프트웨어 등의 제품을 제조하고 있는 주요 기업이나 그 계열 회사 또는 기술 제휴를 하고 있는 기업이 아닌 제3자 기업을 부르는 말이다.

하드코딩

상수나 변수에 들어가는 값을 소스코드에 직접 쓰는 방식을 말한다. 보통 개발할 때는 입력 값을 받던지 전달받는 구조를 많이 띄는데 그냥 "" 형태로 코드에 대놓고 쳐박는걸 말한다. 이게 많을 수록 프로그램은 유연하지 못한 구조를 띄게되는데 필요한 상황이 꼭 생긴다.

마크업

우리가 일상적으로 보는 태그로 시작해서 끝나는 형태를 말하는데 HTML, XML의 뒤에 ML이 마크업 랭귀지의 약자다.

마스킹

프로그래밍에서는 개인정보 보호를 위한 하나의 보안과정을 의미하는데 예를 들어 주민등록번호의 뒷자리를 * 문자로 치환하는 것을 마스킹이라 한다.

파싱

이것도 많은 의미로 사용될 수 있는데 쉽게 말해서 2가지 정도로 구분하여 설명할 수 있겠다.

  • 데이터 형 변환 (String > int)
  • A형태의 데이터를 재조립하여 B형태 데이터로 변환 (A > B)

비즈니스 로직

어떤 기능을 수행하는 실질적인 코드를 말한다. 자바 스프링으로 예를 들어보면 컨트롤러에 비즈니스 로직을 구현하는 것은 바람직하지 않다. 이런 멘트를 본적이 있을 것이다. 이것은 컨트롤러는 클라이언트와의 연결점 역할만 하고 실제 실행하는 코드는 서비스에 구현하라는 얘긴데 말그대로 실제 실행하는 코드를 비즈니스 로직이라 칭한다.

웹 표준

웹 표준이란 브라우저 종류 및 버전에 따른 기능 차이에 대하여 호환이 가능하도록 제시된 표준이다. 아직도 IE쓰는 원시인들을 위한 정책이다.

크로스브라우징

웹 서비스 프로그램이 최대한 많은 종류의 웹 브라우저에서 정상적으로 작동하게 구현하는 방법론이다. 보통 구형 IE에서 가장 많은 문제가 나타나는데 이런 구석기 브라우저도 지원 가능하게 개발 방법론이다.

IDE (Integrated Development Environment)

통합 개발환경의 줄임말로 개발자들 출근하면 항상 키는 인텔리제이, 이클립스, 비쥬얼스튜디오등을 통칭하는 단어다. 코딩, 디버깅, 빌더, 형상관리 부가기능 등이 포함되어 있다.


프로젝트


스토리보드

어떤 기능에 대해 어떤 순서로 어떻게 동작할 것인가를 정리한 문서로 기획팀이 UX를 적용시켜 내놓은 결과물이다. 중요한것은 이대로 짜줘도 바꿔달라함

PL/PM

PL은 Project Leader를 말하고 PM은 Project Manager를 말한다. 보기엔 PL이 더 높아보이지만 PL은 특정 파트의 리더 역할로 하나의 프로젝트의 수많은 PL이 있다. 개발 PL, UI/UX PL.. 뭐 등등 PM은 총괄자인데 프로젝트 일정이나 인원 배분 등 프로젝트의 결정자 역할을 한다. 한마디로 PL은 골목대장, PM은 지역구 짱이다.

SI (System Integration)

SI는 기업이 필요로 하는 서비스 시스템을 기획부터 개발, 구축 등 모든 서비스를 제공하는 사업 형태로 쉽게 말해 그냥 외주나가서 갑질당하고 줘뺑이치는걸 말한다.

SM (System Maintenance)

SI 프로젝트가 끝난 뒤 해당 시스템에 대한 유지 보수 사업으로 SI보단 윤탄한 삶을 보장받을 수 있지만 이후 이력서 포트폴리오에 쓸게 없어진다.

AS-IS, TO-BE

AS-IS는 변경되기 전, 현 상황이고 TO-BE는 어떻게 바뀌겠다 지향점을 말한다. 그니깐 AS-IS는 이래서 문젠데~ TO-BE 어떻게 개선할 것이다~ 라는 건데 한마디로 판타지다.

TFT

Task Force Team의 약자로 특정 프로젝트 진행시 임시로 구성된 팀을 말한다. 말이 좋아서 TFT지 회사에 노는 인력 끌어다가 프로젝트하는 인력사무소 느낌이라 보면 된다.

WBS

Work Breakdown Structure, 직역하면 작업 분할 구조로 개발 일정, 업무 사항을 분류하여 일정을 관리하기 위한 문서다. 각 담당자들은 자신의 업무가 전체적으로 나아가는 방향에 대해서 스스로 일정을 확인할 수 있고 전체적인 업무 파악에도 도움을 준다. 이것도 그냥 성과 책임제를 위한 장치다. '몇일까지 하기로 햇는데 해냈다/못했다' 를 한눈에 볼 수 있기 때문에 성과 분석에 있어 아주 유용한 녀석이니 조심하자

스토리 보드

기획자가 구성해놓은 화면 설계서로 이 버튼 누르면 어디 페이지로 이동하고 이 버튼 누르면 로그인되고 이런걸 명시해 놓은 문서다. 스토리 보드를 토대로 프로젝트를 구현한다.

UI/UX

UI는 User Interface 즉 우리가 보는 화면이고 UX는 User eXperience 사용자의 경험 정보를 말한다. 즉 어떤 버튼을 눌렀을 때 어떻게 작동해야 사람들이 가시적으로 이해하고 넘어가겠는가가 UX다.

GUI

Graphic User Interface 말그대로 그래픽 기반 UI다. 우리 눈알에 들어오는 그거

Man-Month

Man-Month란 월간 인력 투입 규모 비용을 산정하는 단위로 어떤 개발을 함에 있어 몇 맨먼스가 든다. 이런식으로 표현하는데 그냥 머릿수, 개월수 세서 얼마나 걸리는지 간지나게 표현하기 위해 사용한다.

CRM

소비자들을 자신의 고객으로 만들고, 이를 장기간 유지하고자 하는 경영방식이며 기업들이 고객과의 관계를 관리, 고객 확보, 그리고 고객, 판매인, 협력자와 내부 정보를 분석하고 저장하는데 사용하는 광대한 분야를 아우르는 방법이다. 솔직히 이전 회사에서 연차쓸때 말고 들어가본 적이없음

ERP

경영 정보 시스템의 한 종류로 전사적 자원 관리는 회사의 모든 정보 뿐만 아니라, 공급 사슬관리, 고객의 주문정보까지 포함하여 통합적으로 관리하는 시스템이다. 그니까 회사에 경영정보라던지 자원을 모니터링하는 솔루션이라고 보면 된다.

ESM

통합보안관리(ESM)는 방화벽, 침입탐지시스템(IDS), 침입방지시스템(IPS), 가상사설망(VPN) 등의 보안 솔루션을 하나로 모은 통합보안 시스템을 말한다.

SIEM

조직 애플리케이션, 보안 장치와 호스트 시스템에 의해 생성되는 로그 및 이벤트 데이터를 수집하고, 그 데이터를 하나의 중앙 집중식 플랫폼으로 통합하는 방식으로 ESM에서 확장된 방식이다.

리팩토링

기능 변경없이 원래 구현된 코드를 깔끔하게 정리하는 절차를 말한다. 이거 하다보면 진짜 코드 개같이 짜는 애들 많음;;

마이그레이션

이것도 어떤 상황에 사용되냐에 따라 의미가 조금 상이한데 그냥 기존 운영환경 A에서 B로 옮기는 작업이라고 생각하면 된다. 보통 운영 환경이나 플랫폼, 데이터 마이그레이션등이 있다.

페일오버/페일백

  • 페일 오버는 서버나 시스템, 네트워크 문제가 발생했을 때 예비 시스템을 자동 전환되는 기능을 말함. 이 때 사람이 수동으로 전환하면 '스위치 오버'라고 함.
  • 페일 백은 페일 오버로 자동 전환된 시스템을 기존 상태로 돌려 놓는 것을 뜻함.

헬스체크

서버나 네트워크가 정상 작동하는지 모니터링하는 것을 뜻함. 그냥 인간 건강검진정도로 생각하면 쉬울 듯?

코드 리뷰

프로젝트에 참여한 인원들의 코드를 점검하는 절차로 공개적 개쪽을 주기위한 자리다. 글게 첨부터 좀 꼼꼼히 잘해라


기타 짜바리


모니터링

대충 주의깊게 행동을 지켜보는 행위를 말한다. 감시지 감시


정리하며

개발 풀이 커질 수록 용어는 늘어만 갈 것이다. 이 게시 글의 수정이 멈추는 날, 나도 치킨을 튀기겠지..

오늘 저녁은 BBQ치킨이다. 🥕


참고 : https://whales.tistory.com/22 https://m.blog.naver.com/acornedu/221519913222
profile
당근먹고 강력한 개발

19개의 댓글

comment-user-thumbnail
2022년 4월 24일

표현이 시원시원해서 좋네요 ㅋㅋㅋ 🔥

1개의 답글
comment-user-thumbnail
2022년 4월 25일

react 라이브러리 아닌가요?? 라이브러리로 알고 있는데..

1개의 답글
comment-user-thumbnail
2022년 4월 25일

출처 남기고 정보좀 담아가도 될까요 ?

1개의 답글
comment-user-thumbnail
2022년 4월 26일

작성해 주신 '런타임' 항목은 엄밀히는 "런타임 환경"에 대한 설명 같습니다. nodeJS는 javascript를 실행하는 과정이 발생하는 '환경'이거든요. 뭔가 show를 하는 동안이 showtime, 컴파일을 하는 동안의 과정이 컴파일타임, 컴파일된 프로그램이 돌아가는(running) 동안의 시간과 과정, 동작을 두루 일컫는 말이 runtime. 이 정도로 이해하시는 게 좀더 정확할 듯합니다.

2개의 답글
comment-user-thumbnail
2022년 4월 26일

치킨까지 완벽한데요?

1개의 답글
comment-user-thumbnail
2022년 4월 27일

표현력이 좋으셔서 잘 읽히네요 😆 하트 눌러 놓고 종종 보러 오겠습니당근 🥕

1개의 답글
comment-user-thumbnail
2022년 4월 29일

좋은 글 감사합니다 :)

1개의 답글
comment-user-thumbnail
2022년 4월 29일

너무 소중한 정보 감사합니다 ㅎㅎ

1개의 답글
comment-user-thumbnail
2023년 6월 5일

개발 공부 중입니다 덕분에 헷갈리는 단어들의 정의를 이해할 수 있게 되었어요 좋은 게시글 감사합니다 !

답글 달기