강좌게시판

제목 개별 개발환경 셋팅하기
글쓴이 변종원(웅파) 작성시각 2011/12/02 13:26:32
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 36318   RSS
오늘 올릴 내용은 각 개발자 pc에 개발환경(apm, svn)을 구축하고 개발, 테스트후 svn으로 올리는 것입니다.

아주 예전에는 서버에 ftp로 직접 접속을 해서 (editplus 같은 툴) 다이렉트로 수정 또는 개발을 했습니다.
그러다 보니 동시에 같은 파일을 열서 날려버리기도 하고 저장되는 중간에 네트워크 문제가 생기면
파일의 내용이 통째로 날아가는 그런 일도 있었습니다.

요즘은 subversion 같은 형상관리툴이 있어서 그런 일들은 거의 없어진 편입니다. (svn도 충돌 문제가 있고
가끔 꼬이기도 합니다.)

개발자 pc에 apm을 셋팅하는 부분은 여러 배포프로그램들이 있어서 그 부분은 생략하겠습니다.
apm_setup, xampp 등 통합설치툴이 있고 개별로 윈도우에 설치할 수도 있습니다.

윈도우에 apm이 설치되어 있다고 가정하고 가상환경 만드는 것부터 시작을 합니다.

1. hosts 파일 내용 추가 (c:\windows\system32\drivers\etc\hosts)
   - hosts 파일에 다음과 같은 라인을 추가하면 naver.com 이라고 브라우저에서 접속을 했을때
     해당 도메인을 local이라고 속여(?) 줘서 내 pc에 설정된 apm을 통해 접속을 할 수 있습니다.
     진짜 네이버가 아닌 local에서 돌아가는 apm으로 접속이 됩니다.
127.0.0.1 naver.com

2. 각 통합설치 프로그램마다 설정 위치는 틀리지만  httpd-vhosts.conf 라는 파일을 열어서
   다음과 같이 입력을 합니다.
   저장후에 아파치를 재시작 하고 브라우저에서 naver.com을 쳐보면 실제 네이버가 아닌
   로컬의 d:\ci210 으로 연결되어 코드이그나이터 초기 화면이 접속 됩니다.
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "d:/ci210   #codeigniter가 설치된 디렉토리
    ServerName naver.com     #위에서 hosts 파일에 추가한 도메인
    ServerAlias naver.com
    ErrorLog "logs/test-error.log"
    CustomLog "logs/test-access.log" common
</VirtualHost>

위와 같은 작업을 하는 이유는 개발자pc에서 하나의 도메인에 대한 작업을 하는 것이 아니기 때문에 그렇습니다.
가상도메인이 아니라서 http://localhost 나 http://192.168.0.X 로 접속할 경우엔 설정을 바꾸기전까지는 하나의 
사이트만을 대상으로 작업을 할 수가 있습니다.
hosts 파일에 여러 도메인을 등록해놓고 신규개발과 유지보수를 한꺼번에 진행을 할 수 있습니다.


3. 자. 그러면 이렇게 개발한 소스는 어떻게 올릴까요? 개발하기 전에 먼저 svn 클라이언트 프로그램을 설치해야 합니다.
svn (subversion)에 대해 검색하시면 개념 잘 나옵니다. 윈도우용으로 잘 알려진 클라이언트 프로그램은 totorisSVN 입니다.
검색해서 설치를 하고나면 탐색기에서 디렉토리에 마우스커서를 위치하고 오른쪽버튼을 누르면 그전에 없던 메뉴가 나타납니다.
체크아웃은 svn서버에 있는 소스를 처음 내려받는 과정입니다. 한번 체크아웃을 하면 그 이후에는 메뉴에서 없어지며
업데이트, 커밋 으로 바뀌게 됩니다. 커밋은 내가 작업한 소스를 svn서버에 올리는 과정이고 업데이트는 svn서버에
있는 내용을 내 소스와 병합, 추가, 삭제하는 과정입니다. (자세한 사용법은 검색으로...)
svn이 좋은 점은 형상관리툴이라는 명칭대로 한명 한명의 소스를 버전으로 따로 관리를 하는 점입니다.
a와 b가 동일한 소스를 열어서 동일한 위치에 다른 작업을 했다면 기존 방식에서는 최후에 올린 사람의 소스만 남습니다.
svn에서는 충돌상황이라고 알려주고 소스내에 내가 작업한 부분과 상대방의 소스를 같이 보여줍니다.
그래서 내 소스보다 상대방소스가 더 맞는 것이라면 상대의 소스를 남기고 내 소스를 삭제. 병합해야 하는 것이라면
적당히 수정후 다시 커밋을 하게 되는 것입니다.




이상으로 간략하게 어떤 개념으로 개발환경을 구축하는지에 대한 설명을 마칩니다.

phpide 같은 경우는 개인별 선호도가 다르기 때문에 저희 회사에서만 해도 여러개의 IDE가 사용되고 있습니다.
이클립스에 pdt를 올려서 쓰시는 분, editplus 또는 notepad++ 를 쓰시는 분, 압타나를 쓰시는 분 등등
다 다르기 때문에 이 부분은 강제하지 않고 이 문서에서도 기술하지 않았습니다.
그렇지만 가능하면 IDE 내에서 svn을 지원하는 툴을 쓰는 것이 좋습니다. 
 다음글 CodeIgniter 보안강화 (11)
 이전글 index.php 죽이기!! (26)

댓글

무명의시인2 / 2011/12/03 09:08:03 / 추천 0
네! 감사합니다!!!!

오늘은 부산에 비가 오고 있습니다.

저는 안추워서 좋습니다 ㅎㅎ
한대승(불의회상) / 2011/12/03 12:00:30 / 추천 0
좋은 정보 항상 감사 합니다. ^^
양승현 / 2011/12/05 17:30:12 / 추천 0
슬슬 올라오나요.. ㅎㅎ
수세미 / 2011/12/09 18:46:13 / 추천 0
 많이 배우고 갑니다.

SVN 너무 꼬여요~ 요새는 git으로 하고 있는데 좋은듯~