Programming๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/AxBoot 7

์ œ๋ชฉ ๋ฏธ์ •

Lombok(๋กฌ๋ณต)์€ ํŠน์ • ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์ฝ”๋“œ ๋‹ค์ด์–ดํŠธ?...๋‹ค์ด์–ดํŠธ๋Š” ๋‚ด๊ฐ€ ํ•ด์•ผ๋˜๋Š”๋ฐ..์•„๋ฌดํŠผ ๊ฐ€๋…์„ฑ, ์œ ์ง€ ๋ณด์ˆ˜์— ๋„์›€์ด ๋งŽ์ด ๋œ๋‹จ๋‹ค. ์•ˆ ์ต์ˆ™ํ•œ ์ดˆ์งœ๋Š” ๊ฐ€๋…์„ฑ์ด ์ „ํ˜€ ๋„์›€ ์•ˆ ๋˜๋Š”๊ฒŒ ํ•จ์ • ๊ทธ๊ฒŒ ๋‚˜์•ผ๋‚˜ ์ž๋ฐ”๋นˆ์ฆˆ ํŒจํ„ด ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ์ƒ์„ฑ์ž๋กœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“  ํ›„, Setter ๋ฉ”์„œ๋“œ๋“ค์„ ํ˜ธ์ถœํ•ด์„œ ์›ํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ •์˜๋Š” ์ˆœ์กฐ๋กœ์›Œ ๋ณด์ด์ง€๋งŒ... default ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ๊ฐ์ฒด๋งŒ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์„ setter ๋ฉ”์„œ๋“œ๋กœ ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค๊ณ  ํ• ๋•Œ ๋งŒ์•ฝ ์„ค์ •ํ•ด์•ผํ•  ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆ˜๊ฐ€ ์™•์ฐฝ ๋งŽ์œผ๋ฉด ๊ทธ๋งŒํผ Setter ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•จ. TestVo testVo = new TestVo(); testVo.setUserIdx(1); testVo..

Banner / Logging / Excel download

๋ฒ ๋„ˆ ํ…์ŠคํŠธ ๋ฐ‘์— tagg ์ƒ์„ฑ ํ™ˆํŽ˜์ด์ง€์— ์ ‘์†ํ•ด์„œ ์›ํ•˜๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋„ฃ๊ณ  ์ƒ์„ฑ๋œ ๋ฌธ๊ตฌ๋ฅผ copyํ›„ banner.txt์— ๋ถ™์—ฌ๋„ฃ๊ณ  ์ €์žฅํ•œ๋‹ค. patorjk.com/software/taag/ Text to ASCII Art Generator (TAAG) patorjk.com ์™„์„ฑ! Logging Logging Level ์ข…๋ฅ˜ ๋”๋ณด๊ธฐ Logging Level • ์ •๋ณด(info) : ๊ฐœ๋ฐœ/ํ…Œ์ŠคํŠธ ์‹œ ๋‹จ์ˆœ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ (system.out.println ๋Œ€์ฒด) • ๊ฒฝ๊ณ (warning) : ๋น„์ •์ƒ ์ž…๋ ฅ ๋˜๋Š” ์˜ค๋™์ž‘ ๋ฐœ์ƒ์‹œ ์ถœ๋ ฅ • ์˜ค๋ฅ˜(error) : ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ์ถœ๋ ฅ, ์˜ˆ์™ธ(Exception)์„ ๊ฐ์ง€ ์‚ฌ์šฉ • ๋””๋ฒ„๊ทธ(debug) : ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””๋ฒ„๊น… ์‹คํ–‰ ์‹œ ํ™•์ธ ๋ชฉ์  ์ถœ๋ ฅ • ์ถ”์ (trace) : ๋””๋ฒ„๊ทธ..

jsfiddle

Jsfiddle ์‚ฌ์šฉํ•˜๊ธฐ(jsfiddle.net/) - collaborate ๊ธฐ๋Šฅ: ํ˜‘์—…๊ธฐ๋Šฅ์œผ๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—ฌ๋Ÿฌ์‚ฌ๋žŒ๊ณผ ์ฝ”๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ์Œ ์†Œ์Šค์ฝ”๋“œ ํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ(์‹œ๋ฎฌ๋ ˆ์ด์…˜์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ ์‹ถ์€ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€) - ๋‚˜์˜ ๊ณ„์ • ๋ฉ”๋‰ด์—์„œ new fiddle ์„ ํƒ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ข…๋ฅ˜์—์„œ ๋“œ๋กญ๋ฐ•์Šค๋ฅผ ๋ˆ„๋ฅด๋ฉด ํƒ€์ž…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งํฌ - ์ขŒ์ธก ๋ฉ”๋‰ด๋‹จ์—์„œ Resources์— ๋งํฌ ๋ถ™์—ฌ ๋„ฃ๊ณ  ํ”Œ๋Ÿฌ์Šค ๋ฒ„ํŠผ์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. - HTML/ JS ์†Œ์Šค ๋ถ™์—ฌ ๋„ฃ๊ธฐ - sample ๋ฐ์ดํ„ฐ๊ฐ’๋“ค์ด ๋„˜์–ด์˜ค์ง€ ์•Š์„ ๊ฒฝ์šฐ ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋ชจ๋“œ(F12)์— ๋“ค์–ด๊ฐ€์„œ 'Network'ํƒญ์—์„œ 'XHR', 'JS' ๋“ฑ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์žˆ๋Š”๋ฐ ์–ด๋Š ๊ฒฝ๋กœ ๋„˜์–ด์˜ค๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ์˜ค๋Š˜ ์ˆ˜์—…์˜ ๊ฒฝ์šฐ๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ NETWORK - JS์—์„œ DOC...

*์ค‘์š” ๋””๋ฒ„๊น…, ๋‹จ์œ„ํ…Œ์ŠคํŠธ

service ๋‹จ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜๋Š”์ง€ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ๋„ฃ์–ด์„œ ํ™•์ธํ•˜๊ธฐ. ๋‹จ์œ„ํ…Œ์ŠคํŠธ์˜ ์‹œ์ž‘ *ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ์Šต๊ด€์€ ์ •๋ง ์ค‘์š”ํ•˜๋‹ˆ๊นŒ ํ•ญ์ƒ ๋ชธ์— ์ต์ˆ™ํ•˜๊ฒŒ ๋งŒ๋“ค์ž! ๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์„ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด์•ผํ•จ. 1. ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ [src - test - java - edu -axboot - domain - {company - [CompanyServiceTest.java]} 2. class ์„ค๊ณ„ *Junit assert ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐ 3. Test ๊ตฌ์„ฑ Test ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ run์œผ๋กœ ์‹คํ–‰ ๋””๋ฒ„๊ทธ ์‹คํ–‰: ํ˜„ ์†Œ์Šค์ฝ”๋“œ์—์„œ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ๋””๋ฒ„๊ทธ run์œผ๋กœ ์‹คํ–‰ package edu.axboot.domain.company; import com..

Mybatis์—ฐ๋™

์ž์„ธํ•œ ๋ฉ”๋‰ด์–ผ์€ ๊ณต์‹ํ™ˆํŽ˜์ด์ง€์— ์žˆ๊ธดํ•จ api.axboot.com/ AXBoot์†Œ๊ฐœ · ax-boot-document api.axboot.com ๊ฐœ๋ฐœ์ž๋„๊ตฌ-ModelExtractor - CompanyM - code์—์„œ interface/XML ๋ถ€๋ฌธ์„ ํ™œ์šฉ. 1. CompanyController.java์—์„œ mybatis ์กฐํšŒ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•จ. ์•ž์„œ querydsl ๊ธฐ๋Šฅ์—์„œ ์กฐํšŒ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์™€์„œ ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ์„ ํ•ด์คŒ. *์ •์˜๊ฐ€ ์•ˆ๋œ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋Š” alt+Enter ๋‹จ์ถ•ํ‚ค๋กœ ์ƒ์„ฑํ•œ๋‹ค. control+alter+b = ์ •์˜๋œ ํด๋ž˜์Šค ํŒŒ์ผ๋กœ ์ด๋™(์ธํ…”๋ฆฌ์ œ์ด ๊ธฐ์ค€) // value= "/mybatis"๋กœ ๋ณ€๊ฒฝ @RequestMapping(value = "/myBatis", method = RequestMethod.G..

QueryDSL

QueryDSL? ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๋ณต์žกํ•œ Creteria๋ฅผ ๋Œ€์ฒดํ•˜๋Š” JPQL๋นŒ๋”์ด๋‹ค. ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์™€ ๋™์ ์ฟผ๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•ด์ฃผ๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ๋ฒ•์˜ค๋ฅ˜๋ฅผ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์žก์•„์ค„ ์ˆ˜ ์žˆ๋‹ค. -Creteria๋Š” Java์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด JPQL์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํƒ€์ž… ์„ธ์ดํ”„(Type-Safe: ํƒ€์ž…์— ์•ˆ์ •์  ์ฆ‰ ์–ด๋– ํ•œ ์˜คํผ๋ ˆ์ด์…˜(๋˜๋Š” ์—ฐ์‚ฐ)๋„ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋†“์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. ์˜ˆ์ธก๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋œปํ•จ)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ฟผ๋ฆฌ์ด๋‹ค. SQL ์ฟผ๋ฆฌ๋ฅผ ๋Œ€์ฒดํ•ด HQL, JPQL์„ ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ด์šฉํ•ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค. -JPQL๋Š” JPA์˜ ์ผ๋ถ€๋กœ ์ •์˜๋œ ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์ฟผ๋ฆฌ์ด๋‹ค. SQL์— ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์•„ SQL๋ฌธ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ..

Mac ๋งฅ) Maven ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

1. ์•Œ๋งž๋Š” ๋ฒ„์ „์˜ Maven์„ ๋‹ค์šด๋กœ๋“œ(bin.tar.gz๋กœ ํ™•์žฅ์ž zipํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ)ํ•˜๊ณ  ์••์ถ•์„ ํ’€์–ด์ค€๋‹ค. 2. ํ„ฐ๋ฏธ๋„์„ ํ‚จ๋‹ค. 3. ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ๋ฉ”์ด๋ธ ํด๋”๋ฅผ ์˜ฎ๊ฒจ์ค€๋‹ค. ํ˜น์€ ์ง์ ‘ ํด๋”๋ฅผ ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์˜ฎ๊ฒจ๋„ ๋œ๋‹ค. $>mv /Desktop/maven3.3.9 /usr/local ๊ทธ๋ฆฌ๊ณ  ์œ ์ € ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋Œ์•„๊ฐ„๋‹ค. $>cd 4. ์œ ์ € ํ™˜๊ฒฝ์„ค์ •์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. $>vi .bash_profile ์œ„์— ๋ช…๋ น์— ๋Œ€ํ•ด์„œ๋Š” ์กฐ๋งŒ๊ฐ„ ๋ณ„๋„๋กœ ์•Œ์•„๋ด์•ผ๋  ๊ฒƒ ๊ฐ™๋‹ค ํ™˜๊ฒฝ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์—”ํ„ฐ๋ฅผ ์ฒ˜์Œ์— ์น˜๊ณ  ํ‚ค๋ณด๋“œ์—์„œ 'i'๋ฅผ ์ž…๋ ฅ ํ•ด์ฃผ๋ฉด '---INSERT---'๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ ๊ทธ๋Ÿฌ๋ฉด ์ปค์„œ๋ฅผ ์ด๋™ํ•ด์„œ ๊ธฐ์กด์— ํ™˜๊ฒฝ์„ค์ • ๋˜์–ด์žˆ๋Š” ํ…์ŠคํŠธ ์œ„์— ์•„๋ž˜ ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด..