웹프로그래밍할때 CVS쓰는게 좋을까요?

icanfly의 이미지

최근들어 웹쪽일만 전담하다보니.... 이것 저것 고민이 많이 생기는데...

조만간, 같이 작업하게 될 디자이너가 원격지(?)에 있을 공산이 커졌습니다.

저는 그냥 터미널로 웹서버의 파일을 바로 수정해 버리는 편인데....

디자인하시는 분이 바로 옆에 있으면 별 문제가 되지 않는데...멀리 떨어져있다

면..좀 문제가 될거같아서. CVS를 사용하라고 디자이너쪽에 권해볼까 하는

생각을 하고있습니다. 과연 실효성이 있을까요?

같은 파일을 두명이서 만져야 하기 때문에 일반 어플리케이션 개발보다 오히려

더 번거로울거 같기도 하고 (잦은 충돌이 발생하지 않을까요?) ........

실제로 CVS로 디저이너와 많이 공동작업을 하시는지도 궁금합니다.

이제까지는 CVS를 저혼자서 써왔었거든요. 각종코드를 거의 혼자 작업하기도 했고.. 다른 사람들 한테는 잘 먹히지가 않아서 :( .... 그럼...

chocoheim의 이미지

저도 처음에 cvs 를 도입할때, 일반 어플리케이션 개발이 아닌 웹어플 쪽에는 cvs를 어떻게 적용시키는지 궁금했습니다. WAR 형식으로 배포하는거라면 웹어플처럼 간단할지는 모르겠지만, 간간히 파일한두개씩 수정해야 하는 경우에는 어떤식으로 해야할지 잘 감이 안오더라구요.

질문에 대한 답은 안되겠지만, 그냥 웹 프로젝트에서 cvs를 어떻게 활용하는지에 대해서 얘기를 들었으면 좋겠습니다.
제가 이번 프로젝트에 사용했었던 걸 말씀드리면..

일단, 디자인 자체는 모두 프로그래머가 받아서 만집니다. 그러니까 서버 소스자체를 디자이너가 건드리는 일은 없었습니다. 그냥 photoshop화면을 html 로 뜬걸 받아서 프로그래머들이 입히죠.
원체, 소스 관리라던가 그런 시스템들의 레벨이 바닥인 곳이라 -_- 일단 이클립스를 쓰도록 팀원들을 꼬드기고, cvs 사용을 강제 시켰습니다.

cvs용 프로젝트 서버는 따로 사내에 두고, 각 프로그래머별로 계정을 만들었습니다. 그리고, 실제 운영되는 웹서버에서 cvs 내용을 받아올 수 있도록 client 로 활용했죠. 웹서버용 계정도 따로 만들구요.

작업 단위가 끝나면 cvs 서버에 commit 을 하고(conflict처리하고), 그걸 실제 운영서버에서 update 만 시키는 방식으로 작업을 했습니다.

그러니까 cvs 서버는 따로 있고, 실제 운영서버는 conflict가 없는 완전히 commit된 자료만을 update 하는 형식으로 프로젝트를 진행했습니다.
(정말 급하고 간단한 수정사항이 발생하면 운영서버에서 다이렉트로 처리하고 commit 하기도 했습니다)

처음 적용한것 치곤 괜찮았던 것 같습니다. 버그 발생시킨 범인색출 작업에도 용이했구요. :twisted:

다른 분들은 어떤 형식으로 웹어플리케이션에 cvs 를 적용시키는지 궁금하네요.

p.s. 궁색한 방법을 생각해본다면,
일단 cvs 서버는 따로 두시고, 웹서버는 cvs client 로 설정해 놓은 다음에,
디자이너분은 그냥 이전과 같이 웹서버에서 바로 작업을 하시고,
프로그램하시는분은 항상 작업전에 commit 하고, cvs에 있는 놈을 받아온 다음 작업후 로컬에서 commit 후, 웹서버에서 update를 해주는 "번거로운"방법

"웹서버(디자이너 작업내용) commit -> 프로그래머 local에 update
-> local 작업후 commit -> 웹 서버에서 update "

을 쓰면 지금까지 처럼 혼자 cvs 를 사용해도 크게 충돌 나는 일이 없지 않을까.. 합니다.

WaitplzplzWait

TooCooL34의 이미지

chocoheim wrote:

처음 적용한것 치곤 괜찮았던 것 같습니다. 버그 발생시킨 범인색출 작업에도 용이했구요. :twisted:


그 부분이 최고의 장점이군요. :lol:
rainmon의 이미지

디자이너가 ssh, sftp를 써야하는것도 귀찮아 한다면..
만약 cvs를 쓰라고 한다면 참고있는 짜증스러움으로
버럭 화를 낼지도 모르겠습니다.

저같으면 그런 부류들에게 cvs를 이해시키기위한 노력과 시간이 있다면
개인 여기생활이나 즐기겠습니다.

하지만 반년이상 오랫동안 같이 작업할 사람이라면
밥을 씹어서 목구멍에 넣어주듯이 자세히 알려주고 사용할 것을 정중히 부탁하겠습니다.

icanfly의 이미지

어려운 일이군요. 그러고 보니 디자이너가 CVS로 커밋하고, 웹서버에서 다시 업데이트 해서 결과를 확인하고 하는 작업을 하려 들거 같지 않습니다. -_-;

쩝.. 좀 진보적인 방법을 도입하려고 해도...주변 상황이 따라 주지 않으면 힘들군요. 그냥 지금 처럼 혼자서 별도의 CVS 서버에다 제 나름대로 관리를 해야겠습니다. 헐헐... :cry:

서지훈의 이미지

CVS이라는 툴이 있다는걸 인정하게 만들고,
교육을 시키고, 같이 작업을 할라하면 이미 기간은 다 끝나지 않았을지?

그러지말고, 그냥 수정할땐 항상 초단위로 이름을 생성해서 백업을 하게 하시고 작업을 하시는게 속편하실듯.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

elfs의 이미지

rainmon wrote:
저같으면 그런 부류들에게 cvs를 이해시키기위한 노력과 시간이 있다면
개인 여기생활이나 즐기겠습니다.

어감이 좀 이상하군요. 부류라는 말이 특별히 문제가 되는 아니지만 왠지 위 말투에서는 디자이너들을 낮추어 부르는 듯한 느낌이 듭니다. 만약 맞다면 예의를 지켜서 글을 올려주십시오.

내가 편하다고 남도 편할것이다라고 생각하는것은 잘못된 생각입니다.

천재태지서주영의 이미지

저는 web 프로그래밍 시에 cvs 를 써서 많은 이득을 봤습니다.
원격으로 다른 프로그래머와 작업을 하는데 정말 편하더군요.

하지만 디자이너와의 cvs 사용이라면

chocoheim wrote:
p.s. 궁색한 방법을 생각해본다면,
일단 cvs 서버는 따로 두시고, 웹서버는 cvs client 로 설정해 놓은 다음에,
디자이너분은 그냥 이전과 같이 웹서버에서 바로 작업을 하시고,
프로그램하시는분은 항상 작업전에 commit 하고, cvs에 있는 놈을 받아온 다음 작업후 로컬에서 commit 후, 웹서버에서 update를 해주는 "번거로운"방법

"웹서버(디자이너 작업내용) commit -> 프로그래머 local에 update
-> local 작업후 commit -> 웹 서버에서 update "

이 방식이 최상일것 같습니다.

그런데 저는 web 작업을 할 때 tortoise cvs 를 썼는데 이미지 파일도 ascii 방식으로 업로드를 하더군요. 결국 웹에서 이미지 파일이 깨지더군요.
그래서 이미지 파일만 따로 업로드하곤 했는데 그점은 불편했습니다.
혹시 좋은 방법 아시는 분 조언 부탁드립니다.

천재태지서주영

nainu의 이미지

제 생각엔 디자이너와 프로그래머가 접근하는 파일을 일단 분류하고, 그리고 나서 MSN으로 적당히 통신하면서 하면 괜찮을 것 같습니다.
디자이너에게 자신이 무슨 파일을 고치고 있다고 얘길 해 주거나, 디자이너가 무슨 파일을 고칠지 얘기를 하도록 유도했더니 별 문제가 없었습니다.

물론, 백업은 필수입니다. 우리가 rm -rf 하듯이 디자이너도 실수할 수 있거든요.

써놓고 보니 질문과는 거리가 좀 있네요. 저는 디자이너분에게 CVS를 쓰게 하는것에 반대고, 템플릿 쪽만 주기적으로 백업하는 데에 한 표 던지겠습니다.

icanfly의 이미지

이미지 파일이 깨지는건 CVSROOT/cvswrappers 에다가..

*.gif -k 'b'
*.jpg -k 'b'

를 추가해주면, 해결되지 않을까요?

그리고 확실히 웹프로그래밍에서는 CVS를 도입하는게 좀 번거로울거같습니다.

위의 방법을 쓴다면, 고치고 내용확인을 위해 커밋하고, 서버에서 업데이트 한다음 접속해서확인하고 틀리면 다시 고치고 커밋하고 업데이트 하고....
를 반복해야되니 보통일이 아닐거같네요...

nohmad의 이미지

천재태지서주영 wrote:

이 방식이 최상일것 같습니다.

그런데 저는 web 작업을 할 때 tortoise cvs 를 썼는데 이미지 파일도 ascii 방식으로 업로드를 하더군요. 결국 웹에서 이미지 파일이 깨지더군요.
그래서 이미지 파일만 따로 업로드하곤 했는데 그점은 불편했습니다.
혹시 좋은 방법 아시는 분 조언 부탁드립니다.

바이너리 파일을 추가할 때는 cvs add -kb [files ...] 옵션을 쓰면 됩니다. 그런데 제가 쓰는 TortoiseCVS 버전에서는 바이너리 파일을 알아서 잘 감지하던데요? 저는 TortoiseCVS에선 확장자가 doc인 워드 파일만 commit을 해봐서 다른 파일 형식도 알아서 잘 감지하는지는 모르겠습니다. 일단 버전 업데이트를 해보심이... ;)

noohgnas의 이미지

nohmad wrote:
천재태지서주영 wrote:

이 방식이 최상일것 같습니다.

그런데 저는 web 작업을 할 때 tortoise cvs 를 썼는데 이미지 파일도 ascii 방식으로 업로드를 하더군요. 결국 웹에서 이미지 파일이 깨지더군요.
그래서 이미지 파일만 따로 업로드하곤 했는데 그점은 불편했습니다.
혹시 좋은 방법 아시는 분 조언 부탁드립니다.

바이너리 파일을 추가할 때는 cvs add -kb [files ...] 옵션을 쓰면 됩니다. 그런데 제가 쓰는 TortoiseCVS 버전에서는 바이너리 파일을 알아서 잘 감지하던데요? 저는 TortoiseCVS에선 확장자가 doc인 워드 파일만 commit을 해봐서 다른 파일 형식도 알아서 잘 감지하는지는 모르겠습니다. 일단 버전 업데이트를 해보심이... ;)

C:\Program Files\TortoiseCVS 안에 보시면 TortoiseCVS.Filetypes 라는 파일이 있습니다. 파일 확장자로 구분을 합니다. 파일에 설명도 있으니 읽어 보시면 되겠네요.. :)

저는 이렇게 되어있습니다.

Quote:
# Example
# *.dfm dll MyPlugin.dll CheckDfm
# *.dll binary
# *.pas text

*.dll binary
*.exe binary
*.jpg binary
*.gif binary
*.vsd binary
*.doc binary
*.ppt binary


----
I think, therefore I am.

송지석의 이미지

noohgnas wrote:
nohmad wrote:
천재태지서주영 wrote:

이 방식이 최상일것 같습니다.

그런데 저는 web 작업을 할 때 tortoise cvs 를 썼는데 이미지 파일도 ascii 방식으로 업로드를 하더군요. 결국 웹에서 이미지 파일이 깨지더군요.
그래서 이미지 파일만 따로 업로드하곤 했는데 그점은 불편했습니다.
혹시 좋은 방법 아시는 분 조언 부탁드립니다.

바이너리 파일을 추가할 때는 cvs add -kb [files ...] 옵션을 쓰면 됩니다. 그런데 제가 쓰는 TortoiseCVS 버전에서는 바이너리 파일을 알아서 잘 감지하던데요? 저는 TortoiseCVS에선 확장자가 doc인 워드 파일만 commit을 해봐서 다른 파일 형식도 알아서 잘 감지하는지는 모르겠습니다. 일단 버전 업데이트를 해보심이... ;)

C:\Program Files\TortoiseCVS 안에 보시면 TortoiseCVS.Filetypes 라는 파일이 있습니다. 파일 확장자로 구분을 합니다. 파일에 설명도 있으니 읽어 보시면 되겠네요.. :)

저는 이렇게 되어있습니다.

Quote:
# Example
# *.dfm dll MyPlugin.dll CheckDfm
# *.dll binary
# *.pas text

*.dll binary
*.exe binary
*.jpg binary
*.gif binary
*.vsd binary
*.doc binary
*.ppt binary

그냥 tortoiseCVS 버전 문제일 것 같습니다.
매뉴얼을 보면 binary인지 ascii인지를 직접 파일을 열어서 앞부분을 읽어본 다음에 결정하는 것으로 되어있습니다. 최신버전을 쓰시면 별 문제 없을 듯,, 제가 지금 jpg 파일을 add해봤는데 binary로 인식하더군요.
chocoheim의 이미지

icanfly wrote:
위의 방법을 쓴다면, 고치고 내용확인을 위해 커밋하고, 서버에서 업데이트 한다음 접속해서확인하고 틀리면 다시 고치고 커밋하고 업데이트 하고....
를 반복해야되니 보통일이 아닐거같네요...

음.. 저희는 톰캣으로 개발해서 eclipse + tomcat plugin 으로 왠만한건 로컬에서 테스트 후에 올렸습니다.

WaitplzplzWait