์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”


1. base64์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•˜๋Š” ์ด์œ 


  • ํšŒ์‚ฌ์—์„œ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋ฅผ ์ด์šฉํ•ด ๊ณต์ง€์‚ฌํ•ญ์„ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
    ํ…์ŠคํŠธ ์—๋””ํ„ฐ์—์„œ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ html ์ฝ”๋“œ๋กœ ๋ฐ›์•„์˜จ ํ›„ DB์— ์ €์žฅ์„ ํ•ด์•ผํ•˜๋Š”๋ฐ
    img ํƒœ๊ทธ์˜ src์— data:image/png;base64๋ผ๋Š” ์ฒ˜์Œ๋ณด๋Š” ๊ธ€์ž๊ฐ€ ์žˆ์—ˆ๋‹ค.
    ๊ทธ๋ž˜์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ base64์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋Š”๋ฐ ๊ทธ ๋‚ด์šฉ์„ ๋‹ค์‹œ ์ •๋ฆฌํ•ด ๊ธฐ๋กํ•˜๋ คํ•œ๋‹ค.

2. ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ์„ ์œ„ํ•œ ์ž๋ฃŒ ์ •๋ฆฌ

  1. ์ปดํ“จํ„ฐ์˜ ์ •๋ณด ํ‘œํ˜„ ๋ฐฉ๋ฒ•
    1. ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 1๋กœ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•จ
    2. ์ „๊ธฐ์‹ ํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉด 1 ์—†์œผ๋ฉด 0
    3. ์ด๋Ÿฌํ•œ 0๊ณผ 1์€ ์ตœ์†Œ๋‹จ์œ„๋กœ bit(๋น„ํŠธ)๋ผ๊ณ  ๋ถ€๋ฆ„
    4. 0๊ณผ 1๋กœ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์–ด์„œ 8๊ฐœ์˜ ๋น„ํŠธ๋ฅผ ํ•˜๋‚˜๋กœ 1byte๋ผ๋Š” ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋จ
    5. ํ•˜๋‚˜์˜ bit๋Š” 0๊ณผ 1 2๊ฐœ์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ bit๊ฐ€ 8๊ฐœ๋ผ๋ฉด 2^8 = 256 ์ด๋ฏ€๋กœ 256๊ฐ€์ง€์˜ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ
  2. ASCII ์ฝ”๋“œ
    1. ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ ๋“ฑ์žฅํ•œ ์ด์œ ๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ byte๋กœ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์ปดํ“จํ„ฐA๋Š” a๋ฅผ 65๋กœ ์ปดํ“จํ„ฐB๋Š” a๋ฅผ 1๋กœ ํ‘œํ˜„ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ์ปดํ“จํ„ฐA๊ฐ€ ์ปดํ“จํ„ฐB์—๊ฒŒ a๋ฅผ ๋ณด๋‚ด๊ธฐ์œ„ํ•ด 1byte๋‹จ์œ„๋กœ 65๋ผ๋Š” ์ˆซ์ž(8๊ฐœ์˜ ๋น„ํŠธ ์กฐํ•ฉ์˜ ์ด์ง„์ˆ˜๋กœ)๋ฅผ ๋ณด๋ƒˆ์„ ๋•Œ ์ปดํ“จํ„ฐB๋Š” 65๊ฐ€ a๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ •๋ณด ์ „๋‹ฌ์— ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํ“จํ„ฐ(์ „์ž๊ธฐ๊ธฐ)๋ผ๋ฆฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด 1byte๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์˜๋ฌธ์ž์™€ ์ˆซ์ž์˜ ์ˆœ์„œ๋ฅผ ์ •ํ•  ํ•„์š”๋ฅผ ๋А๊ปด ๊ตญ์ œํ‘œ์ค€์ธ ASCII CODE๋ฅผ ๋งŒ๋“ ๊ฒƒ์ด๋‹ค. ASCII CODE๋Š” ๋ฏธ๊ตญ ANSI์—์„œ ํ‘œ์ค€ํ™”ํ•œ ์ •๋ณด๊ตํ™˜์šฉ 7๋น„ํŠธ ๋ถ€ํ˜ธ์ฒด๊ณ„๋กœ โ€˜American Standard Code For Infomation Interchangeโ€™์˜ ์•ฝ์ž์ด๋‹ค. ์ฆ‰, โ€˜์ •๋ณด๊ตํ™˜์„ ์œ„ํ•œ ๋ฏธ๊ตญ ํ‘œ์ค€ ์ฝ”๋“œโ€™๋ผ๋Š” ๋œป์ด๋‹ค.
  3. base64์— ๋Œ€ํ•œ ์„ค๋ช…
  4. java base64๋กœ ์ด๋ฏธ์ง€ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•