고수님들 조언좀..UI 소스를 위한 버저닝 관리는 어떻게 하면 효과적인가요?

149 views
Skip to first unread message

Steven J.S Min

unread,
Jan 12, 2016, 1:10:20 AM1/12/16
to Korea Spring User Group Q&A
호주 멜번에서 일하고있는 노동자입니다.

항상 불편을 느끼는 거지만 그냥 넘어갔던 문제이기도 한데요...나름 리서치를 하고있는중인데..

백엔드 소스의 경우
주로 메이븐기반하에 프로젝트를 하고있구요, 프로젝트별로 그리고 패키지별로 분리하여 jar같은 방법으로 패킹징하여 Nexus를 통하여 사내 프로젝트간 공유를 하고있습니다.
이를 통하여 어느정도 레벨까지는 버전컨트롤이 만족스럽게 이루어 지고있는데 문제는 UI소스들입니다.

백엔드 소스는 예를들어 V1가 개발되는동안 다른팀에서V1을 받아서 V2를 완료해서 릴리즈하는 경우에도 Maven + SVN + Nexus + Jenkins같은 조합으로 버저닝 커버가되는데..
UI 소스들을 종종 머지하는 작업으로 시간을 보내야하는 경우가 많습니다.

혹시...좋은 방안있으시면 고수님들 공유좀 부탁드려요...

감사합니다.

[인석] Chris Cho

unread,
Jan 12, 2016, 3:58:34 AM1/12/16
to ks...@googlegroups.com

안녕하세요, 조인석입니다.

UI 소스를 SVN에 안 넣으셨나요?

현재 웹 프로젝트 구조가 어떻게 되어 있으신가요?

그라고.. 머지의 정확한 개념이 무엇인가요?

2016. 1. 12. 오후 3:10에 "Steven J.S Min" <steven...@gmail.com>님이 작성:
--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ksug에서 이 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/ca9c15fb-83db-4b38-b940-f9981863644b%40googlegroups.com을(를) 방문하세요.
더 많은 옵션을 보려면 https://groups.google.com/d/optout을(를) 방문하세요.

Steven J.S Min

unread,
Jan 12, 2016, 5:26:46 PM1/12/16
to Korea Spring User Group Q&A
답변 주셔서 감사합니다..

UI소스 역시 SVN이나 Git으로 관리가 되고있습니다.

Java소스의 경우 프로젝트별로 패키징되어 Maven에의해 Nexus나 AWS S3레파지토리로 버전별로 관리가 되기때문에 이러한 소스가 새롭게 수정되어(버전업이 되어) 배포가되어도
이 라이브러리들을 사용하는/연관 관계가 있는 프로젝트들은 영향을 받지 않게되죠...연관된 프로젝트에서는 바뀐 버전번호만 POM.XML파일에 변경만 해주면 되니까요...
아니면 기존의 버전들을 여전히 사용할수가 있지요..

하지만 이러한 메커니즘이 UI소스에서는 지원이 되지않으므로해서(제가 잘 몰라서 그러는것일수도 있구요)...불편한 점이 많습니다.
위에서 설명한것 처럼 jar 패지지의 경우 고객이 여러개일 경우도 그냥 POM 에서 지정한 사내 레파지토리를 참조하게 함으로서 사용하게하면 되는데...
UI의 경우 클라이언트별로 Web프로젝트를 생성하고....변경이되면 각각 소스들을 반복해서 변경해야하는 불편한 좀도 있습니다.(클라이언트의 소스코드가 비슷하지만 완전히 똑 같지도 않거든요).

때에 따라서는  어떤 프로젝트를 V2부터 시작하고있는데 어떤 프로젝트는 V3를 뒤늦게 시작하면서 V2보다 빨리 릴리즈해야하는 경우도 자주 발생합니다. 이런경우 UI소스 관리가 참 난감합니다.
말씀드린대로..머지를 해야하고 또 그 머지결과를 검증하는것도 쉽지가 않습니다.

Java 소스나 다른 라이브러리화 할수있는 패지지의 경우 Maven + SVN + Nexus + Jenkins같은 조합으로 이러한 문제들을 상당부분 해소가되는데.. UI소스의 경우 어떻게 해야할지 모르겠습니다.

설명이 잘 되었는지 모르겠습니다..... 좋은 조언주시면 감사하겠습니다..
수고하시고요...... 오늘 여긴 40도까지 올라가는 더운날씬데....빨리 돈모아서 한국의 스키장으로 가고싶군요~~~~

감사합니다...

[인석] Chris Cho

unread,
Jan 13, 2016, 12:35:48 AM1/13/16
to ks...@googlegroups.com

아 네..

말씀하신 걸 들어보니 WAS에 배포되는 웹 프로젝트가 여러개인가 보내요.. 그리고 각 웹 프로젝트들이 바라 보는 jar 버전도 제 각각이고요.

덛치가 얼마나 크고, 얼마나 많은 조직이 동참하고 있는 자 모르겠지만, 배포  하시는 패키지의 버전관리가 안 되고 있는 걸로 보입니다.

지금 말씀하신 jar들이나 UI 리소스들은 하나의 패키지(war) 로 배포가 되어야 문제가 해걸 될듯 한데요.

Maven 상에 모든 플젝을 관리하는 부모 플젝을 만드시고, CI 환경에서 한 개의 WAR 파일로 만들어 보시면 어떨까요? UI는 리소스 폴더 아래에 넣으시고요..

혹시 제가 이해를 잘 못했다면, 프로젝트 패키지 구조와 의존성 관계를 도식으로 보여주시면 이해가 잘 될듯합니다.

2016. 1. 13. 오전 7:26에 "Steven J.S Min" <steven...@gmail.com>님이 작성:
--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ksug에서 이 그룹을 방문하세요.

SangYong Lee

unread,
Jan 13, 2016, 1:13:18 AM1/13/16
to ks...@googlegroups.com
저는 resource들을 war로 패키징 합니다. (nexus 에 등록하구요~) 

resource는 별도의 서버로 돌아갑니다.(따라서 버전별로 /v1 /v2등등을 사용할수 있습니다)
(resource라 함은 image / js / css 만)

페이지는 해당 프로젝트별로 작업하구요..

프로젝트를 진행할때 살짝 불편한 점이 없지 않지만...(was를 2개 또는 개발기에 resources 서버를 올려두어야합니다)

추가적으로 maven 으로 엮지는 않습니다.(굳이 엮어야할 필요가 없어서 ㅎㅎ;)


2016년 1월 13일 오후 2:35, [인석] Chris Cho <isi...@gmail.com>님이 작성:

pffm

unread,
Jan 14, 2016, 6:28:56 AM1/14/16
to Korea Spring User Group Q&A
내부 repo를 쓰고 있다면 webjar 형태로 만들어 maven에서 관리하는건 어떨까 싶네요.
실제로 만들어 본 적은 없지만 webjar를 써본 경험으로 가능성을 생각해 보았습니다.
https://fbflex.wordpress.com/2014/03/14/building-web-content-jars-for-spring-boot-with-gradle/

Myoung-hoon Kim

unread,
Jan 14, 2016, 9:17:21 PM1/14/16
to ks...@googlegroups.com
조심스럽게 답글 달아봅니다만, 제가 이해하기로는 웹 리소스도 백엔드 jar 파일처럼 
메이븐의 버전 관리 기능을 사용하여 솔루션 버전별로 유연하게 관리를 하고 싶으신 것으로 보입니다. 

저희는 common한 ui를 웹 프로젝트로 만들고 
이를 war 패키징하여 nexus에 디플로이하고 pom.xml 에서는 디펜던시를 war 타입으로 하여 참조하여 쓰고 있습니다. 

이런 그림하고는 좀 다른 건가요?

2016년 1월 14일 오후 8:28, pffm <lep...@gmail.com>님이 작성:
내부 repo를 쓰고 있다면 webjar 형태로 만들어 maven에서 관리하는건 어떨까 싶네요.
실제로 만들어 본 적은 없지만 webjar를 써본 경험으로 가능성을 생각해 보았습니다.
https://fbflex.wordpress.com/2014/03/14/building-web-content-jars-for-spring-boot-with-gradle/

--
Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.

이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
https://groups.google.com/group/ksug에서 그룹을 방문하세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/272fea77-c6b9-4fc8-bd6d-ddec29110167%40googlegroups.com 을(를) 방문하세요.
Reply all
Reply to author
Forward
0 new messages