์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

7.1. ๋ ˆ์ฝ”๋“œ ์บก์Аํ™”ํ•˜๊ธฐ

๐Ÿœ๊ฐœ๋ฐœ์ž๋ผ๋ฉด/์ฑ…์„ ์ฝ์žโœ

by :ํ•ดํ”ผ๋ž˜๋น—๐Ÿพ 2021. 10. 1. 16:58

๋ณธ๋ฌธ

- ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ : ๋ ˆ์ฝ”๋“œ ์บก์Аํ™”ํ•˜๊ธฐ / ์ปฌ๋ ‰์…˜ ์บก์Аํ™”ํ•˜๊ธฐ / ๊ธฐ๋ณธํ˜•์„ ๊ฐ์ฒด๋กœ ๋ฐ”๊พธ๊ธฐ

- ๋ฆฌํŒฉํ„ฐ๋ง ์‹œ ์ž„์‹œ ๋ณ€์ˆ˜ : ์ž„์‹œ ๋ณ€์ˆ˜๋ฅผ ์งˆ์˜ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค๋กœ ๋ฌถ๊ธฐ / ํด๋ž˜์Šค ์ถ”์ถœํ•˜๊ธฐ / ํด๋ž˜์Šค ์ธ๋ผ์ธํ•˜๊ธฐ

์œ„์ž„ ์ˆจ๊ธฐ๊ธฐ /  ์ค‘๊ฐœ์ž ์ œ๊ฑฐํ•˜๊ธฐ

- ํ•จ์ˆ˜ ์บก์Аํ™” : ํ•จ์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ -> ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ต์ฒดํ•˜๊ธฐ


- ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ => ๊ฐ์ฒด

1) ํ•„๋“œ ์ด๋ฆ„ ๋…ธ์ถœ

2) ํ•„๋“œ๋ฅผ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ˆจ๊ฒจ์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ

: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ํ•ด์‹œ, ๋งต, ํ•ด์‹œ๋งต, ๋”•์…”๋„ˆ๋ฆฌ, ์—ฐ๊ด€ ๋ฐฐ์—ด

ํ•ด์‹œ๋งต - ํ•„๋“œ๋ฅผ ๋ช…ํ™•ํžˆ ์•Œ๋ ค์ฃผ์ง€ ์•Š๋Š”๋‹ค.

๋”๋ณด๊ธฐ

๋ฒ”์œ„๋ฅผ ์‹œ์ž‘ ๋ ํ˜น์€ ์‹œ์ž‘ ๊ธธ์ด ์ค‘ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ์œ ์ผํ•œ ๊ธธ์€ ํ•ด์‹œ๋งต์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•. ํ•ด์‹œ๋งต์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฟ์ด๋‹ค.

=>๋ ˆ์ฝ”๋“œ ๋Œ€์‹  ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉ

์ค‘์ฒฉ๋œ ๋ฆฌ์ŠคํŠธ๋‚˜ ํ•ด์‹œ๋งต์„ ์ง๋ ฌํ™”ํ•˜๋Š” ๊ฒฝ์šฐ. 

 


๋ฐฉ๋ฒ•

1. ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‹ด์€ ๋ณ€์ˆ˜๋ฅผ ์บก์Аํ™”ํ•œ๋‹ค.

2. ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ์‹ผ ๋‹จ์ˆœํ•œ ํด๋ž˜์Šค๋กœ ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๋‚ด์šฉ์„ ๊ต์ฒดํ•œ๋‹ค. ์ด ํด๋ž˜์Šค์— ์›๋ณธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ ‘๊ทผ์ž๋„ ์ •์˜ํ•˜๊ณ , ๋ณ€์ˆ˜๋ฅผ ์บก์Аํ™”ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์ด ์ด ์ ‘๊ทผ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •ํ•œ๋‹ค.

3. ํ…Œ์ŠคํŠธํ•œ๋‹ค.

4. ์›๋ณธ ๋ ˆ์ฝ”๋“œ ๋Œ€์‹  ์ƒˆ๋กœ ์ •์˜ํ•œ ํด๋ž˜์Šค ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ์ƒˆ๋กœ ๋งŒ๋“ ๋‹ค.

5. ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜ˆ์ „ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ 4์—์„œ ๋งŒ๋“  ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฐ”๊พผ๋‹ค. ํ•„๋“œ์— ์ ‘๊ทผํ•  ๋–„๋Š” ๊ฐ์ฒด์˜ ์ ‘๊ทผ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ ์ ˆํ•œ ์ ‘๊ทผ์ž๊ฐ€ ์—†๋‹ค๋ฉด ์ถ”๊ฐ€ํ•œ๋‹ค. ํ•œ ๋ถ€๋ถ„์„ ๋ฐ”๊ฟ€ ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธํ•œ๋‹ค.

-> ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ์ฒ˜๋Ÿผ ๋ณต์žกํ•œ ๋ ˆ์ฝ”๋“œ๋ผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋“ค์— ์ฃผ์˜ํ•ด์„œ ์‚ดํŽด๋ณธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ์˜ ๋ณต์ œ๋ณธ์ด๋‚˜ ์ฝ๊ธฐ์ „์šฉ ํ”„๋ฝ์‹œ๋ฅผ ๋ฐ˜ํ™˜ํ• ์ง€ ๊ณ ๋ คํ•ด๋ณด์ž.

6. ํด๋ž˜์Šค์—์„œ ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ ‘๊ทผ์ž์™€ ์›๋ณธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์„ ์ œ๊ฑฐํ•œ๋‹ค.

7. ํ…Œ์ŠคํŠธํ•œ๋‹ค.

8. ๋ ˆ์ฝ”๋“œ์˜ ํ•„๋“œ๋„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ธ ์ค‘์ฒฉ ๊ตฌ์กฐ๋ผ๋ฉด ๋ ˆ์ฝ”๋“œ ์บก์Аํ•˜๊ธฐ์™€ ์ปฌ๋ ‰์…˜ ์บก์Аํ™”ํ•˜๊ธฐ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ์ ์šฉํ•œ๋‹ค.

 

 


 ๋ ˆ์ฝ”๋“œ ์บก์Аํ™”ํ•˜๊ธฐ 

name, country์— ์ ‘๊ทผ/์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ getter, setter์„ ์ด์šฉํ•˜๊ฒŒ ํ•œ๋‹ค.

 

// ๋ ˆ์ฝ”๋“œ ์บก์Аํ™” ์ „
const organization = {name : "abcmart", country : "kor"}
result +=`<h1>${organization.name}</h1>`;

// 1) ๋ณ€์ˆ˜ ์บก์Аํ™”
function getRawDataOrganization(){return organization;}
result +=`<h1>${getRawDataOrganization().name}</h1>`;
getRawDataOrganization().name = newName;

// 2) ํด๋ž˜์Šคํ™”
class Organization {
    constructor(data){
        this._name = data.name;
        this._country = data.country;
    }
    set name(aString){this._name = aString;}
    get name(){return this._name;}
    get country(){return this._country;}
    set country(aCountryCode){this._country = aCountryCode;}
}
const organization = new Organization({name : "abcmart", country : "kor"})
// ์ œ๊ฑฐ) function getRawDataOrganization(){return organization._data;}
function getOrganization(){return organization;}

 ์ค‘์ฒฉ๋œ ๋ ˆ์ฝ”๋“œ ์บก์Аํ™”ํ•˜๊ธฐ 

usages๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํ•จ์ˆ˜(setUsage), usage๋ฅผ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜(compareUsage)๋ฅผ ์บก์Аํ™” ๊ด€์ ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ
๋”๋ณด๊ธฐ
"1920":{ //customerId
    name : "๋งˆํ‹ด ํŒŒ์šธ๋Ÿฌ",
    id : "1920",
    usages : {
        "2016" : {
            "1" : 50,
            "2" : 55,
        },
        "2015" : {
            "1" : 70,
            "2" : 63,
        },
    }
},
"38673":{
    name : "๋‹ ํฌ๋“œ",
    id : "38673" 
    ...
}

 

class CustomerData {
    constructor(data){
        this._data = data;
    }
}
function getCustomerData(){return customerData;}
function getRawDataOfCustomers(){return customerData._data;}
function setRawDataOfCustomers(arg){customerData = new CustomerData(arg);}

setUsage(customerID, year, month, amount);

 

 

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ