저는 그냥 기계공학과에 재학중인 대학생인데요.
요즘 계속 제 머리를 괴롭히는 질문이 있는데, 도통 어떻게 해야 할지 모르겠어서 여기에 글을 올려봅니다.
요즘에 PaaS 니 IaaS니 SaaS니 이런 말들이 떠돌아 알아보다가
heroku나 오픈쉬프트같은 서비스를 찾게 되었습니다.
그래서 거기에 그냥 워드프레스 올려서 한번 블로그 만들어 보려고 하는데
이런 서비스들은 로컬에서 개발해서 git로 push를 하면 이제 하나의 어플리케이션처럼 동작하더군요.
그런데 여기서 문제가 어플리케이션 (그러니까 웹)에서 수정한 것들을 로컬단(git 레파지토리)에 반영할 방법을 모르겠습니다.
뭐 워드프레스야 XAMPP와 Openshift Env를 이용해서 꾸역꾸역 로컬에서 개발할 수 있는 환경을 갖췄습니다만
문제는 DB입니다.
웹에서 게시물 같은걸 아무리 올려도 그걸 개발할 시점에 다운 받을 수 없으니까 플러그인 같은걸 수정해서 push한들 게시물도 다 날아가고..
설정값은 또 로컬 DB랑 안맞아서 웹에서 또 다시 설정해야 하고..
이게 너무 귀찮고 불편합니다.
그렇다고 매번 phpmyadmin을 이용해서 덤프 하자니 뭔가 귀찮기도 하고 2GB를 넘는건 안된다고 하니(넘을일도 없겠지만) 그냥 그런 제약사항들이 싫습니다.
또 그렇다고 rhc의 port fowarding을 쓰자니 브랜치를 만들어서 개발하는 git하고는 맞지 않습니다.
행여나 뭔가 잘못되서 롤백하려고 해도 DB는 version control이 안되어 있으니 그냥 DB만 꼬이게 됩니다.
로컬에서 다 개발해서 git로 push하되 로컬에서 개발할 때 어플리케이션(웹)의 게시물이나 그런 정보를 동기화 하거나 diff를 가지고 merge 할 수는 없을까요?
추가1
제가 원하는게 정확히 전달이 안될 것 같아 아래 더 추가 합니다.
먼저 로컬에 있는 WebServer(XAMPP)와 MySQL서버를 이용해서 제가 원하는 것들을 적용 합니다. 플러그인이나 업데이트나 기타 등등..
그 뒤, git의 메인라인이랑 merge한 후, push를 하는데 이 때 웹서버에 있던 워드프레스는 뭐 그냥 업로드만 되면 되니 상관 없습니다.
근데 문제는 컨텐츠가 들어있던 DB입니다.
제가 개발을 해서 올리더라도 DB에는 영향을 못주니 그냥 변경사항들이 다 날아가 버립니다.
지금까지 올렸던 게시물이며, 플러그인 설정들이며..
이걸 해결할 수 있는 방법이 없는지요?
ȨÆäÀÌÁö Á¦ÀÛÀ» ÇÏ¸é¼ Àú´Â ¾ÆÁ÷µµ ±ÞÇÒ¶§´Â ¸Þ¸ðÀåÀ¸·Î ÀÛ¾÷À» ÇÕ´Ï´Ù.
ȨÆäÀÌÁö ÄÚµùÀ» ¸Þ¸ðÀåÀ¸·Î ¾î¶»°Ô ÀÛ¾÷À» ÇÒ¼ö ÀÖÀ»±î¿ä?
±âº»ÀÌ ÀÖ¾î¾ß¸¸ ÇÑ´Ù´Â ¾ê±â°ÚÁÒ.
¹°·Ð Àúµµ ¸®´ª½ºÂÊÀº Àß ´Ù·çÁö ¸øÇÕ´Ï´Ù¸¸
°á±¹¿¡ ÀÌ·± Àú·± ¾Öµå¿Â ÇÁ·Î±×·¥À» »ç¿ëÇÑ´Ù°í Çصµ
¸¾¿¡ ¾Êµé¸é ¶â¾î °íÃÄ¾ß ÇÕ´Ï´Ù.
¿öµåÇÁ·¹½ºÀÇ ½ºÅ¸ÀÏ ½ÃÆ® ¶ÇÇÑ ¸¶Âú°¡Áö°í¿ä.
¹¹µç ±âº»À» Ãæ½ÇÈ÷... ±×·¯´Ùº¸¸é ÇÏ½Ã°í ½ÍÀº °Í¿¡ ´ëÇÏ¿© À§¿Í°°Àº Áú¹®µéÀÌ Â÷Â÷ »ç¶óÁö°Ô µÉ°ÍÀÔ´Ï´Ù.
°á±¹¿¡´Â ¸®´ª½º¶ÇÇÑ yum¼³Ä¡°¡ ¾Æ´Ñ Á÷Á¢ Ä¿½ºÅ͸¶ÀÌ¡À» ÇÏ°Ô µÈ´Ù°í ÇÏ´õ¶ó°í¿ä.
ÀÌ ´Ü°è°¡ µÇ½Ç¶§ ÂëÀ̽øé
À§¿Í °°Àº °í¹ÎµéÀº »ç¶óÁö°Ô µÉ°ÍÀÔ´Ï´Ù.
ÀÏ´ÜÀ» ±âº»ºÎÅÍ Â÷±ÙÂ÷±Ù Èûµé¾îµµ ÀÍÇô º¸¼¼¿ä.....^^
ÀÌÂÊÀÌ Àü°øÀÌ ¾Æ´Ï´Ù º¸´Ï ±âº»±â°¡ ¸¹ÀÌ ºÎÁ·ÇÑ°¡ º¾´Ï´Ù ¤Ð¤Ð
1. DB º¯°æ»çÇ×À» Äõ¸®·Î ÀÛ¼º (Å×ÀÌºí ¼öÁ¤Àº alter table µîÀ» ÀÌ¿ë, Å×ÀÌºí »ý¼ºÀº create table µî)
2. ÀÛ¼ºµÈ Äõ¸®¸¦ git ¿¡¼ °ü¸®
2. git ¹èÆ÷½Ã db ÆÄÀÏÀº Á¦¿ÜÇÏ°í ¹èÆ÷
3. ¼¹öÀÇ DB ¸¦ ¹é¾÷ (ȤÀº ´ýÇÁ)
4. Äõ¸®·Î ÀÛ¼ºµÈ DB º¯°æ »çÇ×À» ¼¹ö¿¡ Àû¿ë
ÀÌ·¸°Ô Çϸé ÀÏ´ÜÀº ÇØ°áµÇÁö ¾ÊÀ»±î ½Í±âµµ ÇÕ´Ï´Ù.
DB °¡ ¹öÁ¯ÄÁÆ®·ÑÀÌ ¾ÈµÇ´Â ¹®Á¦´Â...°³¹ßÀÚ ÀÔÀå¿¡¼± °ï¿ªÀ̱ä ÇÕ´Ï´Ù.
DB ¹öÀü ÄÁÆ®·ÑÀº Á¤¸» ¾î·Á¿î ÀÏÀΰ¡ º¾´Ï´Ù ¤Ð¤Ð
ÇØ¿Ü »çÀÌÆ®µé¿¡¼µµ DB¿¡ GIT·Î ¹öÀüÄÁÆ®·Ñ ÇÏ´Â °ÍÀº ³Ê¹« ºñÈ¿À²ÀûÀ̶ó°í ÇÏ´Ï..
¸»¾¸Çϼ̴ø °Íó·³ Äõ¸®·Î °ü¸®¸¦ ÇÏ´øÁö ¾Æ´Ï¸é ¹Ø¿¡ºÐ ó·³ ½º³À¼¦À» ¶°¼ merge¸¦ ÇÏ´øÁö ÇØ¾ß ÇÒ °Í °°½À´Ï´Ù ¤Ì¤Ì
·ÎÄÿ¡¼ °³¹ßÇÑ°É ¼¹ö¿¡ ¿Ã¸±¶§´Â git push ·Î Çß´Ù¸é
¼¹ö¿¡¼ ÃÖÁ¾ º¯°æÇÑ °ÍÀ» ·ÎÄ÷Π°¡Á®¿Ã¶§´Â git checkout ÇÏ´Â °Í ¾Æ´Ñ°¡¿ä?
±×¸®°í db´Â ¼¹ö¿¡ °ÍÀ» »óȲ¿¡ µû¶ó ¼¹ö¿¡¼ ·Ñ¹éÇÏ´Â °ÍÀº ¹®Á¦°¡ À־ÀÌ°í
push ¿¡ ÀÇÇØ º¯°æÁ¡ÀÌ ÀÖÀ» ¶§ ¸¶´Ù db¸¦ ½ºÅ©¸°¼¦ ó·³ ¹é¾÷À» ¶°µÎ°í
³ªÁß¿¡ ·ÎÄÿ¡¼ ¿øÇÏ´Â º¯°æÁ¡ÀÇ ¹öÀüÀ¸·Î revert ÇÑ´Ù¸é ±× ¶§ ¹é¾÷µÈ ÇØ´ç ¹öÀüÀÇ db¸¦ ·ÎÄÿ¡ º¹»çÇÏ°í ·ÎÄà db¸¦ ¸¸µé¾î ·ÎÄÿ¡¼ ÀÛ¾÷ÇØ¾ß ÇÏ´Â °Í ¾Æ´Ñ°¡¿ä?
¹«Æ°
ÀÏ´Ü Openshift°°Àº °æ¿ì´Â git pushÇÏ°Ô µÇ¸é ¸±¸®Áî ÇÏ´Â °Í°ú µ¿ÀÏÇÕ´Ï´Ù.
±× ÈÄ¿¡ Openshift ¾îÇà ³»¿¡¼ ¾Ï¸¸ ¹Ù²ãºÁ¾ß ¼Ò½º´Ü¿¡¼´Â ¾Æ¹«·± º¯È°¡ ¾ø½À´Ï´Ù.
git checkout¸¦ ÇÏ°Ô µÇ´õ¶óµµ ±×³É ¼Ò½º´Â ´©°¡ ¼öÁ¤ÇÑ Àû ¾øÀ¸´Ï ÃֽŠ»óű¸¿ä.
¸»¾¸Çϼ̴ø °Íó·³ DBÀÇ ½º³À¼¦À» ¶°¼ ÀÛ¾÷ ÇÏ´Â ¹æÇâÀ¸·Î °¡¾ß µÉ °Í°°½À´Ï´Ù.
ÀÌÂÊ ºÐ¾ß´Â ³Ê¹« ¾î·Á¿î °Í °°½À´Ï´Ù ¤Ð¤Ð
°¢Á¾ µµ±¸¸¦ ¸Å²öÇÏ°Ô ¿¬µ¿½Ãų¼ö°¡ ¾ø±â ¶§¹®¿¡ 100% ±âº»¸¸À¸·Î ÄÁÆ®·ÑÇÒ ¼ö ÀÖµµ·Ï Nativeȯ°æ¿¡¼ ÇÕ´Ï´Ù..
±Ã±ÝÇÑ°Ô Àִµ¥ ±×·¯¸é °³¹ß°úÁ¤¿¡¼ ½Ç¼ö°¡ ‰ç´ø ¹ö±×°¡ ‰ç´ø ±×·±°Ô ¹ß°ßµÇ¸é
Nativeȯ°æ¿¡¼ ÀÛ¾÷À» ÇÏ°Ô µÇ¸é ¼ºñ½º¿¡ Àå¾Ö°¡ »ý°Ü ÁߴܵÇÁö ¾Ê³ª¿ä?
ÀÏ¹Ý ¼ÒÇÁÆ®¿þ¾î¾ß ¸±¸®Áî Àü¿¡¸¸ ÀâÀ¸¸é µÈ´ÙÁö¸¸ Áö¼ÓÀûÀ¸·Î ¼ºñ½º¸¦ ÇÏ°í ÀÖ´Â À¥ ȯ°æ¿¡¼´Â ÀÌ·± Àå¾Ö´Â Á» ½É°¢ÇÒ °Í °°¾Æ¼¿ä.
Á¦°¡ ÀÌ ÂÊ °ü·Ã Àü°øµµ ¾Æ´Ï°í Á¾»çÀÚ°¡ ¾Æ´Ï¶ó Àß ¸ô¶ó¼ ±×·¯´Âµ¥
Ȥ½Ã ½Ç¹«¿¡¼´Â Á¶±Ý Å« ¹ö±×³ª ÀÌ·± °ÍÀ¸·Î ÀÎÇÑ ¼ºñ½º Àå¾Ö½Ã¿¡´Â ¾î¶»°Ô ´ëóÇϽôÂÁö¿ä..?