호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer

[혼공얄코] Chapter 03-5 개발에 필요한 여러 가지 도구 본문

혼공 시리즈/혼공얄코

[혼공얄코] Chapter 03-5 개발에 필요한 여러 가지 도구

RachelLee 2024. 2. 12. 23:57

개발자의 앱 마켓 패키지 매니저

- 라이브러리를 마치 앱 마켓에서 앱을 다운로드하는 것처럼 내려받고 그 내역을 관리해 주는 도구

 

패키지

- 라이브러리와 유사한 개념

- 소스 코드 작성을 위해 사용되는 코드의 묶음인 라이브러리라면, 소스 코드를 배포하기 위해 사용되는 코드 묶음

 

패키지 매니저

- 패키지를 편리하고 안전하게 다루기 위한 도구

- 운영체제에서 사용하는 종류와 프로그래밍 언어에서 사용하는 종류로 나뉨

 

운영체제 패키지 매니저

- 컴퓨터에서 사용할 프로그램들을 관리

- 리눅스 : apt-get, yum, pacman 등

- 맥 : Homebrew 매니저로 여러 종류의 소프트웨어뿐만 아니라 구글의 크롬이나 카카오톡 같은 다른 소프트웨어도 명령어 한 줄로 설치 관리 할 수 있음

- 파이썬 : NginX(엔진엑스) 서버용 프로그램을 다운로드, 업데이트, 삭제

 

프로그래맹 언어 패키지 매니저

- 파이썬의 pip

- 자바의 Maven, Gradle

- 자바스크립트의 NPM, Yarn

- 루비의 RubyGems 등

 

프로그램이 작동할 곳에 지정된 값 환경 변수

- 컴퓨터에서 동작할 때 환경과 관련된 변수

- 동적인 값

- 응용 프로그램을 쉽게 쓰기 위해서 응용 프로그램의 경로를 미리 변수에 등록해 놓는 것

- 프로그램 실행 환경을 미리 변수에 지정해 놓은 것

- 운영 체제 입장에서 해당 프로세스를 실행시키기 위해 참조하는 값을 담은 변수가 '환경변수'

 

환경 변수는 무엇에 사용되는 것일까?  크게 3가지 용도

1. path 환경 변수,필요한 프로그램의 실행 경로 

- 자바 프로그래밍으 ㄹ위해 JDK(자바 개발 키트)를 다운로드하면 자바와 프로그래밍에 필요한 기타 요소들이 ProgramFiles 폴더 설치, JDK환경 변수를 지정해주면 자바로 작성한 코드를 컴파일하거나 실행할 수 있다.

=> 컴퓨터에서 작동하는 프로그램을 필요로 하는 다른 프로그램이나 라이브러리의 위치를 모두가 접근할 수 있는 곳에 적어 두는 용도 

 

2. 개발 환경 용도 구분

서버에서 동작할 백엔드 프로그램을 개발한다고 가정하면 데이터베이스에 연동되어 작동하는데, 일반적으로 기업에서는 같은 구조의 데이터 베이스를 두 개 이상 두어 하나는 실제 서비스에 사용하고 나머지는 개발용 및 테스트용으로 사용

 

3. 민감한 요소의 보안

소스 코드에 아이디, 비밀번호처럼 중요한 정보를 적어두면 협업을 위해 공유되는 문서 등에서 노출 될 수 있습니다. 프로그램을 실행할 서버와 개발 및 테스트할 컴퓨터에 DB_ID, DB_PASSWORD와 같은 환경 변수를 지정해서 아이디와 비밀번호를 지정해 두는 것

=> 환경 변수는 컴퓨터 시스템 관련 파일에 저장하는 것도 있고, 사용할 프로그램에서 지정된 폴더에 파일로 저장하는 형태도 있음

프로그램 실행을 돕는 런타임 환경

런타임 환경 = 런타임 시스템

- 프로그램이 실행되어 프로세스가 진행 중인 상태

- Node.js를 소개하는 자료에서는 '자바스크립트 런타임'이라고 설명하는 것처럼 여기서 런타임은 런타임 환경을 이야기 함

- 일반적으로 특정 언어로 작성한 프로그램을 실행할 수 있도록 해 주는 프로그램

 

JRE

- 자바로 작성한 소스 코드를 컴파일했을 때 생성된 자바 바이트코드를 실행할 수 있도록 해주는 소프트웨어

- Node.js 는 컴퓨터에서 직접 자바스크립트를 돌릴 수 있도록 해주는 런타임 환경

 

런타임 환경

- Node.js는 컴퓨터에서 직접 자바스크립트를 돌릴 수 있도록 해 주는 런타임 환경임

-2009년 라이안 달이라는 개발자에 의해 자바스크립트를 브라우저 밖에서도 실행할 수 있도록 하는Mode.js가 탄생

- 이러한 런타임 환경으로 이제 자바스크립트 웹 개발뿐만 아니라 백엔드 서버 프로그램, 심지어 데스크톱용 응용 프로그램 개발에까지 사용할 수 있게 됨

 

런타임 라이브러리

- 공통적으로 많이 사용하는 기능을 수행하기 위해 런타임 라이브러리라는 요소를 제공함

 

소프트웨어를 만드는 키트 SDK

개발자들이 프로그램을 수월하게 개발할 수 있도록 SDK라는 것을 제공함

- Software Development Kit의 약자, 소프트웨어를 개발하는 데 사용되는 키트

- 각각의 특성에 따라 라이브러리, 런타임 환경, 편집 도구, 코드 샘플, 설명서 등이 포함

- 언어나 플랫폼별로 개발자의 편의를 고려해서 제작된 SDK 덕분에 오늘날 우리는 비교적 손쉽게 프로그래밍을 공부하고 소프트웨어를 개발할 수 있음

 

생산성 있는 개발을 돕는 라이브러리, 프레임워크

라이브러리와 프레임워크의 공통점

- 특정 기능을 누군가 미리 소스 코드로 작성해 놓은 것

 

라이브러리

- 가져다 쓰는 것

- 프로그래밍 언어의 개발 환경에서 기본적으로 주어지는 라이브러리도 있고 외부에서 다운로드해야만 사용 가능한 라이브러리도 있음

- 개인이 어떤 유용한 기능을 개발한 뒤 다른 사람이 사용할 수 있도록 라이브러리로 만들어 배포한 경우나 기업 혹은 단체에서 어떤 목적을 가지고 라이브러리를 개발해서 제공한 경우도 이에 해당

- 객제로 된 데이터를 JSON형식으로 바꿔주거나 모바일 앱에서 예쁜 UI팝업을 보여주는 등 다양한 기능을 라이브러리 형태로 사용할 수 있어 개발자들의 수고를 덜어줌

 

프레임워크

- 기반으로 삼는 것

- 전체적인 흐름을 자체적으로 가지고 있어서 개발자가 그 안에서 필요한 코드를 작성함

- 프레임워크 안에는 프로젝트를 빌드, 실행하고 기능들을 테스트하는 기능이 있음

 

확인문제

더보기

1, 다음 중 문장에 들어갈 알맞은 단어를 보기에서 찾아 써 보세요.

- 컴퓨터에 설치된 프로그래밍 언어의 경로를 프로그램에 알려주기 위해 ( 환경변수 )가 사용됩니다.

- 소프트웨어를 개발하는 도중 이미 개발된 유용한 기능을 넣기 위해 (라이브러리)를 받아 사용할 수 있습니다.

- 프로그램을 만들 때 필요한 도구들을 제공하는 것은 (SDK), 프로그램의 기초 설계를 미리 구성해둔 것을 ( 프레임워크 )라고 합니다.

 

2. 다음 중 틀린 것을 고르세요

2

 

3. 다음 중 나머지 넷과 종류가 다른 하나를 고르세요

4

4. 다음 용도 중 환경 변수를 사용하기 적합하지 않은 것을 고르세요

3