์ด ์คํ์ผ ๊ฐ์ด๋์ ์์ฃผ ์ข์ ์ ๋ณด๊ฐ ์์ต๋๋ค. ์๋น์ค์ ๋จ์ผ ์ฑ ์, ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ผ๋ง๋ ์ธ๋ถํ๋์ด์ผ ํ๋์ง์ ๋ํ ์ง๋ฌธ์ด ์์์ต๋๋ค. ์๋ฅผ ๋ค์ด, crud ๊ธฐ๋ฅ์ด ์๋ ๋น๋์ค ์ฑ์ด ์์ต๋๋ค. ์ฒ์์ ๋ด ์๋น์ค ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
// videos.service.js
(function() {
'use strict';
function Videos($http) {
var service = {
getVideos: getVideos,
getVideo: getVideo,
saveVideo: saveVideo,
deleteVideo: deleteVideo
}
return service;
function getVideos() {
// return video list
}
function getVideo() {
// return video by id
}
function saveVideo() {
// add/edit video
}
function deleteVideo() {
// delete video
}
}
})();
์ด๋ ๊ฒ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข์๊น์?
// videos.service.js
(function() {
'use strict';
function Videos($http) {
var service = {
getVideos: getVideos,
getVideo: getVideo
}
return service;
function getVideos() {
// return video list
}
function getVideo() {
// return video by id
}
}
})();
// videos_crud.service.js
(function() {
'use strict';
function VideosCrud($http) {
var service = {
saveVideo: saveVideo,
deleteVideo: deleteVideo
}
return service;
function saveVideo() {
// add/edit video
}
function deleteVideo() {
// delete video
}
}
})();
์ด๊ฒ์ ๊ฐ์ธ ์ทจํฅ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ง๋ง ๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ ๊ดํด ๊ฐ์ง ์ ์๋ ํต์ฐฐ๋ ฅ์ ์ป์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ ์ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ ๋ Angular์ ์ ๋ฌธ๊ฐ๋ ์๋์ง๋ง CRUD ์๋น์ค๋ก์ ๋ชจ๋ CRUD ์์ ์ ํฌํจํ ์ ์์ผ๋ฏ๋ก ๋น๋์ค(๊ฐ์ ธ์ค๊ธฐ ํฌํจ) ๋ฐ video_crud(์ ์ฅ/์์ฑ ๋ฐ ์ญ์ ํฌํจ)์์ ์ค๋จํด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด CRUD ์๋น์ค์ ์๋ฏธ๊ฐ ํผ๋๋ ์ ์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๊ทธ๊ฒ์ ๋ํ ๋ ๋ง์ ์๊ฒฌ์ ๊ธฐ๋ค๋ฆฌ์ญ์์ค. :)
์ฒซ๋์ ์ด๊ธฐ ์๋น์ค๋ ๋์ผํ REST API ์๋ํฌ์ธํธ์ ๋ํด CRUD๋ฅผ ์ฒ๋ฆฌํ์ฌ ๋น๋์ค ๊ด๋ จ ์ง์์ฑ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. $http์ ๋ํด ํ๋์ ๋์ผํ ์ข ์์ฑ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ถ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ธฐ ์ํด getVideo๋ฅผ ํธ์ถํด์ผ ํ๋ udateVideo ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋นํ์ฌ ์ด๋ฌํ ๋ถํ ์๋น์ค๋ก ๋๋ ์๋ ์์ต๋๋ค.
@viniciuskneves ๊ทธ ์์ด๋์ด๋ api ์๋ฒ๊ฐ ๋ ์ฌ์ด๋ฅผ ์๋ณํด์ผ ํ๋ ์์ ์์ ๊ณต๊ฐ ๋ ๊ด๋ฆฌ์ ์ฌ์ฉ์๋ฅผ ์ํ ์ฑ์ ์ ๊ณตํ ๋ ์ค์ฉ์ฑ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
@tedvanderveen ์ ๋ ๊ทธ ๋ง์ ๋์ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ชจ๋์ด ํ๋ ์ผ๋ณด๋ค ๋ชจ๋ ์์ฒด์ ์ ํ์ ๋ํด ๋ถ๋ฆฌ ์ธ๋ถ์ฑ์ด ๋ ๋ง์ด ์กด์ฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ง๋ฌธ์ '์?'์ ๋๋ค. ๊ทธ๋ผ.... '์ด๋ ๊ฒ ํ๋ฉด ๋ฌด์จ ์ด๋์ด ์๊ฒ ์ด?'
๋๋ ทํ ์ด์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ช ํํ๊ฒ ์ ์ํ ์ ์๊ณ IF ๋ฐ MAYBE๋ก ์ฑ์์ง์ง ์๋ ํ ๊ฐ์น๊ฐ ์์ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๊ฐ์ด๋์ ์ถ๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฏ๋ก ๋ฌธ์ ๋ฅผ ๋ซ์ง๋ง ์ง๋ฌธ์ ํ๋ฅญํ๊ณ ๋ต๋ณ์ด ๋์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๋ด ๊ด์ : ๊ทธ๋ ๊ฒ ํ ๊ฐ์น๊ฐ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
@johnpapa ์ ๋ ฅ