서버와 IT용어(컴파일 & 링크 & 빌드)

단비·2023년 4월 26일
0

학습

목록 보기
22/66

서버

  • '제공한다'는 뜻을 가진 'serve'에 사람이라는 뜻을 나타내는 'er'을 붙인 단어
  • 클라이언트의 요청을 받으면 서비스, 데이터를 제공하는 컴퓨터 혹은 프로그램



SaaS(Software as a Service)

  • 사용자 클라우드 서비스
  • 서비스 소프트웨어, 클라우드 환경에서 운영되는 어플리케이션

Paas(Platform as a Service)

  • 개발자 클라우드 서비스
  • 운영을 위한 플랫폼 서비스를 제공

IaaS(Infrastructure as a Service)

  • 개발자 클라우드 서비스
  • 서버, 스토리지, 네트워크 장비 등 IT 인프라 대여

MOU(Memorandum Of Understanding)

  • 정식 계약을 체결하기 전에 당사자들끼리 논의한 내용을 문서화한 것



IT용어


컴파일

  • 작성한 소스코드를 바이너리 코드로 변환하는 과정

링크

  • 여러개로 분리된 소스 파일들을 컴파일한 결과물들에서 최종 실행 가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 작업
  • 정적링크(Static Link)
    • 컴파일된 소스파일을 연결해서 실행 가능한 파일을 만드는 것
    • 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사
      ex) 자신이 작성한 프로그램에서 A라는 외부 함수를 사용했다면, A라는 외부 함수에 대한 정보를 자신이 작성한 프로그램의 실행파일을 만들 때 복사해옴

      정적 링킹 방식을 사용하면 5개의 프로그램의 실행 가능한 목적파일 각각에 A의 정보가 담긴다. 즉, 중복이 발생

  • 동적링크(Dynamic Link)
    • 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업
    • 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하지 않고 해당 모듈의 주소만을 가지고 있다가, 런타임에 실행 파일과 라이브러리가 메모리에 위치될 때 해당 모듈의 주소로 가서 필요한 것을 들고 오는 방식

      5개의 프로그램에서 A라는 외부 함수를 이용한다고 해도 A라는 함수의 정보는 하나만 있으면 된다.


빌드

  • 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정(컴파일은 빌드의 부분 집합)
  • 빌드 툴
    • 전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution)
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글