Angular-styleguide: ๋‹จ์ผ ์„œ๋น„์Šค ์ฑ…์ž„

์— ๋งŒ๋“  2015๋…„ 07์›” 28์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: johnpapa/angular-styleguide

์ด ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ์— ์•„์ฃผ ์ข‹์€ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค์™€ ๋‹จ์ผ ์ฑ…์ž„, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์„ธ๋ถ„ํ™”๋˜์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 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
        }
    }

})();

์ด๊ฒƒ์€ ๊ฐœ์ธ ์ทจํ–ฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์— ๊ด€ํ•ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํ†ต์ฐฐ๋ ฅ์„ ์–ป์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

question

๋ชจ๋“  6 ๋Œ“๊ธ€

์ €๋Š” Angular์˜ ์ „๋ฌธ๊ฐ€๋Š” ์•„๋‹ˆ์ง€๋งŒ CRUD ์„œ๋น„์Šค๋กœ์„œ ๋ชจ๋“  CRUD ์ž‘์—…์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋น„๋””์˜ค(๊ฐ€์ ธ์˜ค๊ธฐ ํฌํ•จ) ๋ฐ video_crud(์ €์žฅ/์ƒ์„ฑ ๋ฐ ์‚ญ์ œ ํฌํ•จ)์—์„œ ์ค‘๋‹จํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด CRUD ์„œ๋น„์Šค์˜ ์˜๋ฏธ๊ฐ€ ํ˜ผ๋™๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์˜๊ฒฌ์„ ๊ธฐ๋‹ค๋ฆฌ์‹ญ์‹œ์˜ค. :)

์ฒซ๋ˆˆ์— ์ดˆ๊ธฐ ์„œ๋น„์Šค๋Š” ๋™์ผํ•œ REST API ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•ด CRUD๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋น„๋””์˜ค ๊ด€๋ จ ์ง€์†์„ฑ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. $http์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ๋™์ผํ•œ ์ข…์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด getVideo๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” udateVideo ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ถ„ํ•  ์„œ๋น„์Šค๋กœ ๋๋‚  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@viniciuskneves ๊ทธ ์•„์ด๋””์–ด๋Š” api ์„œ๋ฒ„๊ฐ€ ๋‘˜ ์‚ฌ์ด๋ฅผ ์‹๋ณ„ํ•ด์•ผ ํ•˜๋Š” ์‹œ์ ์—์„œ ๊ณต๊ฐœ ๋Œ€ ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์•ฑ์„ ์ œ๊ณตํ•  ๋•Œ ์‹ค์šฉ์„ฑ์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tedvanderveen ์ €๋„ ๊ทธ ๋ง์— ๋™์˜ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์ด ํ•˜๋Š” ์ผ๋ณด๋‹ค ๋ชจ๋“ˆ ์ž์ฒด์˜ ์œ ํ˜•์— ๋Œ€ํ•ด ๋ถ„๋ฆฌ ์„ธ๋ถ„์„ฑ์ด ๋” ๋งŽ์ด ์กด์žฌํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ์€ '์™œ?'์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ.... '์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฌด์Šจ ์ด๋“์ด ์žˆ๊ฒ ์–ด?'

๋šœ๋ ทํ•œ ์ด์ ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์—†๊ณ  IF ๋ฐ MAYBE๋กœ ์ฑ„์›Œ์ง€์ง€ ์•Š๋Š” ํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๊ฐ€์ด๋“œ์— ์ถ”๊ฐ€๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ๋‹ซ์ง€๋งŒ ์งˆ๋ฌธ์€ ํ›Œ๋ฅญํ•˜๊ณ  ๋‹ต๋ณ€์ด ๋˜์—ˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

๋‚ด ๊ด€์ : ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฐ€์น˜๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@johnpapa ์ž…๋ ฅ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰