• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

2020.12.09 TIL

09 Dec 2020

Today I Learned

๐Ÿ’Ž ๊ธฐ์ˆ 

โœ” QR Code Generate

  • ๊ฐ„๋‹จํ•œ ์™ธ์ฃผ ์ž‘์—…์„ ๋ฐ›๊ฒŒ ๋˜์–ด ํ์•Œ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ api๋ฅผ ๋ฐ›์•„์™€ ์›น ์„œ๋ฒ„์— ๋„์šฐ๋Š” ์ž‘์—…์„ ํ–ˆ๋‹ค. Eclipse๋กœ ํ•˜๋‹ค๊ฐ€ ๋„ˆ๋ฌด ๋ˆˆ์•„ํŒŒ์„œ IntelliJ๋กœ ๋„˜์–ด๊ฐ€์„œ ๋‹ค์‹œ ์งฐ๋Š”๋ฐ, ํ•ด๋‹น ์ž‘์—…์„ ํ•ด๋ณด๋ฉด์„œ Spring MVC์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์•ฝ๊ฐ„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์•„์ง ๋กœ์ปฌ์—์„œ๋งŒ ๋Œ๋ ค๋ดค๋Š”๋ฐ, ์™ธ์ฃผ ์—ฌ๋ถ€๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ๋„ค์ด๋ฒ„ํด๋ผ์šฐ๋“œํ”Œ๋žซํผ์— ํŒŒ๋†จ๋˜ ๋ฌด๋ฃŒ ์„œ๋ฒ„๋ฅผ ์ด๊ฑฐ๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ด์•ผํ•  ๋“ฏ.
  • ์‚ฌ์šฉํ•œ API : QR Code Generator
  • ์‚ฌ์šฉ : IDE IntelliJ, SpringBoot, javascript, html
  • ๊ตฌ์กฐ
    1. Controller์—์„œ @RequestMapping์œผ๋กœ make-qr-code/{๋ณ€์ˆ˜๋ช…}์„ ๋ฐ›์•„ model์— ์‚ฝ์ž…ํ•˜๊ณ , hello-template.html์„ view๋กœ ๋„์šด๋‹ค.
    @RequestMapping(value="make-qr-code/{name}", method = RequestMethod.GET)
      public String getQR(@PathVariable String name, Model model) {
          model.addAttribute("name", name);
          return "hello-template";
      }
    
    1. template์—์„œ spring์—์„œ ๋ชจ๋ธ์„ ํƒ€๊ณ  ๋„˜์–ด์˜จ ๋ณ€์ˆ˜ {name}์„ ์‚ฌ์šฉํ•˜์—ฌ javascript๋กœ api์˜ create-qr-code ๋งํฌ์— data๋กœ ๊ฐ–๋‹ค๋ถ™ํžŒ๋‹ค. ์ดํ›„ ์ด๋ฅผ document.getElementById๋กœ ์ด๋ฏธ์ง€ ์†Œ์Šค์— ๋„ฃ์–ด์ฃผ๊ณ  ์ถœ๋ ฅ.
  <script th:inline="javascript">
/*<![CDATA[*/
    var input_text = /*[[${name}]]*/ 'default';
    function make_qr() {
        var img_src;
        img_src = "..๊ธฐ์กด๋งํฌ..." + input_text;
        return img_src;
    }
/*]]>*/
</script>
<div class="qr_img">
    <img id="qrCode" src="">
    <script> document.getElementById('qrCode').src=make_qr()</script>
</div>

์ € CDATA๋ถ€๋ถ„์€ ์ „ํ˜€ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. {$name}์œผ๋กœ ๋ฐ›์œผ๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋ณ€์ˆ˜๊ฐ’์ด {$name}์œผ๋กœ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜์—ˆ์—ˆ๋‹ค. ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ์ €๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์‚ฌ์‹ค์ƒ ์™œ ๋™์ž‘ํ•˜๋Š” ๊ฑด์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†๋‹ค.

โœ” IntelliJ ์ ์‘

  • ์œ ๋ฃŒ๋ฒ„์ „์„ ์‚ด ์ˆ˜ ์—†๋Š” ์ทจ์ค€์ƒ์€ ์ดํด๋ฆฝ์Šค๋ฅผ ์“ฐ์ง€๋งŒ, ์‹ค๋ฌด์—์„œ๋Š” ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์ฃผ๋กœ ์“ด๋‹ค๋Š” ๋ง์— ์ธํ…”๋ฆฌ์ œ์ด ๋‹จ์ถ•ํ‚ค๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์•Œ์•„๋‘์—ˆ์—ˆ๋‹ค. ์“ฐ๋‹ค๋ณด๋‹ˆ ๋„ˆ๋ฌด ํŽธํ•˜๋‹ค.. import๋„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ธฐ๋ถ„ ํƒ“์ธ์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ƒ๊ธด ๊ฒƒ๋„ ์•„๋ฆ„๋‹ต๋‹ค.

์˜ค๋Š˜์€ ์ด๊ฑธ ํ•˜๋А๋ผ ๋‹ค๋ฅธ ๊ณต๋ถ€๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์—ญ์‹œ ๋ชจ๋“  ์ž‘์—…์€ ์ƒ๊ฐํ•œ ๊ฒƒ๋ณด๋‹ค ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋ฒ•์ด๋‹คโ€ฆ ๊ทธ๋ž˜๋„ ์˜ค๋Š˜ ์•ˆ์— ๋Œ€์ถฉ ๋งˆ๋ฌด๋ฆฌ์ง€์€ ๋“ฏ ํ•ด์„œ ๋‹คํ–‰์ด๋‹ค. ๋„ค์ด๋ฒ„ํด๋ผ์šฐ๋“œํ”Œ๋žซํผ ์„œ๋ฒ„์— ์›น์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•ด์„œ ์ €๊ฑธ ๋Œ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•  ๋“ฏ..

๐Ÿ’Ž ์ƒ์‚ฐ

  • ์ ์‹ฌ ์ €๋… : ๋‹ญ๊ฐ€์Šด์‚ด (๋ถˆ๋‹ญ๋ง›, ์นด๋ ˆ๋ง›) + ๊ณค์•ฝ์”จ์•—ํ˜ธ๋–ก (ํ˜ธ๋–ก์˜ ์–ด๋А ๋ถ€๋ถ„์ด ๊ณค์•ฝ์ธ๊ฑด์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์—ˆ๋‹ค)
  • ๋…์„œ : ๋ฆฌ์–ผ๋ฆฌํ‹ฐ ํŠธ๋žœ์„œํ•‘2 5p ์ •๋„ ์ฝ์Œ.


TIL Share Tweet +1