본문 바로가기
개발자 일기/기록

간단한 용어 정리

by MS_developer 2024. 3. 1.

11월 회고를 적고 블로그를 방치(...)한 지 3개월이나 지나버렸다.

 

여전히 회사일은 바쁘고 자기계발할 시간이 모자라다... 취업 전에는 짬짬이 블로그 활동을 이어나갈 수 있다고 생각했는데... 쉽지 않다 🥲

 

오래간만에 여유로운 주말이기도 하고, 블로그 활동도 이어가기 위해 잠시 업무 과정에서 찾아보았던 간단한 용어들을 정리해보려고 한다.

 

SI(System Integration)

 

현재 다니는 회사는 SI를 주력으로 하고 있는 IT 개발사이다.

 

처음 회사에 들어와 업무에 대해 배울 때, 누군가 SI가 무엇이냐고 물어본다면 명확히 설명하기 어렵다는 것을 자각했다.

 

"외주나 하청 맡아서 앱이나 웹사이트를 만들어주는 업무"라고 간략하게는 대답할 수 있겠지만, 이것이 SI의 정확한 정의가 맞을까?

 

용어의 정의를 찾아보니 크게 틀리지는 않았지만, 그렇다고 명확한 정의가 아니라는 생각이 들었다.

 

개인적으로 2021년 잡코리아에서 포스팅한 SI와 SM 업무의 차이 포스팅에서의 SI에 대한 정의가 크게 와닿았다. 기획 - 개발 - QA 과정을 거쳐 '시스템을 구축하는 업무'라는 말이 가장 잘 어울리는 것 같다.

 

개인적으로 SI 업무의 가장 큰 장점은 '커뮤니케이션 역량 강화'에 있다고 생각한다.

 

개발 업무, 특히 SI의 경우 빠른 속도로 개발해야하다보니 기획자 - PM(Project Manager) - 디자이너 - 개발자 간의 상호 소통이 원활하게 이루어지지 않으면 병목현상이 발생한다.

 

이러시는 이유가 있을 것 아니에요...

 

개발자의 입장에서 처음 겪을 때는 정말 혼란스러운 일련의 과정이다.

 

미친 듯이 바쁘고 기한 맞추기도 빠듯한데, 중간중간 커뮤니케이션이라니? 하지만 이 과정을 거치지 않으면 해야할 업무가 과도하게 늘어나는 현상이 발생하기 때문에, 개발자로서 활발하게 소통에 참여해야 한다. 

 

소통의 주요 주제는 '개발자로서 불가능하거나 오래 걸리는 업무'인데, 이는 식당의 메뉴마다 독이 들었는지 안 들었는지 확인하는 과정과 같다. 통상 기한 관련된 부분은 PM이 맡아서 진행하지만, 현재 내 업무 능력과 효율은 본인이 가장 잘 알기 때문에 목소리를 높여야 한다.

 

그렇지 않으면...

 

 

 

SM(System Management)

 

SI와는 다른 개념의 SM은 '시스템을 유지/보수하는 업무'라고 할 수 있겠다.

 

현재 회사 내 프로젝트에서도 고도화 과정을 거치고 있거나, 앱 런칭은 되었으나 추가적인 유지 및 보수가 필요한 시스템들을 가리킬 수 있을 것 같다.

 

실직적으로 SM 관련 업무는 많이 해보지 않았지만, '선택과 집중'과 같은 느낌이다.

 

SI보다 호흡 자체가 길기 때문에 특정 기술 스택에 대해 더 높은 이해도를 가질 수 있다고 생각한다.

 

보일러 플레이트(boilerplate)

 

 

개발에서의 보일러 플레이트(또는 보일러 플레이트 코드)란 '큰 변경 없이 반복적으로 재사용되는 코드'를 뜻한다.

 

실제 유래는 1890년대에 미국에서 신문사들이 출판 시 반복적으로 사용되는 문구(주로 광고)들을 미리 준비해 놓은 인쇄판이라고 한다. 

 

SI 회사의 경우 다양한 프로젝트를 진행하고 기본 설정 과정에서 유사한 설정이 많아 이러한 용어를 쓰이게 되는 것 같다. 

 

현재 회사에는 조금 다른 느낌으로 쓰이고 있는데, 보통 '보일러 플레이트 준비해 놓을게요.'라고 하기 때문이다. 이는 기본 뼈대 또는 골자를 준비해 놓는 부분으로 들렸고, 실제로 보일러 플레이트가 준비된 프로젝트는 크게 다르지 않게 보였다.

 

하지만 보일러 플레이트의 의미를 명확히 알고 생각해 보면 재사용이 가능한 코드들을 공유해 준다는 얘기였고, 이를 프로젝트의 성격에 맞게 변형해 사용하는 것으로 보인다.

 

개인적으로 이 부분이 약간 아쉬웠는데, SI가 주력인 회사다 보니 보다 체계적으로 관리된 보일러 플레이트 코드가 있으면 참 좋겠다는 생각을 했다. (사이드 프로젝트로 하기에 좋아 보인다...!)

 

에일리어스(alias)

 

에일리어스는 개발을 하다 보면 이곳저곳에서 흔치 않게 볼 수 있는데, 명확한 정의를 알지 못해 늘 그 명확한 정의가 뭔지 궁금했다.

 

에일리어스란 개발 코드에서 중복적인 이름을 사용할 때 구분하기 위해 사용되는 일종의 "별명"과 같다.

 

통상적으로 사용되는 예시는 아래와 같다.

 

import {Button as AppButton} from './another-file';

export default function App() {
  return (
    <div>
      <AppButton />
    </div>
  );
}

 

같은 코드들이 반복적으로 있다 보니 자주 사용하고 있던 부분이다.

 

하지만 무분별한 사용은 조심하자. 반복적인 사용은 코드의 통일성을 떨어뜨려 어떤 코드를 가져와 명명했는지 헷갈릴 수 있다.

 

전설의 그 짤



이 외에도 더 다양한 용어가 있겠지만, 당장 생각나는 것은 이 정도인 것 같다.

댓글