Pim-community-dev: [์งˆ๋ฌธ] ์™„์ „์„ฑ ๊ณ„์‚ฐ๊ธฐ

์— ๋งŒ๋“  2016๋…„ 04์›” 18์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: akeneo/pim-community-dev

๋‚˜๋Š” ์งˆ๋ฌธ์„ํ•˜๊ณ ์žˆ๋‹ค

ํ†ตํ•ฉ์— PIM 1.4 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ช‡ ๋‹ฌ ํ›„์— 1.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ
์ œํ’ˆ์— ์ƒˆ๋กœ์šด ๊ด€๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋งž์ถคํ˜• ์ œํ’ˆ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์ธ ํ…Œ์ด๋ธ”์„ ํ†ตํ•œ ManyToMany ๋‹จ๋ฐฉํ–ฅ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค.

์งˆ๋ฌธ
๊ณ„์‚ฐ์— ์ถ”๊ฐ€ ์ œํ’ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์™„์ „์„ฑ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ์—…๋ฐ์ดํŠธ / ๋ฎ์–ด ์“ฐ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๊ฒƒ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

question

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

์•ˆ๋…•ํ•˜์„ธ์š” @ a2xchip ,

์•ˆํƒ€๊น๊ฒŒ๋„ ํ˜„์žฌ CompletenessGenerator ๋ฅผ ์žฌ์ •์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ ์œ ํ˜•์ด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” PIM์˜ ๋งˆ์ง€๋ง‰ ์œ„์น˜ ์ค‘ ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์Šฌํ”„๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ ํ•  ์ผ ๋ชฉ๋ก์— ์žˆ์ง€๋งŒ ์•„์ง ETA๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„์€ ๋งค์šฐ ๋ฏผ๊ฐํ•˜๊ณ  ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์™„์ „์„ฑ์„ ๊ณ„์‚ฐํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ProductValue์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ€๊ฒฉ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ ํ•œ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. prepareCompletePrices ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์ด ์„ฑ์ทจํ•ด์•ผ ํ•  ๊ฒƒ์˜ ์ข‹์€ ์‹œ์ž‘์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ getExtraJoins ๋ฐ getExtraConditions ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ • ์˜ํ•˜์—ฌ ์ƒˆ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ณ  ์ฟผ๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ๋ฌธ์ œ๋ฅผ ๋” ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๋ฉด ๋” ๋‚˜์€ ๋„์›€์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

์•ˆ๋…•ํ•˜์„ธ์š” @jjanvier

๋น ๋ฅด๊ณ  ์™„์ „ํ•œ ์‘๋‹ต์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์‹œ์ž‘ํ•˜๊ธฐ์— ์ข‹์€ ์ ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์ œํ’ˆ ๊ฐ€์น˜ ์—”ํ‹ฐํ‹ฐ์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ณ  ์ œํ’ˆ ์—”ํ‹ฐํ‹ฐ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์ œํ’ˆ ํŽธ์ง‘ ์–‘์‹์— ์ด๋ฏธ์ง€ ํƒญ์„ ์ถ”๊ฐ€ํ•˜๊ณ  fileinfo ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฐ๊ฒฐ๋˜๋Š” ์ด๋ฏธ์ง€ (์ปฌ๋ ‰์…˜) ์†์„ฑ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

manyToMany:
        images:
            targetEntity: Akeneo\Component\FileStorage\Model\FileInfoInterface

์ถ”์‹ 
์ˆ˜์ถœ์„ ์œ„ํ•ด 100 % ์™„์ œํ’ˆ์„ ์ˆ˜์ถœํ•˜๋„๋ก ์กฐ์ • ๋œ EnhanceConnector๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  100 % ์™„์„ฑ ๋œ ์ œํ’ˆ์— ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

getMainSqlPart ๋ฉ”์†Œ๋“œ @ a2xchip์„ ๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์™„์ „์„ฑ์„ ์ฑ„์šธ ๋ณต์žกํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— ์–ธ๊ธ‰ ํ•œ getExtraJoins ๋ฐ getExtraConditions ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ • ์˜ํ•˜์—ฌ ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ์— ์ž‘๋™ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋ฉด getMainSqlPart ์ถ”๊ฐ€ ๋…ผ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์˜ ํ•„์š”์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œ 1 ๊ฐœ (๋˜๋Š” 2 ๊ฐœ ๋˜๋Š” 3 ๊ฐœ ๋˜๋Š” X) ๋˜๋Š” ๋ชจ๋“  ์ด๋ฏธ์ง€๊ฐ€ ์ฑ„์›Œ ์กŒ์„ ๋•Œ ์ œํ’ˆ์ด ์™„์„ฑ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ œ ์กฐ์–ธ์€ ์™„์ „์„ฑ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € getExtraJoins ๋ฐ getExtraConditions ๋‘ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์‚ฌ์šฉ์ž ์ง€์ • ๋…ผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฐ€๊ฒฉ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ ํ•œ ์ž‘์—…์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ œ ์„ค๋ช…์ด ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค ^^
์–ด๋ ค์›€์ด ์žˆ์œผ์‹œ๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋งˆ์‹œ๊ณ  ์—ฌ๊ธฐ๋กœ ์˜ค์„ธ์š”;)

@jjanvier ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๋‚˜๋Š” ๋‹น์‹ ์˜ ์ถ”์ฒœ์„ ๋”ฐ๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค :-) ๋‚˜๋Š” ๊ทธ๋“ค์ด ๋‚˜๋ฅผ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝ ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!

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