[신입 개발자] 환경 세팅, 도대체 왜 해야합니까!

jiaLEE·2022년 6월 17일
0

  • 기본 개념
  • 프로그램들(1.Secure Pipes 2. Docker)
  • 각 버전마다 다른 환경변수

회사에 들어가면 환경세팅을 해야한다. 심지어 굉장히 복잡한데,, 하다보니 이 프로그램들은 도대체 왜 깔아야하며 어디서 쓰이는 지 당최 모르겠는데 깔고 있는 내 모습을 발견한다.

도대체 왜 환경세팅을 해야하고! 이 많은 프로그램들은 어디에 쓰이는 걸까!

기본 개념

내 컴퓨터는 local(localhost)로 존재하고 내가 보고 싶은 회사의 코드는 서버에 올려져있다. 이때 회사마다 명칭을 다르지만 대부분 서버는 dev-QA-Stage-Prod와 같은 여러단계의 버전으로 나뉘어져서 서버에 올려져있다.

이때 서버에 있는 회사의 코드를 가져와서 보고 싶다면 서버의 환경과 내 컴퓨터의 세팅을 같게 만들어주어야 한다.

즉, 서버의 코드와 같은 환경으로 만들어주기 위해 local인 내 컴퓨터에 서버와 동일한 환경세팅을 한다!

프로그램들

1) Secure Pipes

터널링을 통해 내 local 컴퓨터와 서버에 있는 회사의 코드를 연결하는데 그 터널링을 위해 secure pipes를 다운로드 받아서 사용한다.
(즉, 터널링을 위한 수단으로 secure pipe를 사용한다. 터널링은 여러 방법으로 가능하다.
ex. SSH 터널링)

  • 터널링 : 인터넷상의 터널을 의미함, 이 터널을 통해 내 컴퓨터(localhost)에서 서버로 이동이 가능하다.

2) Docker

Data를 위해 RedisMySQL을 다운받고 Docker를 통해 사용하는데
이때 중간에 Docker 프로그램을 넣어서 사용하는 이유는 어느 환경이든 상관없이 도커에 등록하면 쉽게 사용할 수 있기때문이다. 환경에 따라 명령어가 약간 달라지는데 도커에 등록하게 되면 환경이 다르더라도 쉽게 UI를 통해서 사용할 수 있다.

  • Redis : 캐시시스템, 모든 데이터를 메모리에 저장하고 조회한다.(= 인메모리 데이터베이스) 빠른 DB이며 다양한 자료구조를 갖는다.
  • MySQL : 오픈소스 데이터베이스

각 버전마다 다른 환경변수

회사마다 다르지만,
보통 서버는 dev-QA-Stage-Prod와 같이 여러단계의 버전으로 나뉘어져서 서버에 올려져있다.
각 단계를 거쳐 코드를 보완하며 최종 버전은 실제 사용자들에게 배포하게 식으로 진행이 된다.

이때 각 버전마다 개발 환경변수가 다르다.

  • 개발 환경변수 : 컴퓨터가 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 각 버전마다 test DB도 다르고 버전마다의 동적인 값들이 있는데 이걸 환경변수에 넣는다.

secure pipes에 모든 버전의 서버를 등록해놓고 필요할때마다 버전을 다르게 연결해서 해당 버전의 개발 환경변수를 사용한다. (즉, secure pipes를 통해 다른 버전의 서버와 환경변수를 사용할 수 있다.)

0개의 댓글