๊ทธ๋ฃจ๋น„ ์—์„œ ์Šค์นผ๋ผ ๋กœ

22 views
Skip to first unread message

๋ฐ•์ œ๊ถŒ

unread,
Jan 29, 2010, 11:10:36โ€ฏPM1/29/10
to ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน
์š”์ฆ˜ ์Šค์นผ๋ผ์ชฝ ์ฑ…์„ ๋ณด๊ณ ๋Š” ์žˆ๋Š”๋ฐ, ์ž˜ ์ฐพ๊ธฐ ํž˜๋“  ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ.. ์งˆ๋ฌธ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋””๋น„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” (ํ•œ์ชฝ๋””๋น„๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ, ๋‹ค๋ฅธ ๋””๋น„์— ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœํ•œ) ์ฝ”๋“œ์ธ๋ฐ์š”.

def set = sql_to.dataSet('t_members')

sql_from.eachRow("select * from old_table order by id asc") { rs ->
println rs.ms_name

def map =[ m_id :rs.ms_id,
m_name : rs.ms_name,
m_nick : somef(rs.ms_nick),
...]
set.add(map);
}

๋Œ€๋žต ์ด๋Ÿฐ ์ฝ”๋“œ์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ eachRow ๋‚˜, add(map) ๋ถ€๋ถ„์ด ๊ฝค ๋งˆ์Œ์— ๋“ค์—ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋ฅผ ์Šค์นผ๋ผ๋กœ ์˜ฎ๊ฒจ๋ณด๋ ค๊ณ  ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ..
์˜ค๋ ๋ฆฌ์ฑ… 13์žฅ DSL์„ค๋ช…ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ SQL๊ด€๋ จ ์„ค๋ช…์ด ์•ฝ๊ฐ„ ๋‚˜์˜ค๋Š”๊ฒƒ ๋ง๊ณ ๋Š”
์ฑ…์—์„œ๋Š” ์ž˜ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ์ฃผ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ „์— ์šฐ๋ฆฌ๊ทธ๋ฃน์—์„œ๋„ ์–ธ๊ธ‰๋œ๊ฒƒ ๊ฐ™์€..
http://lpsherrill.blogspot.com/2009/07/using-scala-with-groovysqlsql.html
๋Š” ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ. ์˜ฌ๋ฐ”๋ฅธ ํ•ด๋ฒ•์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ฐจ๋ผ๋ฆฌ ์ € ๋งํฌ์—์„œ Daniel Spiewak ์ด ๋‚จ๊ธด ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ๋” ๊ด€์‹ฌ์ด ๊ฐ‘๋‹ˆ๋‹ค๋งŒ, ์ œ๋Œ€๋กœ๋œ ์ฝ”๋“œ๋Š”
์•„๋‹Œ๊ฒƒ๊ฐ™๊ตฐ์š”. ์–ด์ฉŒ๋ฉด ์Šค์นผ๋ผ์—์„œ๋Š” ๊ทธ๋ƒฅ JDBC๋ฅผ ์ด์šฉํ•ด๋„ ํŽธ๋ฆฌํ•˜๋”๋ผ... ์ผ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค๋Š”
์ƒ๊ฐ๋„ ๋“œ๋„ค์š”..

์ด ๋ถ„์•ผ์— ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„ ๊ณ„์‹œ๋ฉด, ์–ด๋–ค์‹์œผ๋กœ ์‹œ์ž‘ํ•˜์…จ๋Š”์ง€ ์กฐ์–ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค~~.

drypot

unread,
Jan 30, 2010, 8:31:03โ€ฏAM1/30/10
to ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน
๋‹ค๋ฅธ ๊ฒƒ๋„ ๊ทธ๋ ‡๊ฒ ์ง€๋งŒ ๋””๋น„ ๊ธฐ์ˆ  ์„ ํƒ์€ ๊ฐœ์ธ์˜ ์ž‘์—… ์Šคํƒ€์ผ์— ๋”ฐ๋ผ์„œ ๋งŽ์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์™ธ์ฃผ๋ฅผ ๋ฐ›์•„์„œ 3 ๊ฐœ์›”์ด๋‚˜ 6 ๊ฐœ์›” ์•ˆ์— ์™„๋ฃŒํ•˜๊ณ  ๋‚ฉํ’ˆํ•˜๋Š” ๊ฒฝ์šฐ
ํฐ ๋ฌธ์ œ ์—†๋Š” ์“ฐ๊ธฐ ํŽธํ•œ ์•„๋ฌด ๊ธฐ์ˆ ์ด๋‚˜ ์„ ํƒํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ๋  ๊ฒ๋‹ˆ๋‹ค.
JDBC ๋“ , ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋“ , iBatis ๋“  ์ƒ๊ด€์ด ์—†์ด
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋“ ์ง€, ํŒ€์ด ์ต์ˆ™ํ•œ ๊ธฐ์ˆ ์ด๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ณธ์ธ์ด ์ง์ ‘ 10 ๋…„ ์ด์ƒ ๊ด€๋ฆฌํ•˜๊ณ  ์ƒ๋ช…์„ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ด๋ฉด ์–˜๊ธฐ๊ฐ€ ์ข€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
๊ฒฝํ—˜์ƒ ๋งŽ์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ ๋“ค์€ ์ƒ๋ช…์ด ์งง์ง€ ์•Š์Šต๋‹ˆ๊นŒ.
์‹  ์„ธ์ƒ์ด ์˜จ ๊ฒƒ ์ฒ˜๋Ÿผ ๋งˆ์ผ€ํŒ… ํ•˜๋˜ ๊ฒƒ๋“ค๋„ ๊ทธ๋ƒฅ ์†์ ˆ์—†์ด ์‚ฌ๋ผ์ง€๊ณค ํ•ฉ๋‹ˆ๋‹ค.

๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ  ๋ฟ๋งŒ์ด ์•„๋‹ˆ๊ณ ,
10 ๋…„ ์ด๋ฉด ์šด์˜์ฒด์ œ๊ฐ€ ๋ช‡ ๋ฒˆ ๋ฐ”๋€Œ๊ณ , ์ค‘๊ฐ„ ํ”Œ๋žซํผ์ด ๋ฐ”๋€Œ๊ณ , ์–ธ์–ด๋„ ๋ฐ”๋€Œ๊ณ ,
๋Œ€์‘ํ•ด์•ผํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋„ ๋ฐ”๋€Œ๊ณ , ์—ฌํŠผ ๋ชจ๋“  ๊ฒƒ๋“ค์ด ๋ฐ”๋€๋‹ˆ๋‹ค.

๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ ๋งŒ ๋†“๊ณ  ๋ณด๋”๋ผ๊ณ  ์ž์ฃผ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—
๊ทธ ์ถ”์„ธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ ค ํ•˜๋‹ค๋ณด๋ฉด ์‚ฌ์‹ค ํ”„๋กœ์ ํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์šฉ์„ ๋ณด๊ฐ•ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค
๋ฐฐ๊ผฝ์ด ๋” ์ปค์ง€๋Š” ์ƒํ™ฉ์ด ์™•์™• ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

M$ ์—์„œ C#, F# ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ๋„ ๋Š๊ผˆ๊ณ ,
์ž๋ฐ”๋กœ ์ด์‚ฌ์™€์„œ Groovy, Scala ์ด์‚ฌ ๋‹ค๋‹ˆ๋ฉด์„œ๋„ ๋Š๊ผˆ์ง€๋งŒ,
๋น„ํ‘œ์ค€์ด๋‚˜ ์‚ด์ง ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๊ธฐ์ˆ ๋“ค์ด ์œ ํ˜น์ด ๊ฐ•ํ•˜์ง€๋งŒ
๋ฉ€๋ฆฌ ๋ณด๊ณ  ๋ƒ‰์ •ํ•˜๊ฒŒ ํŒ๋‹จํ•˜๋ฉด ์ด๋†ˆ๋“ค์ด ์šด์‹ ์˜ ํญ์„ ๋งค์šฐ ์ œํ•œํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Linq ๋„ ๊ทธ๋žฌ๊ณ , GrooySql ๋„ ๊ทธ๋žฌ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์•„์ฃผ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋‚˜ iBatis ๋„ ๊ทธ๋Ÿฐ ๋ฉด์—์„œ ๊ฒฐ์ฝ” ์ž์œ ๋กญ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ธฐ์ˆ ์ด๋ž€ ๊ฒƒ์ด ๊ฐœ์„ ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๊ตฌ ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ๊ณผ ๊ธฐ๋ฐ˜์˜ ์ƒ๋ช…์ด ๊ธด ๊ฒƒ๋„ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์š”์ฆ˜ ๋‹ค์‹œ ์Šคํ”„๋งํ•˜๊ณ  EJB ์ €์šธ์งˆ ํ•˜๋Š๋ผ ์•„์ง ๋ณธ๊ฒฉ์ ์œผ๋กœ ์Šค์นผ๋ผ ์ฝ”๋”ฉ์— ๋“ค์–ด๊ฐ€์ง„ ๋ชปํ–ˆ๋Š”๋ฐ,
์ € ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํŽธ์˜์„ฑ์„ ํฌ๊ธฐํ•˜๊ณ  ์–ธ์–ด ์ด์‚ฌ ๋‹ค์‹œ๋Š” ๊ฒƒ์— ์ด›์ ์„ ๋งž์ถ”์–ด
๊ฑ JDBC ์“ฐ๋Š” ์ชฝ์œผ๋กœ ๋งŽ์ด ๊ธฐ์šธ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๊ฐ„ ์‚ฝ์งˆ๋“ค์„ ํ†ตํ•ด ์ „ ๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ ๋ณด๋‹ค ์–ธ์–ด์— ๋” ๊ด€์‹ฌ์ด ์žˆ์–ด์„œ
๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ ์ค„์—ฌ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ DSL ๋ฅ˜๋Š” ์ตœ๋Œ€ํ•œ ํ”ผํ•˜๊ณ , ORM ์ด๋‚˜ iBatis ๋Š” ์จ๋„ ๋  ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ ๊ทธ ๋งˆ์ €๋„ ์‹ ๊ฒฝ ์“ฐ์ง€๋ง๊ณ ,
๊ฑ JDBC ๋ฅผ ์จ์„œ DAO ๋“ค ๋งŒ๋“ค์–ด ๋‘๋ฉด ์ž๋ฐ” ์•ˆ ์—์„œ๋Š”
๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์•ž์œผ๋กœ 10 ๋…„๊ฐ„ ๊ณ„์† ์ด์‚ฌ ์‹œํ‚ค๋Š”๋ฐ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.


๋ง: ํ•„๋ช…์„ ๋ฐ”๊นŒ๋ดค์Šต๋‹ˆ๋‹ค. ^^


On Jan 30, 1:10 pm, ๋ฐ•์ œ๊ถŒ <jayp...@gmail.com> wrote:
> ์š”์ฆ˜ ์Šค์นผ๋ผ์ชฝ ์ฑ…์„ ๋ณด๊ณ ๋Š” ์žˆ๋Š”๋ฐ, ์ž˜ ์ฐพ๊ธฐ ํž˜๋“  ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ.. ์งˆ๋ฌธ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค.
>
> ์•„๋ž˜๋Š” ๋””๋น„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” (ํ•œ์ชฝ๋””๋น„๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ, ๋‹ค๋ฅธ ๋””๋น„์— ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœํ•œ) ์ฝ”๋“œ์ธ๋ฐ์š”.
>
> def set = sql_to.dataSet('t_members')
>
> sql_from.eachRow("select * from old_table order by id asc") { rs ->
> println rs.ms_name
>
> def map =[ m_id :rs.ms_id,
> m_name : rs.ms_name,
> m_nick : somef(rs.ms_nick),
> ...]
> set.add(map);
>
> }
>
> ๋Œ€๋žต ์ด๋Ÿฐ ์ฝ”๋“œ์˜€์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ eachRow ๋‚˜, add(map) ๋ถ€๋ถ„์ด ๊ฝค ๋งˆ์Œ์— ๋“ค์—ˆ์—ˆ์Šต๋‹ˆ๋‹ค.
>
> ์ด ์ฝ”๋“œ๋ฅผ ์Šค์นผ๋ผ๋กœ ์˜ฎ๊ฒจ๋ณด๋ ค๊ณ  ์‹œ๋„ํ•ด๋ดค๋Š”๋ฐ..
> ์˜ค๋ ๋ฆฌ์ฑ… 13์žฅ DSL์„ค๋ช…ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ SQL๊ด€๋ จ ์„ค๋ช…์ด ์•ฝ๊ฐ„ ๋‚˜์˜ค๋Š”๊ฒƒ ๋ง๊ณ ๋Š”
> ์ฑ…์—์„œ๋Š” ์ž˜ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ์ฃผ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
>

> ์ „์— ์šฐ๋ฆฌ๊ทธ๋ฃน์—์„œ๋„ ์–ธ๊ธ‰๋œ๊ฒƒ ๊ฐ™์€..http://lpsherrill.blogspot.com/2009/07/using-scala-with-groovysqlsql....

Jay Park

unread,
Jan 30, 2010, 12:43:34โ€ฏPM1/30/10
to kg...@googlegroups.com
๋‹ต๋ณ€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


> ๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ ๋งŒ ๋†“๊ณ  ๋ณด๋”๋ผ๊ณ  ์ž์ฃผ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—
> ๊ทธ ์ถ”์„ธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ ค ํ•˜๋‹ค๋ณด๋ฉด ์‚ฌ์‹ค ํ”„๋กœ์ ํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์šฉ์„ ๋ณด๊ฐ•ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค
> ๋ฐฐ๊ผฝ์ด ๋” ์ปค์ง€๋Š” ์ƒํ™ฉ์ด ์™•์™• ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„์ด ํŠนํžˆ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค~. ^^

---------------
http://groovy.pe.kr/30
http://jinto.pe.kr



2010๋…„ 1์›” 30์ผ ์˜คํ›„ 10:31, drypot <dry...@gmail.com>๋‹˜์˜ ๋ง:
--
"ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน" ์— ๊ฐ€์ž…ํ•˜์…จ๊ธฐ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค
์ด ๊ทธ๋ฃน์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฃผ์†Œ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
KG...@googlegroups.com
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜์‹œ๋ ค๋ฉด ๋‹ค์Œ์œผ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
KGGUG+un...@googlegroups.com
์ถ”๊ฐ€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด http://groups.google.com/group/KGGUG?hl=ko์˜ ๊ทธ๋ฃน์„
๋ฐฉ๋ฌธํ•˜์„ธ์š”.

drypot

unread,
Feb 8, 2010, 3:11:52โ€ฏAM2/8/10
to ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน
Scala ๋””๋น„ ๊ด€๋ จ ๋„์šฐ๋ฏธ๊ฐ€ Grails GORM ์ฒ˜๋Ÿผ Lift ์— Lift Mapper ๋ผ๊ณ  ๋“ค์–ด์žˆ๊ตฐ์š”.
์•„์ง ๊ตฌ์ฒด์ ์ธ ์ž‘๋™๋ฐฉ๋ฒ•์ด ์ดํ•ด๋œ ๊ฒƒ์€ ์•„๋‹Œ๋ฐ,
ํŠน์ดํ•œ ์ ์€ ์–ด๋…ธํ…Œ์ด์…˜์ด ์•„๋‹Œ ์Šค์นผ๋ผ ๋ฌธ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๊ธฐ์ˆ ํ•œ๋‹ค๋Š” ๊ฒ๋‹ˆ๋‹ค.

Lift Mapper ์—์„œ๋Š” ์ด๊ฒƒ์ด ๋น›์„ ๋ฐœํ•˜๋Š” ๋ถ€๋ถ„์ด validation ์ธ๋ฐ์š”,
ํ•„๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ณณ์— ์Šค์นผ๋ผ ๋ฌธ๋ฒ•์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์ด๋‚˜ validation ์„ ๊พธ๋ฉฐ ๋†“์„ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฐ ๋ฐ์„œ ์–ด๋…ธํ…Œ์ด์…˜ ์•ˆ ์“ฐ๋‹ˆ ๊น”๋”ํ•ด ์ง€๋Š”๊ตฐ์š”.
์ผ๋‹จ ์ด๋ฏธ ์•„๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ์ •์˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ.

์ž๋ฐ”๋‚˜ Groovy ์—์„œ๋„ ํ•„๋“œ๋ณ„๋กœ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๋ฉด
์–ด๋…ธํ…Œ์ด์…˜ ์—†์ด ์œ ์—ฐํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ• ํ…๋ฐ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

validation ์„ ๊ฐ ํŽ˜์ด์ง€์—์„œ ์•ˆ ํ•˜๊ณ  ํ•œ ๋ชจ๋ธ ํด๋ž˜์Šค์— ๋ชฐ์•„๋ฉด ์žฅ์ ์ด ์žˆ๋“ฏ์ด,
validation ์„ ๊ฐ ๋ชจ๋ธ ํด๋ž˜์Šค์—์„œ ํ•˜์ง€ ์•Š๊ณ  ๊ฐ ํ•„๋“œ ํด๋ž˜์Šค์— ๋Œ์•„๋‘๋‹ˆ ๋” ์ข‹์•„์ง€๋„ค์š”.

Java EE 6 ์ŠคํŽ™์—์„œ๋„ ์ผ๋ฐ˜ ํŽ‘์…˜ ์ฝœ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๊ฒƒ์„
๊ณผ๋„ํ•˜๊ฒŒ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ณด์˜€๋Š”๋ฐ,
์–ด๋…ธํ…Œ์ด์…˜์ด ๋„์ž…๋˜๊ณ  ๋‚˜์„œ ์ด์ชฝ์œผ๋กœ ๋„ˆ๋ฌด ๋ฌด๋ฆฌํ•˜๊ฒŒ ๊ฐ€๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€ ์‹ถ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜, ๊ฒฐ๊ตญ ์ด๋Ÿฐ์‹ ์ ‘๊ทผ์„ ํ•˜๋ฉด SQL ์ด ์‚ฌ๋ผ์ ธ์„œ, =,=
์‹œํ€„ ์ฝœํ•˜๋Š” ๊ฒƒ์ด ์–ด๋งˆ๋‚˜ ์ž˜ ๋˜์–ด์žˆ๋Š”์ง€๋Š” ๋” ๋ด์•ผ ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ผ๋‹จ์€ ๋ชจ๋ธ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฒƒ์€ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋‚˜ GORM ๋ณด๋‹ค Lift ๋ฐฉ์‹์ด ์ข‹์•„๋ณด์ด๋„ค์š”.


On Jan 31, 2:43 am, Jay Park <jayp...@gmail.com> wrote:
> ๋‹ต๋ณ€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
>
> > ๋””๋น„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ์ˆ ๋งŒ ๋†“๊ณ  ๋ณด๋”๋ผ๊ณ  ์ž์ฃผ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—
> > ๊ทธ ์ถ”์„ธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ ค ํ•˜๋‹ค๋ณด๋ฉด ์‚ฌ์‹ค ํ”„๋กœ์ ํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์šฉ์„ ๋ณด๊ฐ•ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค
> > ๋ฐฐ๊ผฝ์ด ๋” ์ปค์ง€๋Š” ์ƒํ™ฉ์ด ์™•์™• ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
>
> ์ด ๋ถ€๋ถ„์ด ํŠนํžˆ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค~. ^^
>

> ---------------http://groovy.pe.kr/30http://jinto.pe.kr

> > KGGUG+un...@googlegroups.com <KGGUG%2Bunsu...@googlegroups.com>
> > ์ถ”๊ฐ€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉดhttp://groups.google.com/group/KGGUG?hl=ko์˜๊ทธ๋ฃน์„
> > ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

๋ฐฑ๊ธฐ์„ 

unread,
Feb 8, 2010, 3:21:29โ€ฏAM2/8/10
to kg...@googlegroups.com
M$ ์—์„œ C#, F# ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ๋„ ๋Š๊ผˆ๊ณ ,
์ž๋ฐ”๋กœ ์ด์‚ฌ์™€์„œ Groovy, Scala ์ด์‚ฌ ๋‹ค๋‹ˆ๋ฉด์„œ๋„ ๋Š๊ผˆ์ง€๋งŒ,
๋น„ํ‘œ์ค€์ด๋‚˜ ์‚ด์ง ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๊ธฐ์ˆ ๋“ค์ด ์œ ํ˜น์ด ๊ฐ•ํ•˜์ง€๋งŒ
๋ฉ€๋ฆฌ ๋ณด๊ณ  ๋ƒ‰์ •ํ•˜๊ฒŒ ํŒ๋‹จํ•˜๋ฉด ์ด๋†ˆ๋“ค์ด ์šด์‹ ์˜ ํญ์„ ๋งค์šฐ ์ œํ•œํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Linq ๋„ ๊ทธ๋žฌ๊ณ , GrooySql ๋„ ๊ทธ๋žฌ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์•„์ฃผ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋‚˜ iBatis ๋„ ๊ทธ๋Ÿฐ ๋ฉด์—์„œ ๊ฒฐ์ฝ” ์ž์œ ๋กญ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ธฐ์ˆ ์ด๋ž€ ๊ฒƒ์ด ๊ฐœ์„ ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๊ตฌ ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ๊ณผ ๊ธฐ๋ฐ˜์˜ ์ƒ๋ช…์ด ๊ธด ๊ฒƒ๋„ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์กฐ๊ธˆ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์šด์‹ ์˜ ํญ์ด ๋งค์šฐ ์ œํ•œ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ์ƒˆ๋กœ์šด ์–ธ์–ด๊ฐ€ ๋‚˜์˜จ๋‹ค๊ณ  ํ•ด์„œ ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•œ ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊นŒ์ง€ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๊ฑด๊ฐ€์š”??



2010๋…„ 1์›” 30์ผ ์˜คํ›„ 10:31, drypot <dry...@gmail.com>๋‹˜์˜ ๋ง:
๋‹ค๋ฅธ ๊ฒƒ๋„ ๊ทธ๋ ‡๊ฒ ์ง€๋งŒ ๋””๋น„ ๊ธฐ์ˆ  ์„ ํƒ์€ ๊ฐœ์ธ์˜ ์ž‘์—… ์Šคํƒ€์ผ์— ๋”ฐ๋ผ์„œ ๋งŽ์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
--
"ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน" ์— ๊ฐ€์ž…ํ•˜์…จ๊ธฐ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค
์ด ๊ทธ๋ฃน์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฃผ์†Œ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
KG...@googlegroups.com
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜์‹œ๋ ค๋ฉด ๋‹ค์Œ์œผ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
KGGUG+un...@googlegroups.com
์ถ”๊ฐ€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด http://groups.google.com/group/KGGUG?hl=ko์˜ ๊ทธ๋ฃน์„
๋ฐฉ๋ฌธํ•˜์„ธ์š”.



--
์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š”~

Sewon Ann

unread,
Feb 8, 2010, 3:28:45โ€ฏAM2/8/10
to kg...@googlegroups.com
drypot ๋‹˜์ด ๋ง์”€ํ•˜์‹  ๊ฒƒ๊ณผ ๊ธฐ์„ ๋‹˜์˜ ์งˆ๋ฌธ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ธก๋ฉด์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

drypot ๋‹˜์˜ ๋ง์”€์€ ์–ธ์–ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ ๋น„ํ‘œ์ค€์ด๋‚˜ ์‚ด์ง ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๊ธฐ์ˆ ๋“ค์ด ์ด๋Ÿฌํ•œ ์–ธ์–ด ๋ณ€๊ฒฝ์„ ํž˜๋“ค๊ฒŒ ๋งŒ๋“œ๋Š” ์š”์ธ์ด๋ผ๋Š” ๋‚ด์šฉ์œผ๋กœ ์ดํ•ด๊ฐ€ ๋˜๋„ค์š”. sql ์„ ์ง์ ‘ ๋ฐ•์•„๋„ฃ์€ ๊ฒฝ์šฐ ๊ทธ๋Œ€๋กœ ํœ™ copy& paste ํ•ด์„œ ๊ฐ–๋‹ค ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, hibernate ๊ฐ™์€ ๊ฒฝ์šฐ ํž˜๋“œ๋‹ˆ๊นŒ์š”.
๊ธฐ์„ ๋‹˜์˜ ์งˆ๋ฌธ๊ณผ ๊ฐ™์ด ์ƒˆ ์–ธ์–ด๊ฐ€ ๋‚˜์˜จ๋‹ค๊ณ  ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ๊ฐˆ์•„์—Ž์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ดํ•ดํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ drypot๋‹˜์˜ ๊ด€์ ์„ ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๋งค๋ฒˆ sql ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ƒˆ ์–ธ์–ด๋‚˜ ์‹œ์Šคํ…œ์œผ๋กœ ์˜ฎ๊ฒจํƒ€๋Š” ์ด๋“์ด ์ ์œผ๋‹ˆ ๊ฒฐ๊ตญ "์™œ ์ƒˆ ์–ธ์–ด๋กœ ๊ฐ€์•ผํ•˜์ง€?" ํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์˜๋ฌธ์ ์ด ๋“œ๋„ค์š”. ๋ฌผ๋ก  biz. logic ์„ ๊ฐœ์„ ํ•˜๋Š”๋ฐ ์ƒˆ ์‹œ์Šคํ…œ์ด ํ›จ์”ฌ ์ข‹๋‹ค๋ฉด ์„ค๋“๋ ฅ์ด ์žˆ๊ฒ ์ง€๋งŒ์š”. ORM์„ ๋ชป์“ฐ๊ณ  ๊ณ„์† sql ์— ์ง‘์ฐฉํ•œ๋‹ค๋ฉด ๊ตฌ๋‹ฅ๋‹ค๋ฆฌ java ํ”„๋ ˆ์ž„์›์—์„œ ์ƒˆ๋กœ๋‚˜์˜จ scala ํ”„๋ ˆ์ž„์›์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฉ”๋ฆฟ์ด ํ™• ์ค„์–ด๋“œ๋Š”๊ฒŒ ์•„๋‹๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์ด์—์š”. (DB์ธก๋ฉด์— ๊ตญํ•œํ•˜์—ฌ ์ƒ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ.)

์•ˆ์„ธ์› ๋“œ๋ฆผ.


2010/2/8 ๋ฐฑ๊ธฐ์„  <whites...@gmail.com>

๋ฐฑ๊ธฐ์„ 

unread,
Feb 8, 2010, 3:52:42โ€ฏAM2/8/10
to kg...@googlegroups.com
์•„;;;;


์•„์ฃผ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๋ฅผ ๊ฐ€๋ ค๊ณ  ํ•  ๋•Œ ์ €๋Ÿฐ๊ฒŒ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์ด๊ตฐ์š”;; ๊ทธ๋ ‡๋‹ค๋ฉด;; ๋‹ค์‹œ..

"์–ธ์–ด๋ฅผ ๋ฐ”๊ฟ€ ๊ฒƒ์„ ๊ณ ๋ คํ•˜์—ฌ" ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœ ์ค‘์ธ๋ฐ DAO ๋‹จ์„ SQL๊ณผ JDBC๋กœ ์ฝ”๋”ฉ์„ ํ• ๊นŒ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ(์ด๋…€์„๋„ SQL์„ ์ง์ ‘ ์“ธ ์ˆ˜ ์žˆ์ฃ .)๋กœ ํ• ๊นŒ ๊ณ ๋ฏผ์ธ๋ฐ.. ์–ธ์–ด๋ฅผ ์Šค์นผ๋ผ๋กœ ๋ฐ”๊ฟ€์ง€๋„ ๋ชจ๋ฅด๋‹ˆ๊นŒ ์Šค์นผ๋ผ์—์„œ๋„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” SQL๋งŒ ์“ฐ์ž...

์ด๋Ÿฐ๊ฑด๊ฐ€์š”??

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

๊ทธ๋ž˜์„œ ๋‹ค์‹œ ์งˆ๋ฌธ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์–ด๋–ค ์šด์‹ ์˜ ํญ์ด ์ œ์•ฝ์ด ๋˜๋Š”๊ฑด๊ฐ€์š”?

2010๋…„ 2์›” 8์ผ ์˜คํ›„ 5:28, Sewon Ann <kin...@gmail.com>๋‹˜์˜ ๋ง:



--
์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š”~

๊น€์„ฑ๋ฐฐ

unread,
Feb 8, 2010, 4:54:06โ€ฏAM2/8/10
to kg...@googlegroups.com
์–ธ๋œป ์ƒ๊ฐ๋‚œ ์˜ˆ๋ฅผ ํ•˜๋‚˜ ๋“ ๋‹ค๋ฉด C/Sํ™˜๊ฒฝ์˜ Power Builder ํ”„๋กœ๊ทธ๋žจ์„ ์›น๊ธฐ๋ฐ˜ ์ž๋ฐ”๋กœ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ์š”.
์‹œ๋Œ€์— ๋”ฐ๋ผ์„œ ํ˜ธ์ŠคํŠธ๊ธฐ๋ฐ˜์ด C/Sํ™˜๊ฒฝ์œผ๋กœ ๋ฐ”๋€Œ๊ณ  C/Sํ™˜๊ฒฝ์ด ์›น๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”๋€Œ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์›น ์ดํ›„์˜ ๋ญ”๊ฐ€๋ฅผ ์ƒ์ƒํ•˜๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ ๋‹ค๋ฅธ๊ฒŒ ์žˆ๋‹ค๋ฉด ๊ทธ ๊ธฐ๋ฐ˜์— ๋”ฐ๋ผ ์–ธ์–ด๋„ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๋Š” ์ถฉ๋ถ„ํžˆ ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์–ผ๋งˆ์ „๊นŒ์ง€๋„ C/S๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์›น๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐธ ๋งŽ์•˜๋˜๊ฑฐ ๊ฐ™์€๋ฐ
์ด๋Ÿฐ ๊ฒฝ์šฐ ์‚ฌ์‹ค ๊ฐ€์ ธ๋‹ค ์“ธ๊ฒƒ์€ SQL๋ฐ–์— ์—†๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

2010/2/8 Sewon Ann <kin...@gmail.com>:

drypot

unread,
Feb 8, 2010, 7:16:27โ€ฏAM2/8/10
to ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน
์ œ๊ฐ€ ๋งํ–ˆ๋˜ "์•„์ฃผ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ด์‚ฌ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆผ๋Œ์ด ๋ฉ๋‹ˆ๋‹ค." ๋ผ๋Š” ๋ถ€๋ถ„์€
์–ธ์–ด์— ์ข…์†์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๋ฅผ ์ด์•ผ๊ธฐํ–ˆ๋˜ ๊ฒƒ์ธ๋ฐ,
์•„์‹œ๊ฒ ์ง€๋งŒ ๊ธฐ์ˆ ๋งˆ๋‹ค ์–ธ์–ด ์˜์กด์˜ ์ •๋„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์‹ฌํ•œ ๊ฒƒ์€ ์ œ์ผ ํŽธ๋ฆฌํ•œ DSL ๋ฅ˜์ด๊ณ ์š”.
Java ์ชฝ์—์„œ๋Š” ๋”ฑํžˆ ์˜ˆ๋ฅผ๋“ค๋งŒํผ ์œ ๋ช…ํ•œ ๋†ˆ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ,
์˜ˆ๋ฅผ ๋“ค๋ฉด C# ์˜ LINQ ๋‚˜ F# ์˜ DSL ๊ฐ™์€ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ์˜ˆ๋Š” C# ์ฝ”๋“œ์ธ๋ฐ from, join, orderby ๊ฐ™์€ ๊ฒƒ์ด ์•„์˜ˆ C# ํ‚ค์›Œ๋“œ๋กœ ๋“ค์–ด์™€ ์žˆ๋Š” ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋ผ๋ฉด HSQL ๋กœ ๊ธฐ๋Ÿฐ๊ฑธ ๊ธฐ์ˆ ํ•˜๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, C# ์—์„œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ง€์›์„ ํ•ฉ๋‹ˆ๋‹ค.

from search in PostSearch(categoryID, query)
join header in PostThreads on search.ThreadID equals header.ThreadID
orderby header.UDate descending

F# ์ด๋‚˜ Scala ๊ฐ™์€ ํŽ‘์…”๋„ ์–ธ์–ด์—์„œ๋Š” DSL ๊ธฐ๋Šฅ์ด ์ข‹์•„์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š์•„๋„
์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ๋งŒ๋“ค์–ด ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ๋Š” F# ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

let expensiveInStockProducts =
products
|> where (fun p -> p.UnitsInStock > 0 && p.UnitPrice >
Convert.ToDecimal(3.00))
|> select (fun p -> p.ProductName);;

์ด๋Ÿฐ DSL ๋ฅ˜๋‚˜ HSQL ๋ฅ˜๋Š” ์“ฐ๊ธฐ๋Š” ํŽธํ•œ๋ฐ,
์–ธ์–ด๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ํ”„๋ ˆ์ž„์›์„ ๋ฐ”๊พธ๋ คํ•  ๋•Œ ์†์„ ๋Œ€๊ธฐ ์–ด๋ ค์šด ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ด๋ฒ„๋„ค์ดํŠธ ๊ฐ™์€ ๊ฒฝ์šฐ ์–ธ์–ด์—์„œ ์กฐ๊ธˆ ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ,
์กฐ๊ธˆ์€ ์“ฐ๊ธฐ ๋ถˆํŽธํ•˜์ง€๋งŒ ์กฐ๊ธˆ์€ ์œ ์—ฐ์„ฑ์„ ๊ฐ€์ง€๋Š” ๊ทธ๋Ÿฐ ์œ„์น˜๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ์–ธ์–ด, ํ”„๋ ˆ์ž„์›์„ ์“ฐ๋”๋ผ๋„ ํ”„๋ ˆ์ž„์›์˜ ์ •์ฑ…์ด ๋ฐ”๋€Œ๋ฉด ๋‚œ๊ฐํ•ด ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
M$ ํ™˜๊ฒฝ์—์„œ ์•„์ฃผ ์ข‹์€ ์˜ˆ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ์ฒจ์— LINQ ๋‚˜์˜ค๋ฉด์„œ ๋งˆ์ผ€ํŒ…์„ ์—ด์‹ฌํžˆ ํ•ด์„œ
๋ชจ๋‘ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์ค€๋น„ํ–ˆ๋Š”๋ฐ,
Entity Framework ์–ด๋‚˜์šด์Šค ๋˜๋ฉด์„œ ์•„์ง ๋‚˜์˜ค์ง€๋„ ์•Š์€ EF ๋•Œ๋ฌธ์—
LINQ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์ค‘์ง€๋  ๊บผ๋ž€ ์†Œ๋ฌธ์ด ํŒŒ๋‹คํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜์ค‘์— M$ ์—์„œ ์ง„ํ™”์— ๋‚˜์„œ๊ธด ํ–ˆ์ง€๋งŒ
์ง€๊ธˆ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›์ด ์–ธ์ œ๊นŒ์ง€ ์“ธ ์ˆ˜ ์žˆ์„์ง€๋Š” ์•Œ ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•Œ ์ˆ˜ ์—†๋Š” ๋ฏธ๋ž˜ ๋•Œ๋ฌธ์— ๋‹น์žฅ ์“ฐ๊ธฐ ํŽธํ•œ ๊ฒƒ์„ ์•„์˜ˆ ์“ฐ์ง€ ๋ง์ž๋Š” ์ชฝ์€ ์•„๋‹ˆ๊ณ ์š”,
ํ”„๋กœ์ ํŠธ ์ •์ฑ…์„ ๊ฒฐ์ •ํ•  ๋•Œ ์ด ๊ฒƒ์ด ๋…์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ์žฅ๊ธฐ์ ์ธ ๊ด€์ ์—์„œ
๋” ์„ธ์‹ฌํžˆ ๊ณ ๋ฏผํ•ด์•ผํ•œ๋‹ค๋Š” ์ •๋„๋กœ ๋ด์ฃผ์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์ด๋Ÿฐ ๊ณ ๋ฏผ์„ ํ•  ๋•Œ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ฒฉ์ด๋‚˜ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ™์€ ๊ฒƒ์— ๋”ฐ๋ผ
ํŒ๋‹จ์€ ์ฒœ์ฐจ๋งŒ๋ณ„์ผ ๊ฒ๋‹ˆ๋‹ค.

์œ„ ๋‚ด์šฉ๊ณผ๋Š” ๋ณ„๋„๋กœ ์ €๋Š” ORM ์— ๋Œ€ํ•ด ๋ถ€์ •์ ์ธ ๋ฉด์„ ๋งŽ์ด ๋ณด๋Š” ํŽธ์ž…๋‹ˆ๋‹ค.
SQL ์€ Java ์™€ ๊ฐ™์€ ์ €๊ธ‰์–ธ์–ด์— ๋น„ํ•ด ๋งค์šฐ ๊ณ ๊ธ‰์–ธ์–ด ์ž…๋‹ˆ๋‹ค.
๊ณ ๊ธ‰ ์–ธ์–ด๊ฐ€ ํ•˜๋Š” ์ผ์„ ์ €๊ธ‰ ์–ธ์–ด๋กœ ๊ธฐ์ˆ ํ•˜๋ คํ•˜๋ฉด ๊ตฌ๋ฌธ์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.
SQL ์ด ํ•˜๋Š” ์ผ์€ ๊ฐ€๋Šฅํ•œ SQL ์ด ํ•˜๋„๋ก ๋„˜๊ธฐ๋Š” ๊ฒƒ์ด ๊ตฌ๋ฌธ์ด ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค.

Java ์—์„œ SQL ์‚ฌ์šฉ์ด ์–ด๋ ค์›Œ ์ง€๋Š” ๊ฒƒ์€ Java ์˜ ์ŠคํŠธ๋ง ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ๋–จ์—ฌ์ ธ์„œ,
Java ์™€ SQL ์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ง€์ €๋ถ„ํ•ด ์ง„๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ,
์ด๊ฒƒ๋งŒ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋ฉด ํฐ ๋ฌธ์ œ๋Š” ์•ˆ ์ƒ๊น๋‹ˆ๋‹ค.

ORM ์€ ์ด ์ธํ„ฐํŽ˜์ด์Šค ๋ฌธ์ œ๋ฅผ ํด๋ž˜์Šค์™€ ํ…Œ์ด๋ธ”์˜ ๋งคํ•‘์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค ๋“œ๋Š”๋ฐ,
์ „์—๋„ ํ•œ๋ฒˆ ์ ์—ˆ์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋ชจ๋“  ์žฌ๋‚œ์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
RDB ํ…Œ์ด๋ธ”์€ ํด๋ž˜์Šค์™€ 1:1 ๋Œ€์‘์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ด๊ฑธ ์–ต์ง€๋กœ ๋ผ์›Œ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ORM ์˜ ํด๋ž˜์Šค ์ •์˜๊ฐ€ ํ•œ๋„ ๋๋„ ์—†์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.
๊ฒŒ๋‹ค๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ORM ๋“ค์€ SQL ๊ตฌ๋ฌธ์˜ ๊ธฐ๋Šฅ์„ ์ž๊พธ ํ•˜๋ ค๊ณ  ๋“ญ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ๋„ ํ•œ์ฐธ ์ €๊ธ‰ ์–ธ์–ด๋กœ.
๊ทธ๋Ÿฌ๋‹ˆ ๊ณต๋ถ€ํ•  ๊ฒƒ๋งŒ ๋Š˜์–ด๋‚˜๊ณ  ๋ฌธ์ œ ํ•ด๊ฒฐ์€ ์ž˜ ์•ˆ ๋˜๊ณ , ํ”„๋กœ์ ํŠธ๋Š” ๊ณ„์† ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

๊ฑด๊ฐ•๋ณดํ—˜ ์ฒ˜๋Ÿผ ORM ์ด ์—†์–ด๋„ ๋ณ„ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ ๊ฒƒ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ๋Š” ORM ์ด ๊น”๋”ํ•˜๊ฒŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ทผ๋ฐ ์กฐ๊ธˆ๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ณต์žกํ•ด ์ง€๋ฉด ORM ์ž์ฒด ๋ฌธ์ œ๊ฐ€ ๋ถˆ๊ฑฐ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ณจ์น˜์•„ํ”ˆ ์ƒํ™ฉ๋“ค์ด ์ƒ๊น๋‹ˆ๋‹ค.
์ด๋•Œ๊ฐ€ SQL ์˜ ํ•„์š”์„ฑ์ด ๋“ค์–ด๋‚˜๋Š” ์ˆœ๊ฐ„์ธ๋ฐ, ์ด๊ฑธ ๋˜ HSQL ๊ฐ™์€ ๊ฑธ๋กœ ๋ง‰์œผ๋ ค ๋“ญ๋‹ˆ๋‹ค.
HSQL ์„ค๋ช…์„œ ๋ณด๋ฉด ์†Œ์†Œํ•œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทผ๋ฐ ๊ทธ๋Ÿฐ ์†Œ์†Œํ•œ ์žฅ์ ์œผ๋กœ ์›๋ก ์„ ๋ฐ”๊พธ๊ธด ์–ด๋ ค์›Œ ๋ณด์ž…๋‹ˆ๋‹ค.

๋ง์ด ๋„ˆ๋ฌด ๊ธธ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ^^

๊ทธ๋ž˜์„œ, ๋‹น์‹ ์ด ์ƒ๊ฐํ•˜๋Š” ์ง€๊ธˆ ๋‹ต์€ ๋ญก๋‹ˆ๊นŒ ๋ฌผ์–ด๋ณด์‹œ๋ฉด,
์‚ฌ์‹ค ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ^^

์ตœ๊ทผ์— ๋ณธ ๊ฒƒ ์ค‘์—๋Š” GroovySQL ์ด ์ œ์ผ ์„ฑ๊ณต์ ์ธ ๊ธ€๋ฃจ ๊ธฐ์ˆ ์ด์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์Šค์นผ๋ผ์—๋„ GString ๊ฐ™์€ ๊ฒƒ์ด ๋“ค์–ด๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ,
๊ฐœ๋ฐœ์ง„์œผ๋กœ ๋ถ€ํ„ฐ ํ‡ด์งœ๋ฅผ ๋งž์•˜์Šต๋‹ˆ๋‹ค.

์›น ํ”„๋ ˆ์ž„์›๋„ ๊ทธ๋ ‡๊ณ , ๋ทฐ ์—”์ง„๋“ค๋„ ๊ทธ๋ ‡๊ณ , ORM ๋„ ๊ทธ๋ ‡๊ณ ,
๋„ˆ๋ฌด ์ž๊ธฐ ๋ถ„์ˆ˜๋ฅผ ๋„˜์–ด์„œ ๊ณผ๋„ํ•ด์ง€๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์ฃผ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๊ณ , ๋‹ค๋ฅธ ๋ฌธ์ œ๋“ค์„ ๋„ˆ๋ฌด ๋งŽ์ด ์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

์‹ค๋ฌด์—์„œ ๊ทธ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ํ†ต์ฒด๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ•œ ํ…Œ์ด๋ธ”๋งŒ ์“ฐ๋Š” ๊ฒฝ์šฐ๋„ ๊ฑฐ์˜ ์—†๊ตฌ์š”.
SQL ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ์ •๋ฆฌ๊ฐ€ ๋˜์–ด ์˜ค๊ณ  OO ์—์„œ ์ฒ˜๋Ÿผ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
๊ทธ๊ฑธ ์ข€ ์ธ์ •ํ•ด ์คฌ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ฌด๋ฆฌํ•˜๊ฒŒ OO ์‹ ๊ทธ๋ž˜ํ”„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊พธ์ง€ ๋ง๊ณ .
Java ๊ฐ€ SQL ์„ ๊ทธ๋Œ€๋กœ ์ธ์ •ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์‹ฑ์—๋งŒ ์ง‘์ค‘ํ•ด๋„ ๋งค์šฐ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์ด ๋‚˜์˜ฌ๊ฒ๋‹ˆ๋‹ค.


On Feb 8, 6:54 pm, ๊น€์„ฑ๋ฐฐ <sungbae....@gmail.com> wrote:
> ์–ธ๋œป ์ƒ๊ฐ๋‚œ ์˜ˆ๋ฅผ ํ•˜๋‚˜ ๋“ ๋‹ค๋ฉด C/Sํ™˜๊ฒฝ์˜ Power Builder ํ”„๋กœ๊ทธ๋žจ์„ ์›น๊ธฐ๋ฐ˜ ์ž๋ฐ”๋กœ ๋ฐ”๊พธ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ์š”.
> ์‹œ๋Œ€์— ๋”ฐ๋ผ์„œ ํ˜ธ์ŠคํŠธ๊ธฐ๋ฐ˜์ด C/Sํ™˜๊ฒฝ์œผ๋กœ ๋ฐ”๋€Œ๊ณ  C/Sํ™˜๊ฒฝ์ด ์›น๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”๋€Œ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
> ์›น ์ดํ›„์˜ ๋ญ”๊ฐ€๋ฅผ ์ƒ์ƒํ•˜๊ธฐ๋Š” ํž˜๋“ค์ง€๋งŒ ๋‹ค๋ฅธ๊ฒŒ ์žˆ๋‹ค๋ฉด ๊ทธ ๊ธฐ๋ฐ˜์— ๋”ฐ๋ผ ์–ธ์–ด๋„ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๋Š” ์ถฉ๋ถ„ํžˆ ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
> ์–ผ๋งˆ์ „๊นŒ์ง€๋„ C/S๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์›น๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐธ ๋งŽ์•˜๋˜๊ฑฐ ๊ฐ™์€๋ฐ
> ์ด๋Ÿฐ ๊ฒฝ์šฐ ์‚ฌ์‹ค ๊ฐ€์ ธ๋‹ค ์“ธ๊ฒƒ์€ SQL๋ฐ–์— ์—†๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
>

> 2010/2/8 Sewon Ann <king...@gmail.com>:


>
> > drypot ๋‹˜์ด ๋ง์”€ํ•˜์‹  ๊ฒƒ๊ณผ ๊ธฐ์„ ๋‹˜์˜ ์งˆ๋ฌธ์€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ธก๋ฉด์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
>
> > drypot ๋‹˜์˜ ๋ง์”€์€ ์–ธ์–ด๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ ๋น„ํ‘œ์ค€์ด๋‚˜ ์‚ด์ง ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๊ธฐ์ˆ ๋“ค์ด ์ด๋Ÿฌํ•œ ์–ธ์–ด ๋ณ€๊ฒฝ์„ ํž˜๋“ค๊ฒŒ ๋งŒ๋“œ๋Š” ์š”์ธ์ด๋ผ๋Š”
> > ๋‚ด์šฉ์œผ๋กœ ์ดํ•ด๊ฐ€ ๋˜๋„ค์š”. sql ์„ ์ง์ ‘ ๋ฐ•์•„๋„ฃ์€ ๊ฒฝ์šฐ ๊ทธ๋Œ€๋กœ ํœ™ copy& paste ํ•ด์„œ ๊ฐ–๋‹ค ์˜ฎ๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, hibernate
> > ๊ฐ™์€ ๊ฒฝ์šฐ ํž˜๋“œ๋‹ˆ๊นŒ์š”.
> > ๊ธฐ์„ ๋‹˜์˜ ์งˆ๋ฌธ๊ณผ ๊ฐ™์ด ์ƒˆ ์–ธ์–ด๊ฐ€ ๋‚˜์˜จ๋‹ค๊ณ  ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ๊ฐˆ์•„์—Ž์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ดํ•ดํ•˜์˜€์Šต๋‹ˆ๋‹ค.
>
> > ๊ทธ๋Ÿฌ๋‚˜ drypot๋‹˜์˜ ๊ด€์ ์„ ๊ฑฐ๊พธ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๋งค๋ฒˆ sql ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ƒˆ ์–ธ์–ด๋‚˜ ์‹œ์Šคํ…œ์œผ๋กœ ์˜ฎ๊ฒจํƒ€๋Š” ์ด๋“์ด ์ ์œผ๋‹ˆ ๊ฒฐ๊ตญ
> > "์™œ ์ƒˆ ์–ธ์–ด๋กœ ๊ฐ€์•ผํ•˜์ง€?" ํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์˜๋ฌธ์ ์ด ๋“œ๋„ค์š”. ๋ฌผ๋ก  biz. logic ์„ ๊ฐœ์„ ํ•˜๋Š”๋ฐ ์ƒˆ ์‹œ์Šคํ…œ์ด ํ›จ์”ฌ ์ข‹๋‹ค๋ฉด
> > ์„ค๋“๋ ฅ์ด ์žˆ๊ฒ ์ง€๋งŒ์š”. ORM์„ ๋ชป์“ฐ๊ณ  ๊ณ„์† sql ์— ์ง‘์ฐฉํ•œ๋‹ค๋ฉด ๊ตฌ๋‹ฅ๋‹ค๋ฆฌ java ํ”„๋ ˆ์ž„์›์—์„œ ์ƒˆ๋กœ๋‚˜์˜จ scala ํ”„๋ ˆ์ž„์›์œผ๋กœ ์˜ฎ๊ธฐ๋Š”
> > ๋ฉ”๋ฆฟ์ด ํ™• ์ค„์–ด๋“œ๋Š”๊ฒŒ ์•„๋‹๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์ด์—์š”. (DB์ธก๋ฉด์— ๊ตญํ•œํ•˜์—ฌ ์ƒ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ.)
>
> > ์•ˆ์„ธ์› ๋“œ๋ฆผ.
>

> > 2010/2/8 ๋ฐฑ๊ธฐ์„  <whiteship2...@gmail.com>

๋ฐฑ๊ธฐ์„ 

unread,
Feb 8, 2010, 9:13:42โ€ฏAM2/8/10
to kg...@googlegroups.com
drystop๋‹˜๊ป˜์„œ ์ƒ๊ฐํ•˜์‹œ๋Š” ORM์€ ๊ต‰์žฅํžˆ ์–ด์ฒ˜๊ตฌ๋‹ˆ๊ฐ€ ์—†๋Š” ๋…€์„์ด๋กœ๊ตฐ์š”.. ์ €๊ธ‰ ์–ธ์–ด๋กœ ๊ณ ๊ธ‰ ์–ธ์–ด์ธ SQL์ด ํ•˜๋Š” ๊ฒƒ์„ ํ•˜๋ ค ๋“ค๋‹ค๋‹ˆ.. ๋ฌธ์ œ๋งŒ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๊ตฌ ๋ง์ด์ฃ .. ํ ;;

์ €๋Š” ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๊ฐ€ SQL๊ณผ ๋Œ€๋ฆฝ๋˜๋Š” ๊ธฐ์ˆ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋ฅผ ์•Š์•„์„œ.. ์ €๋ž‘์€ ์ƒ๊ฐ์ด ๋งŽ์ด ๋‹ค๋ฅด์‹ ๊ฒƒ ๊ฐ™๋„ค์š”. ํ ;;

๋‚˜๋จธ์ง€ LINQ, F#, GroobySQL, GString์€ ๊ณต๋ถ€ ํ•ด๋ณธ์ ์ด ์—†์–ด์„œ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋„ค์š”;;

๊ทผ๋ฐ DSL์€ ํ˜น์‹œ Domain Specific Language์˜ ์•ฝ์ž์•„๋‹Œ๊ฐ€์š”? ์ด๊ฑด ํŠน์ • ์–ธ์–ด์— ๊ตญํ•œ ๋œ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ internal DSL, external DSL๋“ฑ ์•ฝ๊ฐ„ ๊ฐœ๋…์ ์ธ ๋‹จ์–ด ๊ฐ™์€์— F#์˜ ๊ธฐ๋Šฅ ์ฒ˜๋Ÿผ ์ ์œผ์…จ๋„ค์š”. ๊ทธ DSL์ด ์•„๋‹Œ๊ฐ€์š”;;

2010๋…„ 2์›” 8์ผ ์˜คํ›„ 9:16, drypot <dry...@gmail.com>๋‹˜์˜ ๋ง:



--
์ข‹์€ ํ•˜๋ฃจ ๋˜์„ธ์š”~

Sanghyuk Jung

unread,
Feb 8, 2010, 10:11:49โ€ฏAM2/8/10
to kg...@googlegroups.com
์Œ drypot๋‹˜์˜ ์˜๊ฒฌ์€ ์ €ํ•˜๊ณ ๋Š” ์ƒ๊ฐ์ด ์ข€ ๋‹ค๋ฅด์‹  ๊ฒƒ ๊ฐ™์€๋ฐ์š”,
ย 
SQL์ด๋‚˜ Java๋‚˜ ๊ณ ๊ธ‰์ด๋‚˜ ์ €๊ธ‰์˜ ์ˆ˜์ค€(๊ธฐ๊ณ„์— ๊ฐ€๊นŒ์šฐ๋ƒ ์ธ๊ฐ„์— ๊ฐ€๊นŒ์šฐ๋ƒ์˜ ๋ฌธ์ œ์ฃ )์˜ ์ˆ˜์ค€์€ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. SQL๋„ ์„ฑ๋Šฅ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์กฐ์ธ์ด ๋˜๊ณ , index๋ฅผ ์–ด๋–ป๊ฒŒ ํƒ€๊ฒŒํ•˜๊ฒŒํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ํŒŒํ‹ฐ์…”๋‹์„ ํ•˜๊ณ  ๊ณ ๋ฏผํ•˜๋‹ค๋ณด๋ฉด ๊ธฐ๊ณ„์— ๊ฐ€๊นŒ์šด ์˜์—ญ์ด ๋งŽ์Šต๋‹ˆ๋‹ค. SQL์ด ํŠน๋ณ„ํžˆ ์ถ”์ƒํ™”์˜ ์ˆ˜์ค€์ด ๋” ๋†’์€ ๊ฒƒ๋„ ์•„๋‹ˆ๋ผ๊ณ  ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋‘ ์–ธ์–ด๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ์˜ ์˜์—ญ์ด ๋‹ค๋ฅธ๋ฐ, ์ž˜ ์•„์‹œ๋‹ค์‹œํ”ผ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ๊ธฐ์ˆ ํ•˜๋Š” ์˜์—ญ๊ณผย ์ ˆ์ฐจ์  ์ฒ˜๋ฆฌ๋ฅผ ํฌํ•จํ•œ ๋ณด๋‹ค ๋„“์€ย ย ๋ชจ๋“  ์˜์—ญ์„ ๋‹ค๋ฃจ๋Š” ์–ธ์–ด์˜ ์ฐจ์ด๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ๋ดค๋˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋Š” SQL์ด ๊ทธ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜์„œ ๋„ˆ๋ฌด ๋งŽ์„ ์ผ์„ ํ•ด์„œ ๋ชจ๋“  ๋กœ์ง์ด SQL์— ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  5~6๊ฐœ ํ…Œ์ด๋ธ” ์กฐ์ธํ•œ ํ•œํŽ˜์ด์ง€๊ฐ€ ๋„˜์–ด๊ฐ€๋Š” SQL๋“ค๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ํž˜๋“  ์ฝ”๋“œ๋“ค์„ ์–‘์‚ฐํ•ด ๋‚ด๋Š” ๊ฒƒ๋“ค์ด ์•„๋‹ˆ์—ˆ๋‚˜ํ•˜๊ตฌ์š”.
ย 
ย ORM์ด ์ ์–ด๋„ ๊ทธ๋Ÿฐ SQL์˜ ๋‚จ์šฉ์‚ฌ๋ก€๋ฅผ ์–ด๋Š ์ •๋„ ๋ง‰๋Š” ์ œ์•ฝ์€ ๊ฐ€ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š๋‚˜ํ•˜๋Š” ์ ์—์„œ ์ „ ORM์— ๋Œ€ํ•ด์„œ ๊ธ์ •์ ์ธ ํŽธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์‚ฌ๊ณ  ๋ฐฉ์‹์ด ์บ์‰ฌ์ ์šฉ, DB ์ข…๋ฅ˜ ๋ณ€๊ฒฝ์ด๋‚˜ ์‹ฌ์ง€์–ด RDB๋ฅผ ๋ฒ—์–ด๋‚œ ์ €์žฅ์†Œ(Big table๋ฅ˜๋„ ๋  ์ˆ˜ ์žˆ๊ฒ ์ฃ )์—๋„ ๋ฒ”์šฉ์ ์œผ๋กœ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” ์ ‘๊ทผ๋ฐฉ์‹์ด๋ผ๋Š” ์žฅ์ ๋„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ ์š”. ํ”„๋ ˆ์ž„์›์ด๋‚˜ ์–ธ์–ด๋ฅผ ์˜ฎ๊ธฐ๋Š” ์ •๋„๋ฅผ ๋Œ€๋น„ํ•  ์ •๋„๋กœ ๋ฏธ๋ž˜๋ฅผ ์ƒ๊ฐํ•œ๋‹ค๋ฉด, DB ์ข…๋ฅ˜๋ฅผย  ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ RDB๋ผ๋Š” ๊ฒƒ ๊ธฐ์ˆ  ์ž์ฒด๋„ ์˜์›ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฐ€์ •์„ ํ•˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ์•ž์„œ๋‚˜๊ฐ€๋Š” ๊ฐ€์ •์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ย 
ย ๊ทธ๋ฆฌ๊ณ , ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ๋‹ค ์“ฐ๋Š” ํ™”๋ฉด์€ ์—†๊ฒ ์ง€๋งŒ, ์„ฑ๋Šฅ์— ๋‹ค์†Œ ์†ํ•ด๊ฐ€ ์žˆ๋”๋ผ๋„ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ๋‹ค ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊ทธ ๋ฉ”์†Œ๋“œ๋ฅผย ์—ฌ๋Ÿฌ ๊ณณ์—์„œย ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์žฌํ™œ์šฉ์„ฑ์ด ๋†’์€ ์ ‘๊ทผ์ด๊ณ , ๊ทธ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ์ปดํผ๋„ŒํŠธ ์„ค๊ณ„์—์„œ coarse grainedํ•œ ์ ‘๊ทผ๋ฐฉ์‹๊ณผ๋„ ์ผ๋งฅ์ƒํ†ตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€ํ•˜๊ตฌ์š”.
ย 
ย RDB๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ๊ฐํ•œ๋‹ค๋ฉด, ORM์ด ์–ต์ง€๋กœ RDB๋ฅผ ๊ฐ์ฒด์— ๋ผ์›Œ๋งž์ถ”๋Š” ๊ฒƒ ๊ฐ™๊ฒ ์ง€๋งŒ, ๋ฐ˜๋Œ€๋กœ ๊ฐ์ฒด์ค‘์‹ฌ์œผ๋กœ ์ƒ๊ฐํ•œ๋‹ค๋ฉด RDB ๊ฐ์ฒด๊ฐ€ ์˜์†ํ™”๋˜์–ด์„œ ์ €์žฅ๋  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ์˜ย ์ผ์ข…์ผ ๋ฟ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. RDB๋งŒ์œผ๋กœ ๊ฐœ๋ฐœํ•ด์˜ค์‹  ๋ถ„๋“ค์—๊ฒŒ๋Š” ์–ต์ง€๊ฐ™์€ ์ด์•ผ๊ธฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ค„ ๋ชฐ๋ผ๋„, ์ด๋ฏธ Object๋ฅผ global ์บ์‰ฌ ๊ฐ™์€ ๊ณณ์— ์ €์žฅ์„ ํ•œ๋‹ค๋˜์ง€ ํ•˜๋Š”,ย ๊ธฐ์กด RDB๋ฅผ ๋ฒ—์–ด๋‚œ ์ €์žฅ์†Œ ์ „๋žต์„ ์ถ”๊ฐ€๋กœ ์ ์šฉ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด scalability๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋Š”, ํฌํƒˆ ๊ฐ™์€ ์ชฝ์—์„œ๋Š” ๋ฐ”๋กœ ๋‹น๋ฉดํ•œ ๋ฌธ์ œ๋ผ๊ณ  ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. application์˜ ์ค‘์‹ฌ์„ ์–ด๋””์— ๋‘๋Š๋ƒ์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.
ย 
ย 
> ์‹ค๋ฌด์—์„œ ๊ทธ ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ํ†ต์ฒด๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
> ํ•œ ํ…Œ์ด๋ธ”๋งŒ ์“ฐ๋Š” ๊ฒฝ์šฐ๋„ ๊ฑฐ์˜ ์—†๊ตฌ์š”.
> SQL ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ์ •๋ฆฌ๊ฐ€ ๋˜์–ด ์˜ค๊ณ  OO ์—์„œ ์ฒ˜๋Ÿผ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
> ๊ทธ๊ฑธ ์ข€ ์ธ์ •ํ•ด ์คฌ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค
ย 
ย ์œ„์—์„œ ๋ง์”€ํ•˜์‹  ๋ฐฉ์‹๋„ ์„ ํƒ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ๋ฐฉ์‹ ์ค‘์˜ ์ผ๋ถ€๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ SQL์„ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š๋ƒ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ €๋„ ์˜›๋‚ ์— SQL์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด์„œ ๊ผญ ํ•„์š”ํ•œ ์ปฌ๋Ÿผ๋งŒ ๊ฐ€์ง€๊ณ  ์˜ค๋ผ๊ณ  ๋ฐฐ์› ๋Š”๋ฐ,ย ๋ช‡๋…„์ „๋ถ€ํ„ฐ๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ๋‹ค selectํ•˜๋Š” ๋ฐฉ์‹์„ ๋Œ€๋ถ€๋ถ„ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋งคํ™”๋ฉด๋งˆ๋‹ค ๊ฑฐ์˜ 1๊ฐœ์”ฉ์˜ SQL์ด ๋‚˜์˜ค๋Š”๋ฐ, ์•„์ฃผ ์„ฑ๋Šฅ์— ๋ฏผ๊ฐํ•œ ๋ถ€๋ถ„์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ SQL์„ ๋‹ค ์งœ์ฃผ๋Š” ๊ฒƒ์ด ์ƒ์‚ฐ์„ฑ์„ ์ €ํ•ดํ•œ๋‹ค๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  SQL์ด ํ•œํ…Œ์ด๋ธ”๋งŒ์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋งŒํผ 'ํ•œ๋ฐฉ์ฟผ๋ฆฌ'๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋”๋งŽ์€ ์ข…๋ฅ˜์˜ SQL์ด ๋งŒ๋“ค์–ด์ง€๊ณ , ๊ธด SQL์ด ๋งŒ๋“ค์–ด์ง„๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, ์ด๊ฒƒ๋„ ๊ฒฐ๊ตญ ํ™”๋ฉด1๊ฐœ์— 1๊ฐœ์˜ SQL์ด ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ๋กœ ์ž˜๋ผ์„œ SQL์„ ๋‚ ๋ฆฐ๋‹ค๋ฉด ๊ทธ ๋งŒํผ์˜ ๊ทธ ์ฟผ๋ฆฌ๊ฐ€ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์งˆ ์ˆ˜๋„ ์žˆ๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋™์„ฑ๋„ ๋†’์•„์ง€๊ฒ ์ฃ . ๋ฌผ๋ก  ์—ฌ๋Ÿฌ๋ฒˆ์˜ ์ฟผ๋ฆฌ๊ฐ€ ์„ฑ๋Šฅ์—๋Š” ์•ˆ ์ข‹์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Application์˜ ๋ชจ๋“  ๋ถ€๋ถ„์ด ๊ทธ ๋งŒํผ์˜ ์„ฑ๋Šฅ๋ถ€๋‹ด๋„ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.ย ๊ทธ๋ฆฌ๊ณ  ๊ตฌ๊ธ€์—์„œ๋Š” BigTable๋ฅ˜๋ฅผ ์ €์žฅ์†Œ๋กœ ์ด์šฉํ•ด์„œ ์กฐ์ธ์—†์ด ๋‚ด๋ถ€ ์—…๋ฌด์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
ย 
2010๋…„ 2์›” 8์ผ ์˜คํ›„ 11:13, ๋ฐฑ๊ธฐ์„  <whites...@gmail.com>๋‹˜์˜ ๋ง:

์‹ ์Šนํ•œ

unread,
Feb 8, 2010, 6:55:31โ€ฏPM2/8/10
to kg...@googlegroups.com

HIbernate์˜ ๋•์„ ํฌ๊ฒŒ ๋ณด๊ณ  ์žˆ๋Š” ์ž…์žฅ์—์„œ ๋ณด๋‹ˆย  HIbernate๊ฐ™์€ ORM์ด ์œ ๋… ์•ˆํ‹ฐ๊ฐ€ ๋งŽ์€๊ฑฐ ๊ฐ™๋„ค์š”.

๊ทธ๋ž˜๋„ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ์นผํ‡ด๊ทผ์„ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋Š” Spring๋„ Groovy๋„ ์•„๋‹Œ Hibernate์ธ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.


ํ•œ๊ตญ SI์—์„œ ํ•ญ์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š”๊ฑด ORM์œผ๋กœ ์ƒ์„ฑ๋œ SQL์˜ ์„ฑ๋Šฅ์ด ์•„๋‹ˆ๋ผ.

๋ฏธ์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†์œผ๋กœ ์ž‘์„ฑํ•œ ์žฅ๋ฌธ์˜ ๋˜๋Š” ์ค‘๋ณต๋œ SQL์ด๋”๊ตฐ์š”.




2010๋…„ 2์›” 9์ผ ์˜ค์ „ 12:11, Sanghyuk Jung <ben...@gmail.com>๋‹˜์˜ ๋ง:

drypot

unread,
Feb 9, 2010, 4:13:58โ€ฏAM2/9/10
to ํ•œ๊ตญ Groovy & Grails ์‚ฌ์šฉ์ž ๊ทธ๋ฃน
๋ง์”€๋“ค ์ž˜ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์“ฐ๊ธฐ ๋ผ๋Š” ๊ฒƒ์ด ์ œํ•œ์ด ๋งŽ๋‹ค ๋ณด๋‹ˆ ํ•œ์ชฝ์— ์น˜์šฐ์นœ ๋‚ด์šฉ์„ ์ค‘์‹ฌ์œผ๋กœ ์ ์—ˆ์—ˆ๋Š”๋ฐ,
๋ง์”€ํ•ด ์ฃผ์‹  ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•ด ์ €๋„ ๋™์˜ํ•˜๋Š” ๋ฐ”๊ฐ€ ๋งŽ๊ณ 
ORM ์— ๋ถ€์ •์ ์ธ ์ƒ๊ฐ์„ ํ•˜๋ฉด์„œ๋„ ์ ์–ด์ฃผ์‹  ๋‚ด์šฉ๋“ค๊ณผ ๋น„์Šทํ•œ ์ƒ๊ฐ์ด ๋˜ ํ•œ์ชฝ ๊ตฌ์„์— ๊ฐ™์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” ์ข€ ์˜›๋‚  ์‚ฌ๋žŒ์ด๋ผ 8KB, 16KB ์ œํ•œ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‹œ์ž‘ํ•ด์„œ,
์š”์ฆ˜ ๊ธฐ๊ณ„๋“ค์˜ ๋Œ€์—ญ์„ ๋ฏฟ๊ณ  ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š”๋ฐ ์•„์ง๋„ ๋งŽ์ด ์ฃผ์ €ํ•ฉ๋‹ˆ๋‹ค.
์ฝ”๋”ฉ์„ ํ•  ๋•Œ ๊ดœํ•œ ๊ฑฑ์ •์„ ๋งŽ์ดํ•ด์„œ ๋กœ์ง์„ ๊ตฌ์ถ•ํ•˜๋Š”๋ฐ,
๋ง‰์ƒ ์„œ๋น„์Šค๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ๋‚˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์ผ ๋ชฐ๋ฆฌ๋Š” ์‹œ๊ฐ„์—๋„ CPU ๋ฅผ 10% ๋ฐ–์— ์‚ฌ์šฉ ์•ˆ ํ•˜๊ณ  ์žˆ๊ณ ,
์ŠคํŽ˜์–ด๋กœ ๊ฐ™์ด ์ฃผ๋ฌธํ•œ ๊ธฐ๊ณ„๋“ค์€ ํŒฝํŒฝ์ด ๋†€๋ฆฌ๋Š” ์‚ฌํƒœ๋ฅผ ์ž์ฃผ ๋งŒ๋“ค๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. =,=

SQL ์— ๋Œ€ํ•ด์„œ๋Š” ์Šคํ† ์–ด๋“œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ •์„์œผ๋กœ ์ƒ๊ฐํ•˜๋˜ ์‹œ๋Œ€ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ^^
SQL ๋กœ์ง์„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์— ๋ฐ•๋Š” ์š”์ฆ˜ ๋ชจ์Šต์„ ๋ณด๊ณ  ๊ฝค ๋†€๋žฌ์–ด์„œ,
์ด๋Ÿฐ ๋ฌธํ™”์— ์ ์‘ํ•˜๋Š”๋ฐ ์ ์ง€ ์•Š์€ ์‹œ๊ฐ„์„ ์Ÿ์•˜์—ˆ์Šต๋‹ˆ๋‹ค.

์š”์ฆ˜์€ ORM ๊ณผ ์›น ๋ทฐ ์—”์ง„๋“ค์˜ ๊ณผ๋„ํ•œ ๊ณ„์ธตํ™”๋ฅผ ๋งŒ๋‚˜์„œ๋Š”
๋‹ค์‹œ ๋˜ ๋งˆ์Œ์†์— ๊ณ„์† ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ์ด๋Ÿฐ ๊ณผ์ •๋“ค์ด ์žฌ๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์ƒ๊ฐ๋“ค ๊ณ„์† ๋ถ€์„œ์ ธ ๋‚˜๊ฐ€๋Š”๊ฒŒ ํ™€๊ฐ€๋ถ„ ํ•˜๊ธฐ๋„ ํ•˜๊ตฌ์š”.
๋จผ๊ฐ€ ๋˜ ๋‹ค๋ฅธ ๊ฟ๊ฟ์ด๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์˜ ์•„์ด๋””์–ด ๋ณด๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ํฅ๋ฏธ์ง„์ง„ํ•˜๊ตฌ์š”.
๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ^^

On Feb 9, 8:55 am, ์‹ ์Šนํ•œ <my.p...@gmail.com> wrote:
> HIbernate์˜ ๋•์„ ํฌ๊ฒŒ ๋ณด๊ณ  ์žˆ๋Š” ์ž…์žฅ์—์„œ ๋ณด๋‹ˆ HIbernate๊ฐ™์€ ORM์ด ์œ ๋… ์•ˆํ‹ฐ๊ฐ€ ๋งŽ์€๊ฑฐ ๊ฐ™๋„ค์š”.
>
> ๊ทธ๋ž˜๋„ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ์นผํ‡ด๊ทผ์„ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋Š” Spring๋„ Groovy๋„ ์•„๋‹Œ Hibernate์ธ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.
>
> ํ•œ๊ตญ SI์—์„œ ํ•ญ์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š”๊ฑด ORM์œผ๋กœ ์ƒ์„ฑ๋œ SQL์˜ ์„ฑ๋Šฅ์ด ์•„๋‹ˆ๋ผ.
>
> ๋ฏธ์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†์œผ๋กœ ์ž‘์„ฑํ•œ ์žฅ๋ฌธ์˜ ๋˜๋Š” ์ค‘๋ณต๋œ SQL์ด๋”๊ตฐ์š”.
>

> 2010๋…„ 2์›” 9์ผ ์˜ค์ „ 12:11, Sanghyuk Jung <bene...@gmail.com>๋‹˜์˜ ๋ง:

> > 2010๋…„ 2์›” 8์ผ ์˜คํ›„ 11:13, ๋ฐฑ๊ธฐ์„  <whiteship2...@gmail.com>๋‹˜์˜ ๋ง:

> ...
>
> read more >>

Jay Park

unread,
Feb 9, 2010, 7:54:22โ€ฏAM2/9/10
to kg...@googlegroups.com

์—‰๋šฑํ•œ ๋ง์”€์ž…๋‹ˆ๋‹ค๋งŒ,
์ด ์“ฐ๋ ˆ๋“œ์˜ ์‹œ์ž‘์ด ์ œ ๋ฉ”์ผ์ด์—ˆ๊ตฐ์š”.
๊ฐ‘์ž๊ธฐ ์˜๊ด‘์Šค๋Ÿฝ๋‹ค๋Š” ์ƒ๊ฐ์ด.. ใ…Žใ…Ž
2010๋…„ 2์›” 9์ผ ์˜ค์ „ 8:55, ์‹ ์Šนํ•œ <my....@gmail.com>๋‹˜์˜ ๋ง:

๋ฐ•์„ฑ์ฒ 

unread,
Feb 9, 2010, 9:30:07โ€ฏPM2/9/10
to kg...@googlegroups.com

>
> ์—‰๋šฑํ•œ ๋ง์”€์ž…๋‹ˆ๋‹ค๋งŒ,
> ์ด ์“ฐ๋ ˆ๋“œ์˜ ์‹œ์ž‘์ด ์ œ ๋ฉ”์ผ์ด์—ˆ๊ตฐ์š”.
> ๊ฐ‘์ž๊ธฐ ์˜๊ด‘์Šค๋Ÿฝ๋‹ค๋Š” ์ƒ๊ฐ์ด.. ใ…Žใ…Ž
>
์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค. ใ…Žใ…Ž
์ข‹์€ ํ† ๋ก ์ด๋„ค์š”.


Myoungsoo Shin

unread,
Feb 9, 2010, 11:56:37โ€ฏPM2/9/10
to kg...@googlegroups.com
์•„ ์žฌ๋ฏธ์žˆ๋Š” ํ† ๋ก ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ์—ˆ๊ตฐ์š”. +_+
์ข€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋“ฏ ํ•œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์„œ ๋‚จ๊น๋‹ˆ๋‹ค.
http://codemonkeyism.com/orms/

๊น€์„ฑ๋ฐฐ

unread,
Feb 10, 2010, 2:10:22โ€ฏAM2/10/10
to kg...@googlegroups.com
Groovy & Grails ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ๋กœ ์‹œ์ž‘ํ–ˆ์œผ๋‚˜
drypot๋‹˜์˜ ์–ธ์–ด,ํ”„๋ ˆ์ž„์› ๊ธฐํ–‰๊ธฐ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€๊ฒฝ๋œ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
(๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ ํ™œ๋™์ด ์ €์กฐํ•˜์—ฌ์„œ์ง€๋งŒ..)
๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์š”์ƒˆ ์–ด๋–ค ๋ธ”๋กœ๊ทธ๋ณด๋‹ค๋„ ์žฌ๋ฐŒ๊ฒŒ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค~

๊ทธ๋ƒฅ ์š”์ฆ˜ ์œ ํ–‰ํ•˜๋Š” ๋‹ค์ˆ˜๊ฐ€ ์“ฐ๋Š” ํ”„๋ ˆ์ž„์›, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณ„ ์˜๋ฌธ์—†์ด ๋ฐ›์•„๋“ค์ด๊ณ  ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ drypot๋‹˜์˜ ๊ธ€์„ ๋ณด๋ฉด์„œ ๋‹ค์‹œ
๋’ค๋Œ์•„๋ณผ์ˆ˜ ์žˆ๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํšŒ์‚ฌ์—์„œ ๊ฑฐ์˜๋Œ€๋ถ€๋ถ„ Java๋กœ ๊ฐœ๋ฐœํ•˜์ง€๋งŒ ์–ด์ฉŒ๋‹ค phpํ”„๋กœ์ ํŠธ๊ฐ€ ์ƒ๊ฒจ์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์–ธ์–ด ์ž์ฒด๋Š” ๋ณ„๋กœ ์žฌ๋ฏธ์—†์ง€๋งŒ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ
์ˆ˜์ •ํ•˜๋ฉด 0.1์ดˆ๋ฉด ๋ณผ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์‘์„ฑ์ด ์ข‹๊ตฐ์š”. 10๋…„ ์ „์— ๋ดค๋˜ php๋„ ์•„๋‹ˆ๊ณ  rails์Šคํƒ€์ผ์˜ ํ”„๋ ˆ์ž„์›๋„ ์žˆ๋„ค์š”.
๋ชจ๋“ ๊ฒƒ์ด ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

drypot๋‹˜์ด ์–ด๋””์— ์•ˆ์ฐฉํ•˜์‹ค์ง€ ๋งค์šฐ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค~

2010/2/9 drypot <dry...@gmail.com>:

๋ฐ•์„ฑ์ฒ 

unread,
Feb 10, 2010, 2:20:50โ€ฏAM2/10/10
to kg...@googlegroups.com

> ์•„ ์žฌ๋ฏธ์žˆ๋Š” ํ† ๋ก ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ์—ˆ๊ตฐ์š”. +_+
> ์ข€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋“ฏ ํ•œ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์„œ ๋‚จ๊น๋‹ˆ๋‹ค.
> http://codemonkeyism.com/orms/
>
์˜์–ด์ž–์•„์š”! ์š”์•ฝํ•ด์ฃผ์„ธ์š”. ใ…Žใ…Žใ…Ž

๋Œ€์ถฉ ๋ดค๋Š”๋ฐ ์š”์ฆ˜ ์ƒ๊ฐํ•˜๋˜ ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋‚ด์šฉ๋„ ์žˆ๋„ค์š”.
๊ฒฐ๊ตญ SQL๊ณผ RDBMS๊ฐ€ ์‡ ํ‡ดํ•˜๋ฉด ORM ๊ธฐ์ˆ ๋„ ์˜๋ฏธ ์—†์–ด์ง„๋‹ค๋Š”...

๋ฌผ๋ก  ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”๋Š” ์•„๋‹ˆ๋”๋ผ๋„ Clouding Computing์ด ํƒ„๋ ฅ์„ ๋ฐ›๊ณ  ์žˆ๋Š” ์ƒํ™ฉ
์— ๋ฌด์‹œํ•  ๋‚ด์šฉ์€ ์•„๋‹Œ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

Reply all
Reply to author
Forward
0 new messages