[리눅스/유닉스] 프로젝트 서버 구축 기본 환경 정리

2021. 7. 29. 22:41W.IT/W.유닉스

 서버 구축함에 있어 뼈대 즉 환경에 대한 세팅과 정의도 정말 중요합니다. 이 글은 그런 기본적인 환경 설정과 구조를 작성할 예정입니다. 서두는 짧게 마무리하고 바로 본론으로 들어가겠습니다.


1. 서버 구성

 

 서버를 구축할 때, 먼저 정해야 할 것은 개발 서버와 운영 서버의 위치입니다. 즉, 개발 환경과 운영 환경을 어디에 설정할 것인가로 첫 단추를 꿰매는 것이죠.

 

 실제 서비스할 때는 물리적으로 다른 서버의 구현을 하며, 실제 서비스하지 않고 테스트 용도 혹은 포트폴리오 용도로 프로젝트를 진행한다면 상황에 따라 유연하게 선택하여 설정해주시면 됩니다.

 

 그다음은 실제 서버 구성을 어떻게 할 것인지를 결정해야 됩니다.

예를 들어 화면을 사용할 건지, 서버를 여러 대 두어 각각 다른 서비스 처리를 진행할 것인지를 결정해야 됩니다.


2. 디렉토리 구성

 

  서버 구성이 끝났다면 그다음에는 서버의 디렉토리를 어떻게 구성하여 관리할 것인가입니다.

 

  먼저, 결론부터 말씀드리자면 아래와 같은 구성이 됩니다.


디렉토리 구성


 * 위 그림은 정말 기본적인 것만 뽑아서 구성하였기에 추가로 필요한 영역의 디렉토리를 각 구성에 맞춰 하위에 추가하시면 됩니다.

 

프로젝트 디렉토리 안에 크게 개발 디렉토리와 실행 디렉토리로 나눠집니다.

개발 디렉토리에는 실제 소스 파일과 include 파일이 존재할 것이고 실행 디렉토리 안에는 개발 디렉토리에서 컴파일된 실행 파일(모듈)과 라이브러리가 들어가겠죠.

 

  • 개발 디렉토리

    config 파일 디렉토리- Makefile을 만들 때 필요한 정보들이 들어가 있는 config 파일이 존재합니다. 

                       > 예를 들어, 실행 파일 및 라이브러리 파일에 대한 경로나, 컴파일 옵션 (링크...) 등이 해당 파일에 들어갑니다.

                          *추후 어떤 형식으로 사용하는지 글을 작성하겠습니다.

 

    헤더 파일 디렉토리- .h 파일이 존재합니다. 

                       > 디렉토리 안에서 헤더 파일에 대해서도 영역 별로 정리가 필요할 수도 있습니다.

                       > 예를 들어, A 라이브러리에 대한 헤더 파일은 다시 A라는 디렉토리를 만들어 그 안에 두는 것이 관리하기 수월합니다.

                       그러면 대상의 경로는 "~/프로젝트 디렉토리/개발 디렉토리/include 디렉토리/A/A.h"가 됩니다.

 

    소스 파일 디렉토리- 소스 파일이 존재합니다.

                       > 서버가 단일 기능으로 구현될게 아니라면 여러 기능 별로 소스 파일이 생성될 수 있습니다.

                          그렇다면 해당 디렉토리 하위에 기능 별로 디렉토리를 만들어 소스를 관리하시면 됩니다.

                       > 예를 들어 B라는 기능을 가진 소스 파일은 B라는 디렉토리를 만들어 그 안에 두시면 됩니다.

                          이렇게 두신다면 해당 경로는 "~/프로젝트 디렉토리/개발 디렉토리/ 소스 파일 디렉토리/B/B.c" 가 됩니다.

 

  • 실행 디렉토리

    config 파일 디렉토리- 서버가 실행될 때 참조하는 config 파일이 존재합니다.

                        > 예를 들어, 서버의 Port 번호, thread 개수, 옵션 처리 등이 해당 파일 내에 작성됩니다.

                          *추후 어떤 형식으로 사용하는지 글을 작성하겠습니다.

 

    실행 파일 디렉토리- 실제로 동작을 위한 모듈들이 들어갑니다.

 

    라이브러리 파일 디렉토리- 모듈이 사용하는 라이브러리 파일이 들어갑니다. 

                         > .so, .a 가 저장되며 컴파일을 진행할 때 이 디렉토리 경로로 링크를 진행하시면 됩니다.

 

    로그 파일 디렉토리- 모듈이 실행 중에 남기는 로그 파일이 들어갑니다.

                         > 로그 파일을 저장할 때 해당 디렉토리에 다이렉트로 저장하는 것이 아닌

                            오늘 날짜로 디렉토리가 생성되어 그 안에 작성합니다.

                         > 로그 파일을 저장할 때의 naming rule은 보편적으로 [모듈 이름].log로 작성합니다.

                   

                         > 예를 들어, C라는 모듈에 대한 로그 파일이 작성될 때,

                            해당 경로는 "~/프로젝트 디렉토리/실행 디렉토리/로그 파일 디렉토리/현재날짜 디렉토리/C.log"가 됩니다.


3. 환경 구성

 

 디렉토리까지의 구성이 다 마무리가 되었다면 이제 환경 변수에 대한 세팅을 해야 합니다.

 유저 home 디렉토리 밑에 아래와 같은 파일이 존재합니다.

  • 리눅스: .bash_profile
  • 유닉스: .profile

 해당 파일 안에 필요한 환경 변수를 세팅 후 export를 진행합니다.

 예를 들어,

   > 실행 파일 디렉토리와 라이브러리 파일 디렉토리를 환경 변수로 세팅하여 export 시켜 줍니다.

   > 사용할 LANG을 세팅해 export 해줍니다. (export LANG=utf-8)

   > DB를 사용한다면 DB 클라이언트의 경로를 환경 변수로 세팅하여 export 시켜 줍니다.

  

 

 


 쓰고 나니 부족한 부분이 많이 보이네요... 해당 부분들은 나중에 하나하나 파일 자체를 예시로 잡아 설명해보도록 하겠습니다... 


 제 글에서 부족하거나 잘못된 부분이 있다면 댓글로 남겨주시길 부탁드립니다.

※ 제 글은 제가 코딩하면서 지속해서 확인하기 위한 히스토리 성 정보들이자 회사 생활 중 실제 프로그램을 코딩하며 중요하거나 필요했던 정보들을 공유하기 위해 적은 글입니다.