๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ ˆ๊ฑฐ์‹œ

2022.1.18์˜ ๊ธฐ๋ก

by GroovyArea 2022. 1. 18.

โ–ถ ๋‚˜๋Š” ์–ด๋–ค ์‚ฌ๋žŒ(๋ชฉํ‘œ)์ด ๋˜๊ณ  ์‹ถ์€๊ฐ€ 

> ์—ฌ์œ ๋กœ์šด ์‚ฌ๋žŒ (์ •์‹ ์ , ๋ฌผ์งˆ์ ์œผ๋กœ)์ด ๋˜๊ณ  ์‹ถ๋‹ค.


โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ

 

=> ์„ธ๋ฏธํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) ์ˆ˜์šœ๊นŒ์ง€ ๋ฐฐ์†ก, ์ฃผ๋ฌธ, ๊ด€๋ จ ํ…Œ์ด๋ธ” ์ •๋ฆฌํ•ด์˜ค๊ฒŒ ์‹œํ‚ค๊ธฐ

2) ํฌ๋กค๋ง ํŒŒ์ผ ์ •๋ฆฌ ๋ชจ์ž„

 

=> ๊ณต๋ถ€ ๊ด€๋ จ

1) ํ™•์‹คํžˆ ๋ณต์Šต(์ˆ˜์ •ํ•˜์—ฌ ์•ˆ ๋ณด๊ณ  ๋งŒ๋“ค์–ด๋ณด๊ธฐ)

 

=> ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) ๋‚จ๊ถ์„ฑ ๊ฐ•์‚ฌ ํŒŒ์ด๋„ ์˜์ƒ 1๊ฐœ ๋ณด๋ฉฐ ๋…ธ์…˜์— ์ •๋ฆฌํ•˜๊ธฐ (์‹œ๊ฐ„๋˜๋ฉด ํ•˜์ž)


โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ

 

JSP

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” DB์—ฐ๋™์ด ์•ˆ๋จ
  • Ajax ๋ฐฉ์‹์„ ์ด์šฉํ•˜๋ฉด DB์—ฐ๋™์ด ๊ฐ€๋Šฅํ•ด์ง

 

์‚ฌ์ดํŠธ (site)

  • forward ๋กœ ์Šค๋ ˆ๋“œ๊ฐ€ ์ด๋™๋œ ์›น ๋ฌธ์„œ๋Š” request, response ๋‚ด์žฅ ๊ฐ์ฒด ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ location ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์•”ํ˜ธํ™”์ฒ˜๋ฆฌ ํ•ด์•ผํ•จ.
  • form ํƒœ๊ทธ์— action ์†์„ฑ์ด ์ƒ๋žต๋œ ๊ฒฝ์šฐ ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ € URL ์ฃผ์†Œ์˜ ์›นํ”„๋กœ๊ทธ๋žจ ์žฌ์š”์ฒญ
  • form ํƒœ๊ทธ์— method ์†์„ฑ์ด ์ƒ๋žต๋œ ๊ฒฝ์šฐ GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ
  • opener ๊ฐ์ฒด : ๋ถ€๋ชจ์ฐฝ์„ ํ‘œํ˜„ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด
  • CSV(์˜์–ด: comma-separated values)๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•„๋“œ๋ฅผ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋ฐ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‹ค. ํ™•์žฅ์ž๋Š” . csv์ด๋ฉฐ MIME ํ˜•์‹์€ text/csv์ด๋‹ค. comma-separated variables๋ผ๊ณ ๋„ ํ•œ๋‹ค. ⇒ ๊ณต๊ณต ๋ฐ์ดํƒ€๋Š” CSV ํŒŒ์ผ๋กœ ๋ฐ›์Œ (SQL Developer์—์„œ ์‰ฝ๊ฒŒ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๊ฐ€๋Šฅ)
  • ์—‘์…€ํŒŒ์ผ๋กœ ํƒœ๊ทธ๋ฅผ ํ†ตํ•ด ์‚ฝ์ž… ๊ฐ€๋Šฅํ•จ.

์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ

  • MessageDigest : ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํด๋ž˜์Šค
  • MessageDigest.getInstance(String algorithm) : ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ €์žฅํ•œ MessageDigest ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • ⇒ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ž˜๋ชป๋œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ „๋‹ฌ๋  ๊ฒฝ์šฐ NoSuchAlgorithmException ๋ฐœ์ƒ
  • ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋‹จ๋ฐฉํ–ฅ) : MDS, SHA-1, SHA-256(๊ถŒ์žฅ), SHA-512 ๋“ฑ
  • ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜(์Œ๋ฐฉํ–ฅ) : AES-123, RSA ๋“ฑ
  • MessageDigest.update(byte[] input) : MessageDigest ์ธ์Šคํ„ด์Šค์— ์•”ํ˜ธํ™” ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์ž์—ด์„ byte ๋ฐฐ์—ด๋กœ ์ „๋‹ฌ๋ฐ›์•„ ์ €์žฅํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • String.getBytes() : String ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๋ฌธ์ž์—ด์„ byte ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • MessageDigest.digest() : MessageDigest ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”์ฒ˜๋ฆฌํ•˜์—ฌ byte ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • Pattern ํด๋ž˜์Šค : ์ •๊ทœํ‘œํ˜„์‹์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค
  • Pattern.compile(String regEx) : ์ •๊ทœํ‘œํ˜„์‹์ด ์ €์žฅ๋œ Pattern ์ธ์Šคํ„ด์Šฌ๋ฅด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • Pattern.CASE_INSENSITIVE : ์ •๊ทœํ‘œํ˜„์‹์—์„œ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜๋Š” ์ƒ์ˆ˜
  • Pattern.matcher(String source) : ์ •๊ทœํ‘œํ˜„์‹๊ณผ ๋น„๊ต๊ฐ’์ด ์ €์žฅ๋œ Matcher ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”
  • Matcher.replaceAll(String replacement) : Matcher ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๋น„๊ต๊ฐ’์— ์ •๊ทœํ‘œํ˜„์‹์˜ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ฐพ์•„ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ
  • aํƒœ๊ทธ๋Š” ํ”„๋กœ๊ทธ๋žจ ์š”์ฒญ์ธ๋ฐ ํ•จ์ˆ˜์ด๋ฏ€๋กœ javascript๋ผ๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ํ•จ

 

 

โ–ถ ์„ธ๋ฏธ ํŒ€ํ”„๋กœ์ ํŠธ

> 19:00 ๋””์ฝ” ํšŒ์˜ ์˜ˆ์ • (30~1์‹œ๊ฐ„) ์ˆ˜์—… ๋๋‚˜์ž๋งˆ์ž ํ•ด์•ผ๊ฒŸ๋‹ค

์–ด์ œ ํ”ผ๋“œ๋ฐฑ ๋ฐ›์€ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ” 1์ฐจ ๊ฐœ์ธ ์ˆ˜์ •์•ˆ


โ–ถ ์Šคํ„ฐ๋”” ๋‚ด์šฉ&๊ฒฐ๊ณผ

> csv ํŒŒ์ผ ๋ฐ์ดํ„ฐ ์ž„ํฌํŠธ ๋ฐฉ๋ฒ•

๋ฐ˜์‘ํ˜•

'๋ ˆ๊ฑฐ์‹œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2022.1.21์˜ ๊ธฐ๋ก  (0) 2022.01.21
2022.1.19์˜ ๊ธฐ๋ก  (0) 2022.01.19
2022.1.17์˜ ๊ธฐ๋ก  (0) 2022.01.17
2022.1.14์˜ ๊ธฐ๋ก  (0) 2022.01.14
2022.1.13์˜ ๊ธฐ๋ก  (0) 2022.01.13