๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€160

[Spring]Spring AOP ๊ฐœ๋… ๋ฐ ํ™œ์šฉ ๋ฐฉ๋ฒ• ๐Ÿค”Spring AOP(Aspect Oriented Programming - ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๋ž€?: AspectJ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ ํ•ต์‹ฌ๊ด€์‹ฌ์ฝ”๋“œ์™€ ํšก๋‹จ๊ด€์‹ฌ์ฝ”๋“œ๊ฐ€ ๊ฒฐํ•ฉ(Weaving)๋˜์–ด ์‹คํ–‰๋˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต1) OOP๋ณด๋‹ค AOP๊ฐ€ ์ข‹์€ ์ ?OOP์˜ ๊ฒฝ์šฐ ๋ชจ๋“ˆํ™”(์บก์Аํ™”)๊ฐ€ ๋„ˆ๋ฌด ๊ฐ•๋ ฅํ•ด์„œ ํ•ต์‹ฌ๊ด€์‹ฌ์ฝ”๋“œ์™€ ํšก๋‹จ๊ด€์‹ฌ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์–ด๋ ค์›€ => ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ฑ์ด ๋†’์•„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒ์‚ฐ์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์˜ ํšจ์œจ์„ฑ ๊ฐ์†Œ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ AOP๋Š” ํ•ต์‹ฌ๊ด€์‹ฌ์ฝ”๋“œ์™€ ํšก๋‹จ๊ด€์‹ฌ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•œ ํ›„, ๊ฒฐํ•ฉ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์—์„œ๋งŒ ๊ฒฐํ•ฉํ•˜์—ฌ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋กํ•˜์—ฌ ํ•ด๊ฒฐํ•ด์คŒ!2) Spring AOP ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด 2๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋นŒ๋“œ ์ฒ˜๋ฆฌ ํ•„์š”์„œ๋Š” aspectjrt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ aspectjweaver ๋ผ์ด.. 2024. 6. 25.
[MySQL] IFNULL ํ•จ์ˆ˜ (Oracle์˜ NVL๊ณผ ๊ฐ™์€ ์—ญํ• ) MySQL์—์„œ๋Š” NULL ๊ฐ’์„ ๋Œ€์ฒดํ•  ๋•Œ, IFNULL์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.IFNULL(์ปฌ๋Ÿผ๋ช…, '๋Œ€์ฒด๊ฐ’');  ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๋ฉด, INCOME(์›”๊ธ‰)์ด๋ผ๋Š” ์ปฌ๋Ÿผ์— ๊ฐ’์ด ์—†์œผ๋ฉด NULL์ด ์•„๋‹Œ 0์ด ๋“ค์–ด๊ฐ€๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค?! ์•„๋ž˜์™€ ๊ฐ™์ด ์“ฐ๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด INCOME์— ๋“ค์–ด๊ฐˆ ๊ฐ’์ด ์—†์œผ๋ฉด ๋ฌด์กฐ๊ฑด 0์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.์ˆ˜์ž… 0...์ด ๋˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฉด ์ผํ•˜์ž ๐Ÿ˜‚IFNULL(INCOME, 0);   +์ฐธ๊ณ ) ์ด์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์˜ค๋ผํด์—๋„ ์žˆ์Œ! ์˜ค๋ผํด์—์„œ๋Š” null๊ฐ’์„ ๋Œ€์ฒด ํ•  ๋•Œ, NVL ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Œ. ์ด๊ฑด ์ด์ „์— ๊ณต๋ถ€ํ–ˆ์—ˆ์œผ๋‹ˆ ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ๋ณด์ž !  ์•„๋ž˜ ์ฐธ์กฐ!๐Ÿ”ฝ๐Ÿ”ฝ2023.11.29 - [Database/Oracle SQL] - [SQL-Oracle]ํ•จ์ˆ˜(Function) - ์ผ๋ฐ˜ํ•จ์ˆ˜ -N.. 2024. 6. 4.
[mybatis]resultMap ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ -collection ์—˜๋ฆฌ๋จผํŠธ ๐Ÿ”ธcollection : 1:N ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ์—์„œ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์œผ๋กœ List ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ resultMap ์—˜๋ฆฌ๋จผํŠธ์˜ type ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ํ•„๋“œ์— ์ €์žฅํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ => ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ๋กœ id ์—˜๋ฆฌ๋จผํŠธ ๋˜๋Š” result ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ List ๊ฐ์ฒด ์š”์†Œ(Java ๊ฐ์ฒด)์˜ ํ•„๋“œ์— ์ €์žฅ๋˜๋„๋ก ์„ค์ • โ–ช๏ธ property ์†์„ฑ : collection ์—˜๋ฆฌ๋จผํŠธ๋กœ ์ƒ์„ฑ๋œ List ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋  ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • โ–ช๏ธ ofType ์†์„ฑ : List ๊ฐ์ฒด์— ์ €์žฅ๋œ ์š”์†Œ(Java ๊ฐ์ฒด)์˜ ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • => Java ์ž๋ฃŒํ˜• ๋Œ€์‹  typeAlias ์—˜๋ฆฌ๋จผํŠธ๋กœ ์„ค์ •ํ•œ ๋ณ„์นญ(AliasName) ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๐Ÿ‘ฉโ€๐Ÿ’ป์‹ค์Šต ์˜ˆ์ œ ๊ฒŒ์‹œ๊ธ€ ํ•œ ๊ฐœ ๋‹น 0๊ฐœ ์ด์ƒ.. 2024. 3. 10.
[mybatis]resultMap ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ -association ์—˜๋ฆฌ๋จผํŠธ id/result ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š”๊ฑด ๊ฒ€์ƒ‰ํ–‰์˜ ๊ฐ’์„ ๋ฐ”๋กœ ํ•„๋“œ์— ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค! ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์•„๋ž˜์™€ ๊ฐ™์ด DTO ํŒŒ์ผ์„ ํ™•์ธํ•ด ๋ดค์„ ๋•Œ, ์ปฌ๋Ÿผ๋ช…๋งˆ๋‹ค ๋ณ€์ˆ˜๊ฐ€ ๋ชจ๋‘ ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•„๋“œ์— ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ด์•ผ๋งŒ ํ•˜๋Š” dto ํด๋ž˜์Šค๋Š” id/result ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ํ•„๋“œ์— ์ €์žฅ์ด ์•ˆ๋œ๋‹ค. ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด association ์—˜๋ฆฌ๋จผํŠธ! ๐Ÿ”ธassociation : 1:1 ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ” ์กฐ์ธ์—์„œ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ resultMap ์—˜๋ฆฌ๋จผํŠธ์˜ type ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ํ•„๋“œ์— ์ €์žฅํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ => ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ : id ์—˜๋ฆฌ๋จผํŠธ ๋˜๋Š” result ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ association ์—˜๋ฆฌ๋จผํŠธ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด ํ•„๋“œ.. 2024. 3. 8.
[mybatis]resultMap ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ - constructor ์—˜๋ฆฌ๋จผํŠธ resultMap์—๋Š” 6๊ฐ€์ง€ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ์žˆ์Œ. ์ด ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๋‹ค. ์ˆœ์„œ๋ฅผ ์•ˆ์ง€ํ‚ค๋ฉด ์—๋Ÿฌ๋‚จ! ์ˆœ์„œ: constructor, id, result, association, collection, discriminator id์™€ result ์—˜๋ฆฌ๋จผํŠธ๋Š” ์—ฌ๊ธฐ ์•„๋ž˜์— ์„ค๋ช…ํ•ด๋†จ์Œ(ํ•ด๊ฒฐ๋ฒ•3 ์ฐธ๊ณ )โฌ‡๏ธ 2024.03.06 - [Java/mybatis] - [mybatis]์ˆ˜๋™ ๋งคํ•‘ & resultMap ์—˜๋ฆฌ๋จผํŠธ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๋‹ค๋ฅผ ๋•Œ) [mybatis]์ˆ˜๋™ ๋งคํ•‘ & resultMap ์—˜๋ฆฌ๋จผํŠธ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๋‹ค๋ฅผ ๋•Œ) resultType ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด resultType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ๊ฐ™์€ ์ด๋ฆ„์˜ ๊ฐ์ฒด ํ•„๋“œ๊ฐ’์œผ๋กœ ์ž๋™.. 2024. 3. 7.
[mybatis]selectKey ์—˜๋ฆฌ๋จผํŠธ(insert ์—˜๋ฆฌ๋จผํŠธ์˜ ํ•˜์œ„ ์—˜๋ฆฌ๋จผํŠธ) ๐Ÿค”selectKey : SELECT ๋ช…๋ น์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋กœ ๊ฐ’์„ ์ œ๊ณต๋ฐ›์•„ insert ์—˜๋ฆฌ๋จผํŠธ์˜ parameterType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ๊ฐ์ฒด์˜ ํ•„๋“œ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ => insert ์—˜๋ฆฌ๋จผํŠธ์— ์ข…์†๋œ ์—˜๋ฆฌ๋จผํŠธ => ์ž๋™ ์ฆ๊ฐ€๊ฐ’ ๋˜๋Š” ๋‚œ์ˆ˜๊ฐ’์„ SELECT ๋ช…๋ น์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฐ์ฒด ํ•„๋“œ์— ์ €์žฅํ•ด INSERT ๋ช…๋ น์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์„ฑ โ–ช๏ธ resultType ์†์„ฑ : SELECT ๋ช…๋ น์œผ๋กœ ๊ฒ€์ƒ‰๋œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ œ๊ณต๋ฐ›๊ธฐ ์œ„ํ•œ Java ์ž๋ฃŒํ˜•์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • => J ava ์ž๋ฃŒํ˜• ๋Œ€์‹  typeAlias ์—˜๋ฆฌ๋จผํŠธ๋กœ ์„ค์ •ํ•œ ๋ณ„์นญ(AliasName) ์‚ฌ์šฉ ๊ฐ€๋Šฅ โ–ช๏ธ keyProperty ์†์„ฑ : insert ์—˜๋ฆฌ๋จผํŠธ์˜ parameterType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์„ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • - ์ „๋‹ฌ๋ฐ› ์€.. 2024. 3. 7.
[mybatis]resultMap ์—˜๋ฆฌ๋จผํŠธ - autoMapping ์†์„ฑ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๊ฐ™์„ ๋•Œ) 2024.03.06 - [Java/mybatis] - [mybatis]์ˆ˜๋™ ๋งคํ•‘ & resultMap ์—˜๋ฆฌ๋จผํŠธ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๋‹ค๋ฅผ ๋•Œ) [mybatis]์ˆ˜๋™ ๋งคํ•‘ & resultMap ์—˜๋ฆฌ๋จผํŠธ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๋‹ค๋ฅผ ๋•Œ) resultType ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด resultType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ๊ฐ™์€ ์ด๋ฆ„์˜ ๊ฐ์ฒด ํ•„๋“œ๊ฐ’์œผ๋กœ ์ž๋™ ์ €์žฅํ•˜์—ฌ ์ œ๊ณต - ์ž๋™ ๋งคํ•‘ ๋ฌธ์ œ์  : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๋ช…๊ณผ re sukis.tistory.com ์œ„ ๊ธ€์—์„œ resultMap์˜ ๋‹ค๋ฅธ ์†์„ฑ๋“ค์€ ์„ค๋ช…ํ•ด๋†จ์Œ. ๊ฑฐ๊ธฐ์„œ ๋ณด๋˜ ์˜ˆ์ œ๋กœ ๊ณ„์† ์‚ดํŽด๋ณด๋ฉด, resultMap์„ ์‚ฌ์šฉํ•ด ์ˆ˜๋™ ๋งคํ•‘ํ•ด์คฌ์—ˆ์Œโฌ‡๏ธ select user_id, user_name from myuser order by.. 2024. 3. 7.
[mybatis]์ˆ˜๋™ ๋งคํ•‘ & resultMap ์—˜๋ฆฌ๋จผํŠธ(์ปฌ๋Ÿผ๋ช…๊ณผ DTOํŒŒ์ผ ํ•„๋“œ๋ช… ๋‹ค๋ฅผ ๋•Œ) resultType ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด resultType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๊ฐ’์„ ๊ฐ™์€ ์ด๋ฆ„์˜ ๊ฐ์ฒด ํ•„๋“œ๊ฐ’์œผ๋กœ ์ž๋™ ์ €์žฅํ•˜์—ฌ ์ œ๊ณต - ์ž๋™ ๋งคํ•‘ ๋ฌธ์ œ์  : ๊ฒ€์ƒ‰ํ–‰์˜ ์ปฌ๋Ÿผ๋ช…๊ณผ resultType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค์˜ ํ•„๋“œ๋ช…์ด ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ฒฝ์šฐ resultType ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  NULL ์ œ๊ณต => ์›นํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ NullPointerException ๋ฐœ์ƒ ๋จผ์ € ํ…Œ์ด๋ธ”๊ณผ ํ•„๋“œ๋ช…์„ ํ™•์ธํ•ด๋ณด๋ฉดโฌ‡๏ธ โšซMYUSER ํ…Œ์ด๋ธ” : ํšŒ์›์ •๋ณด๋ฅผ ์ €์ •ํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ด๋ธ” => SQL ๋ช…๋ น์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‹๋ณ„์ž๋ฅผ ์„ ์–ธํ•  ๋•Œ ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ => ์Šค๋„ค์ดํฌ ํ‘œ๊ธฐ๋ฒ•(SnakeCase) : ๋‹จ์–ด์™€ ๋‹จ์–ด๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด _ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉ.. 2024. 3. 6.
[mybatis]๋งคํผXML ํŒŒ์ผ - sql ์—˜๋ฆฌ๋จผํŠธ๊ณผ include ์—˜๋ฆฌ๋จผํŠธ ๐Ÿ”ธsql : SQL ๋ช…๋ น์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ๋ถ€๋ถ„์˜ ๋ฌธ์žฅ์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์—˜๋ฆฌ๋จผํŠธ โ–ช๏ธ id ์†์„ฑ : ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • ๐Ÿ”ธinclude : sql ์—˜๋ฆฌ๋จผํŠธ์— ๋“ฑ๋ก๋œ ๋ฌธ์žฅ์„ ์ œ๊ณต๋ฐ›์•„ SQL ๋ช…๋ น์— ํฌํ•จํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ โ–ช๏ธ refid ์†์„ฑ : sql ์—˜๋ฆฌ๋จผํŠธ์˜ ์‹๋ณ„์ž(id ์†์„ฑ๊ฐ’)๋ฅผ ์†์„ฑ๊ฐ’์œผ๋กœ ์„ค์ • user_id userId, user_name userName select from myuser order by user_id ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” sql ๊ตฌ๋ฌธ๋“ค์„ sql ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋”ฐ๋กœ ์ €์žฅํ•ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ! ๐Ÿ˜€ 2024. 3. 6.
[mybatis]๋งคํผ ๋ฐ”์ธ๋”ฉ(Mapper Binding) ๐Ÿค”๋งคํผ ๋ฐ”์ธ๋”ฉ(Mapper Binding) : SQL ๋ช…๋ น์€ XML ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ์— ๋“ฑ๋กํ•˜๊ณ  DAO ํด๋ž˜์Šค๋Š” Interface ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ => ๋งคํผ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ XML ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ๊ณผ Interface ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋งคํผ๋กœ ๋“ฑ๋ก๋˜์–ด ๋™์ž‘๋˜๋„๋ก ์„ค์ • ๊ฐ€๋Šฅ => mapper ์—˜๋ฆฌ๋จผํŠธ์—๋Š” XML ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ ๋˜๋Š” Interface ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๋งŒ ๋งคํผ๋กœ ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ์šฉ ์‹ค์Šต ์ฝ”๋“œ๐Ÿ‘ฉโ€๐Ÿ’ป โฌ‡๏ธmybatis-config.xml ํŒŒ์ผ์— Interface ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ๋งŒ ๋งคํผ๋กœ ๋“ฑ๋กํ•จ //์ƒ๋žต โšซXML ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ๊ณผ Interface ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ๋กœ ๋งคํผ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™โšซ 1) XML ๊ธฐ๋ฐ˜์˜ ๋งคํผ ํŒŒ์ผ์—์„œ mapper ์—˜๋ฆฌ๋จผํŠธ.. 2024. 3. 6.
[mybatis]Mapper ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ(XML ๊ธฐ๋ฐ˜ & Interface ๊ธฐ๋ฐ˜) ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค XML ์„ค์ •ํŒŒ์ผ(mybatis-config.xml)์„ ์ž‘์„ฑํ•˜๊ณ  ๋‚˜๋ฉด, ํ•„์š”ํ•œ Mapper ํŒŒ์ผ๋“ค์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค. ์•„๋ž˜ ๊ธ€์˜ ๋งจ ์•„๋ž˜์ชฝ ๋ถ€๋ถ„์—์„œ ๋งํ–ˆ๋“ฏ์ด, ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์˜ Mapper ํŒŒ์ผ์€ XML ๊ธฐ๋ฐ˜๊ณผ ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜, ๋‘๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. 2024.03.05 - [Java/mybatis] - [mybatis] mybatis ๊ฐœ๋… & ์ดํด๋ฆฝ์Šค์— mybatis ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • [mybatis] mybatis ๊ฐœ๋… & ์ดํด๋ฆฝ์Šค์— mybatis ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • ๐Ÿค”mybatis๋ž€? ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜๋ฉด, JDBC๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ƒ๋‹น๋ถ€๋ถ„์˜ ์ฝ”๋“œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •๋ฐ ๊ฒฐ๊ณผ ๋งคํ•‘์„ ๋Œ€์‹ ํ•ด์ค€๋‹ค! ์ถœ์ฒ˜:mybatis ์‚ฌ์ดํŠธ MyBatis๋Š” Java ๊ธฐ๋ฐ˜์˜ ์˜์†์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, XML ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ sukis.t.. 2024. 3. 6.
[mybatis] mybatis ๊ฐœ๋… & ์ดํด๋ฆฝ์Šค์— mybatis ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐ ์„ค์ • ๐Ÿค”mybatis๋ž€? ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์•ฝํ•˜๋ฉด, JDBC๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ƒ๋‹น๋ถ€๋ถ„์˜ ์ฝ”๋“œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •๋ฐ ๊ฒฐ๊ณผ ๋งคํ•‘์„ ๋Œ€์‹ ํ•ด์ค€๋‹ค! ์ถœ์ฒ˜:mybatis ์‚ฌ์ดํŠธ MyBatis๋Š” Java ๊ธฐ๋ฐ˜์˜ ์˜์†์„ฑ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, XML ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Java ๊ฐ์ฒด๋ฅผ SQL ๋ฌธ์— ๋งคํ•‘ํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์— ๋Œ€ํ•œ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. *๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ž€? ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ๋˜๋Š” ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์€ ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์—ฌ๋Ÿฌ๊ณณ์—์„œ ์žฌ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ๋„๋Š” ์ฝ”๋“œ๋ฅผ ๋งํ•œ๋‹ค. ๋งค๋ฒˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ๋งˆ๋‹ค ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๊ณ  ๊ท€์ฐฎ๋‹ค. ๋ฆฌํŒฉํ† ๋ง์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋ณด.. 2024. 3. 5.
[Java]์ธํ„ฐํŽ˜์ด์Šค(Interface) -realization ๐Ÿค”์ธํ„ฐํŽ˜์ด์Šค(interface)๋ž€? ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋‹ค์–‘ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์ค‘ ์ƒ์†์„ ํ•  ๊ฒฝ์šฐ ๋ฉ”์†Œ๋“œ ์ถœ์ฒ˜์˜ ๋ชจํ˜ธ์„ฑ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ํ†ตํ•œ ๋‹ค์ค‘ ์ƒ์†์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์ค‘ ์ƒ์†์˜ ์ด์ ์„ ๋ฒ„๋ฆด ์ˆ˜๋Š” ์—†๊ธฐ์— ์ž๋ฐ”์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๊ฒƒ์„ ํ†ตํ•ด ๋‹ค์ค‘ ์ƒ์†์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค(interface)๋ž€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํ‹€์„ ์ œ๊ณตํ•˜๋ฉด์„œ, ๋‹ค๋ฅธ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์ค‘๊ฐ„ ๋งค๊ฐœ ์—ญํ• ๊นŒ์ง€ ๋‹ด๋‹นํ•˜๋Š” ์ผ์ข…์˜ ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ถœ์ฒ˜:TPC School ๐Ÿ˜Š์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ ์ด์œ  1.ํด๋ž˜์Šค์˜ ๋‹จ์ผ ์ƒ์† ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ์ผ๋ถ€ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค .. 2024. 2. 29.
[Eclipse ์˜ค๋ฅ˜] Cannot move project mybatis to target location ~ , as this location overlaps with location ~, which contains a .project file ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊นƒ์— ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค.(๊ฒ€์€์ƒ‰ ๊ธ€์”จ๋Š” ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ €์žฅ๋œ ํด๋” ๊ฒฝ๋กœ๋‹ˆ๊นŒ ๊ฐ์ž ๋‹ค๋ฅด๊ฒŒ ๋œฐ๊ฑฐ์ž„. )  Cannot move project mybatis to target location C:\Users\itwill\git\javaitwill\java-itwill\mybatis, as this location overlaps with location C:\Users\itwill\git\javaitwill\java-itwill, which contains a .project file  ์œ„ ๊ฒฝ๋กœ์˜ ํด๋”๋กœ ๋“ค์–ด๊ฐ€์„œ [.project]๋ผ๋Š” ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ! ๋‹ค์‹œ share projectํ•ด๋ณด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ธฐ์กด repository์— ์˜ฌ๋ผ๊ฐ„๋‹ค :) 2024. 2. 29.
MVC2 ํŒจํ„ด(์˜ˆ์ œ ์ฝ”๋“œ) & ํ•œ๊ณ„์  ๐Ÿค”์ปจํŠธ๋กค๋Ÿฌ(Controller - Servlet) : ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ์„ ๋ฐ›์•„ ๋ชจ๋ธ(Model - Class) ์—ญํ• ์˜ ๊ฐ์ฒด๋กœ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ๋ฅผ ๋ทฐ(View - JSP)์—๊ฒŒ ์ œ๊ณตํ•˜์—ฌ ์‘๋‹ต๋˜๋„๋ก ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์›นํ”„๋กœ๊ทธ๋žจ(์„œ๋ธ”๋ฆฟ) โšซ์ปจํŠธ๋กค๋Ÿฌ ์„œ๋ธ”๋ฆฟ์˜ ๋™์ž‘ ๋ฐฉ์‹โšซ 1.ํด๋ผ์ด์–ธํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์„œ๋ธ”๋ฆฟ์˜ URL ํŒจํ„ด์„ ์„ค์ •ํ•˜์—ฌ ๋‹จ์ผ ์ง„์ž…์ ์˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„ => Front Controller Pattern ๋ฐฉ๋ฒ•1) @WebServlet("url") ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ @WebServlet("url") : ํด๋ž˜์Šค๋ฅผ ์„œ๋ธ”๋ฆฟ(์›นํ”„๋กœ๊ทธ๋žจ)์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ์š”์ฒญ URL ์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ => ๋งคํ•‘ ์„ค์ •๋œ URL ์ฃผ์†Œ์— ํŒจํ„ด๋ฌธ์ž(* : ์ „์ฒด, ?.. 2024. 2. 26.
MVC1 ํŒจํ„ด vs MVC2 ํŒจํ„ด(+Spring MVC2 ํŒจํ„ด) ๐Ÿค”MVC1 ํŒจํ„ด MVC1 ํŒจํ„ด์€ View์™€ Controller๋ฅผ ๋ชจ๋‘ ํ•˜๋‚˜์˜ JSP๊ฐ€ ๋‹ด๋‹นํ•˜๋Š” ํ˜•ํƒœ์ž„. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— JSP ํŽ˜์ด์ง€์— ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์™€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ์ถœ๋ ฅ ๊ด€๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๋’ค์„ž์—ฌ ์žˆ๋Š” ๊ตฌ์กฐ์ž„. ์žฅ์ : ํŽ˜์ด์ง€ ์ž‘์„ฑ์ด ๋‹จ์ˆœํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ. ์ค‘์†Œํ˜• ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ ๋‹จ์ : ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ณ , ์žฌ์‚ฌ์šฉ์ด ํž˜๋“ค์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜์ง€ ์•Š์Œ. ๐Ÿค”MVC2 ํŒจํ„ดโญโญโญ MVC2 ํŒจํ„ด์€ Controller์™€ View๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด MVC1 ํŒจํ„ด๊ณผ์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ž„. ๋Œ€์ฒด๋กœ Controller๋Š” Servlet ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๊ณ  View๋Š” JSP ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•จ. ์žฅ์ : MVC1์˜ ๋‹จ์ ์„ ๋ณด์™„. ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์–ด ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์ด ์ค„์–ด๋“ค์–ด ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜.. 2024. 2. 26.
[Java]์ค‘์ฒฉ ํด๋ž˜์Šค(Nested Class) ๐Ÿค”์ค‘์ฒฉ ํด๋ž˜์Šค(Nested Class) : ํด๋ž˜์Šค(Outer Class) ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ํด๋ž˜์Šค(Inner Class) => ๋‘๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„์— ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ - ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ => ํด๋ž˜์Šค์˜ ์บก์Аํ™”๋ฅผ ๊ฐ•ํ™”ํ•  ๋ชฉ์ ์œผ๋กœ ์ค‘์ฒฉ ํด๋ž˜์Šค ์„ ์–ธ โšซ๊ฐ์ฒด ๋‚ด๋ถ€ํด๋ž˜์Šค(Instance InnerClass) => ๊ฐ์ฒด ๋‚ด๋ถ€ํด๋ž˜์Šค๋Š” ์ปดํŒŒ์ผ ๋˜๋ฉด [์™ธ๋ถ€ํด๋ž˜์Šค$๋‚ด๋ถ€ํด๋ž˜์Šค.class] ํŒŒ์ผ๋กœ ์ƒ์„ฑ => ์™ธ๋ถ€ํด๋ž˜์Šค์— ์ข…์†๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ๋‚ด๋ถ€ํด๋ž˜์Šค ์˜ˆ์‹œ ์ฝ”๋“œ1๐Ÿ‘ฉโ€๐Ÿ’ป โ–ถ๏ธOuterOne์ด๋ผ๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค ์•ˆ์— InnerOne์ด๋ผ๋Š” ๋‚ด๋ถ€ํด๋ž˜์Šค ์„ ์–ธ1๏ธโƒฃInnerOne(๋‚ด๋ถ€ํด๋ž˜์Šค)์—์„œ OuterOne(์™ธ๋ถ€ํด๋ž˜์Šค)์˜ ํ•„๋“œ/๋ฉ”์†Œ๋“œ ์ง์ ‘ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋ชจ๋“  ์ ‘๊ทผ์ œํ•œ์ž ๊ฐ€๋Šฅ)2๏ธโƒฃ๋ฐ˜๋Œ€๋กœ OuterOne(์™ธ๋ถ€ํด๋ž˜์Šค)์—์„œ .. 2024. 2. 24.
[Java] throws์™€ throw์˜ ์ฐจ์ด โšซthrows๋ฌธ์€ ๋ฉ”์†Œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜์—์„œ ์˜ˆ์™ธ๋ฅผ ์„ ์–ธํ•˜์—ฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ•  โšซthrow๋ฌธ์€ ๋ฉ”์†Œ๋“œ ๋‚ด์—์„œ ์˜ˆ์™ธ๋ฅผ ์ง์ ‘ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ˆ์‹œ๐Ÿ‘ฉโ€๐Ÿ’ป //์ƒ๋žต public void addUserinfo(UserinfoDTO userinfo) throws SQLException, ExistsUserinfoException { if(UserinfoModelTwoDAO.getDAO().selectUserinfo(userinfo.getUserid())!=null) { //์‚ฌ์šฉ์ž ์˜ˆ์™ธ ํด๋ž˜์Šค๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ throw ํ‚ค์›Œ๋“œ๋กœ ์ธ์œ„์  ์˜ˆ์™ธ ๋ฐœ์ƒ throw new ExistsUserinfoException("์ด๋ฏธ ์‚ฌ์šฉ์ค‘์ธ ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ•˜์˜€์Šต๋‹ˆ๋‹ค."); } UserinfoModel.. 2024. 2. 23.
์ ˆ๋Œ€๊ฒฝ๋กœ(Absolute Path)์™€ ์ƒ๋Œ€๊ฒฝ๋กœ(Relative Path) ์ ˆ๋Œ€ ๊ฒฝ๋กœ(Absolute Path):์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ ์ „์ฒด ๊ฒฝ๋กœ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์˜ˆ๋ฅผ ๋“ค์–ด, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์›น ์„œ๋ฒ„์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋ถ€ํ„ฐ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•จ. /home/user/project/file.txt์™€ ๊ฐ™์ด ํ‘œ์‹œ๋จ.์ ˆ๋Œ€ ๊ฒฝ๋กœ๋Š” ํ•ญ์ƒ ํŠน์ • ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ ์ด๋™ํ•  ํ•„์š” ์—†์Œ.ํ•˜์ง€๋งŒ, ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์ด๋™๋  ๊ฒฝ์šฐ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Œ.์ƒ๋Œ€ ๊ฒฝ๋กœ(Relative Path):์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ์œ„์น˜์—์„œ ํŒŒ์ผ์ด๋‚˜ ํด๋”์˜ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ ์œ„์น˜์—์„œ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ../๋กœ ํ‘œ์‹œํ•˜๊ณ , ํ˜„์žฌ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ ./๋กœ ํ‘œ์‹œํ•จ.์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ์ด๋‚˜ ํด๋”์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์ด๋™ํ•ด๋„ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋Š” ์ˆ˜์ •ํ•  .. 2024. 2. 22.
[DB์˜ค๋ฅ˜/Oracle]ORA-02267: column type incompatible with referenced column type ์˜ค๋ผํด ์˜ค๋ฅ˜ -ORA-02267: column type incompatible with referenced column type 02267. 00000 -  "column type incompatible with referenced column type" *Cause:    The data type or collation of the referencing column was            incompatible with the data type or collation of the referenced            column. *Action:   Select a compatible data type for the referencing column.            Also, the coll.. 2024. 2. 5.
๋ฐ˜์‘ํ˜•