๋กœ์ผ“๐Ÿพ
article thumbnail
[Spring] ์Šคํ”„๋ง DI, IoC ์ดํ•ดํ•˜๊ธฐ
... 2021. 1. 2. 14:56

์ž๋™์ฐจ์—์„œ ๋งŒ์•ฝ ์—”์ง„์ด ์˜ค๋ž˜๋˜์„œ ์—”์ง„์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด, ์ž๋™์ž ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์—”์ง„๋งŒ ๋ฝ‘์•„์„œ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š์œผ๋ฉด์„œ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์— ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ์ผ€ ๋„์™€์ค„์ˆ˜ ์žˆ๋„๋ก ๋„์ž…๋œ ๊ธฐ๋Šฅ์ด ๋ฐ”๋กœ DI(Dependency Injection)์™€ IoC(Inversion of Control)์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ง์ ‘ ํด๋ž˜์Šค์— new ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ DI๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฝ”๋”ฉ์„ ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ด๋ฅผ ์ƒ์„ฑ์‹œ์ผœ ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ์ฝ”๋“œ์—์„œ ์ง์ ‘์ ์ธ ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„ ๊ฐ ํด๋ž˜์Šค๋“ค์˜ ๋ณ€๊ฒฝ์ด ์ž์œ ๋กœ์›Œ ์ง‘๋‹ˆ๋‹ค...

article thumbnail
[Java] equals() == ์ฐจ์ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ
... 2020. 12. 31. 18:30

"์ž๋ฐ”๋ฅผ ์ •๋ง ๋ญ๋ž„๊นŒ.. ์œก๊ตฐ์‚ฌ๊ด€ํ•™๊ต ๋‚˜์˜ค๋Š” ์ค‘๋Œ€์žฅ ๊ฐ™์€ ๋Š๋‚Œ์ด๋‹ค.. ์—„์ฒญ ๋Œ€๋‹จํ•˜์ง€๋งŒ ์—„๊ฒฉํ•ด์„œ ์‹ซ๋‹ค๊ณ  ํ•ด์•ผํ• ๊นŒ.. ๋ถ„๋ช… ๋ณด์ด๊ธฐ์—” ๊ฐ™์•„๋ณด์ด์ง€๋งŒ ๋‹ค๋ฅธ๊ฒŒ ๋„ˆ๋ฌด ๋งŽ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๊ฐ€ ๊ด€๋Œ€ํ•œ๊ฒƒ์— ๋น„ํ•ด ์ž๋ฐ”๋Š” ์ƒ๋‹นํžˆ ์—„๊ฒฉํ•˜๋‹ค. ์—„๊ฒฉํ•œ ๊ณณ์—์„œ ์˜ค๋Š” ์žฅ์ ์€ ๋ถ„๋ช…ํ•˜์ง€๋งŒ ๊ทธ๋งŒํผ ๊ฐœ๋ฐœ์ž๋“ค์„ ๊ฐ€๋” ๊ดด๋กญํžŒ๋‹ค." ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—๋Š” ์ €๋ฅผ ์—„์ฒญ๋‚˜๊ฒŒ ๊ดด๋กญํ˜”๋˜ equals() ์™€ == ์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์— ์•ž์„œ ์ดํ•ดํ•˜๋Š”๋ฐ ํฐ ๋„์›€์„ ์ฃผ์‹  ๋ฐ• ๋ณธ๋ถ€์žฅ๋‹˜๊ป˜ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!! l String ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ String์€ int, float, double ๋“ฑ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค๋กœ ํ†ตํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํ˜•๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ์ฒด๋กœ๋„ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํ„ฐ๋Ÿด์„ ์ด์šฉํ•˜์—ฌ String ์ƒ์„ฑ new ์—ฐ์‚ฐ์ž..

article thumbnail
[Java] HashMap ์‚ฌ์šฉํ•˜๊ธฐ
... 2020. 12. 30. 23:04

ํ•ญ์ƒ ๋ณผ๋•Œ๋งˆ๋‹ค ๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ ค์„œ ๊ธ€๋กœ ์จ๋ด…๋‹ˆ๋‹ค. l HashMap HashMap์ด๋ž€ Map ์ธํ„ฐํŽ˜์ด์Šค ์ข…๋ฅ˜๋กœ์จ key์™€ value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฆ„์—์„œ ์•Œ์ˆ˜ ์žˆ๋“ฏ์ด hashing(ํ•ด์‹ฑ)์€ ๋งŽ์˜ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹ฑ์ด๋ž€?? ๋Œ€๋ถ€๋ถ„์˜ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•๋“ค์€ ํƒ์ƒ‰ ํ‚ค๋ฅผ ์ €์žฅ๋œ ํ‚ค ๊ฐ’๊ณผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ํƒ์ƒ‰์„ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹ฑ์€ ํ‚ค ๊ฐ’์— ์ง์ ‘ ์‚ฐ์ˆ ์ ์ธ ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๋“ฏ ํ‚ค ๊ฐ’์˜ ์—ฐ์‚ฐ์— ์˜ํ•ด ์ง์ ‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋ผ ํ•˜๊ณ , ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•ด ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•ด์‹ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. key๋Š” ์ค‘๋ณต๋˜๋ฉด ์•ˆ๋˜์ง€๋งŒ ๋งŒ์•ฝ ์ค‘๋ณต๋œ๋‹ค๋ฉด ์ตœ๊ทผ ke..

article thumbnail
[Java] StringUtils.isEmpty ์‚ฌ์šฉํ•˜๊ธฐ
... 2020. 12. 30. 09:51

์˜ค๋Š˜์˜ ์ž๋ฐ”์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ธ isEmpty์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. isEmpty๋Š” String ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ์ด๋ฏ€๋กœ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  isEmpty๋Š” null์„ ์ฒดํฌํ•ด์ฃผ์ง„ ์•Š์Šต๋‹ˆ๋‹ค. l ์˜ˆ์‹œ package com.ex01; public class test01 { public static void main(String[] args) { String str = "test"; String str2 = "";//๊ณต๋ฐฑ ์—†์Œ String str3 = " ";//๊ณต๋ฐฑ ์žˆ์Œ System.out.println(str.isEmpty());//=>false System.out.println(str2.isEmpty());//=>true System.out.println(str3.isEmpty())..

article thumbnail
[MyBatis] mybatis์—์„œ ๋‹ค์Œ ์‹œํ€€์Šค ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
... 2020. 12. 29. 16:39

SELECT SBJECT_MASTR_SEQ.NEXTVAL FROM DUAL INSERT INTO SBJECT_MASTR (SBJECT_MASTR_SN, SBJECT_NM, SBJECT_CODE, SBJECT_CTGRY, EDC_TRGET, SRCHWRD, USE_YN, CM, REGIST_DT, REGIST_MBER_SEQ) VALUES (#{sn}, #{sbject_nm}, 'ES'||LPAD(#{sn}, 6, 0), #{sbject_ctgry}, #{edc_trget}, #{srchwrd}, #{use_yn}, #{cm}, SYSDATE, #{mber_seq}) ์˜ค๋ผํด ๊ธฐ์ค€์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ์‹œํ€€์Šค ๋‹ค์Œ์˜ ์‹œํ€€์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ใ…ฃSELECT SBJECT_MASTR_SEQ.NEX..

article thumbnail
[Spring] ์„ธ์…˜์„ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„
... 2020. 12. 28. 23:02

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์„ธ์…˜์„ ์ด์šฉํ•ด ๋กœ๊ทธ์ธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ์…˜์ด๋ž€? ์„ธ์…˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ์…˜์€ ์ฟ ํ‚ค์˜ ํ•œ ์ผ์ข…์œผ๋กœ session ์ฟ ํ‚ค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํŽธํ•˜๊ฒŒ ์šฐ๋ฆฌ๋Š” ๊ทธ๋ƒฅ ์„ธ์…˜์ด๋ผ๊ณ  ํ•˜์ฃ . ๊ทธ๋ž˜์„œ ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์•„์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์€๋ฐ ์‚ฌ์‹ค ์„ธ์…˜๋„ ์ฟ ํ‚ค์— ์†ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋Š” session ์ฟ ํ‚ค์™€ persistence ์ฟ ํ‚ค๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  session ์ฟ ํ‚ค๊ฐ€ ์ด๋ฒˆ ๊ธ€์—์„œ ์‚ฌ์šฉํ•  ์ฟ ํ‚ค ์ž…๋‹ˆ๋‹ค. session ์ฟ ํ‚ค๋Š” persistence ์ฟ ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ ํœ˜๋ฐœ์„ฑ์„ ๋œ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ session ์ฟ ํ‚ค๊ฐ€ ์‹ฌ์–ด์ ธ ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด session ์ฟ ํ‚ค๋Š” ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. session ์ฟ ํ‚ค์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ–ˆ๊ณ , ์–ด๋–ป๊ฒŒ ์ด๋ฅผ ์ด์šฉ..

article thumbnail
[JS] ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž
... 2020. 12. 28. 18:33

์ฟ ํ‚ค์— ๋Œ€ํ•ด ์ž์„ธํ•œ๊ฑด ๋‹ค๋ฅธ ๊ธ€์—์„œ ์•Œ์•„๋ณด๊ณ , ์ด ๊ธ€์—์„œ๋Š” ์ฟ ํ‚ค๋ฅผ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Š˜ Persistence ์ฟ ํ‚ค์™€ session ์ฟ ํ‚ค์— ๋Œ€ํ•ด ๋Œ€์ถฉ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ๋งŒ ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ฟ ํ‚ค์— ๋Œ€ํ•ด ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ คํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์˜ ์ฝ”๋“œ๋Š” ์ œ ํšŒ์‚ฌ์˜ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ ํ•˜์˜€๊ธฐ์— ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ๋ฆ„ ํŒŒ์•…ํ•˜๊ธฐ์—๋Š” ์ข‹์ง€๋งŒ, ์ง€๊ธˆ ๋‹น์žฅ ์ฟ ํ‚ค ๊ด€๋ จํ•œ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์‹ ๋ถ„์€ ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. l ์ฟ ํ‚ค๋Š” ์–ด๋””์žˆ์„๊นŒ? ๊ฐœ๋ฐœ์ž ๋„๊ตฌ Application ํƒญ์„ ๊ฐ€๋ณด๋ฉด ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ฟ ํ‚ค์˜ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JSESSIONID๋Š” Session ์ฟ ํ‚ค์— ๊ด€ํ•œ ์ •๋ณด์ด๊ณ , ๊ทธ์™ธ์—๋Š” Persistence ์ฟ ํ‚ค์— ๊ด€ํ•œ ๊ฒƒ์ธ๋ฐ ์—ฌ๊ธฐ์„  Persitence ์ฟ ํ‚ค๋ฅผ ๊ทธ๋ƒฅ ์ฟ ํ‚ค๋ผ๊ณ  ์ง€์นญํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค..

article thumbnail
[JS] ๊ฐœ๋ฐœ์ž๋„๊ตฌ ์ฝ˜์†”์—์„œ response ๊ฐ’ ์ถœ๋ ฅํ•˜๊ธฐ
... 2020. 12. 24. 12:05

์„œ๋ฒ„์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†”์—์„œ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์„ ์„œ๋ฒ„์—์„œ ๋ฐ›์•˜๋‹ค๊ณ  ํ•˜๋ฉด result.data.result๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ถœ๋ ฅ์ด ์—๋Ÿฌ์—†์ด ๋ ๊นŒ์š”?? ๋„ค ๋งž์Šต๋‹ˆ๋‹ค. ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์™œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๊ณ , ์–ด๋–ป๊ฒŒ ์ ‘๊ทผ์„ ํ•˜๋ฉด ๋ ๊นŒ์š”?? ์šฐ์„  ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ์ด์œ ๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด DOM ๊ฐ์ฒด์— result ๊ฐ’์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ใ…ฃ๊ฐ์ฒด์— ๋‹ด์•„์ค˜์•ผ ํ•œ๋‹ค! ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์ฝ˜์†”์—์„œ result.data.result ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ณด๋‚ผ ๋•Œ ํ•œ ์ž„์˜์˜ ๊ฐ์ฒด ์•ˆ์— ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. var aaa = { dummy: null , init: function() { this.addEvent(); } , addEvent: fu..

article thumbnail
[JS]DOM ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ!! ๊ณ ์ฒ™์Šค์นด์ด๋” ์•„๋‹™๋‹ˆ๋‹ค
... 2020. 12. 23. 12:38

์›น ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด๋ผ๋ฉด DOM ์ด๋ผ๋Š” ๋‹จ์–ด ํ•œ๋ฒˆ์ •๋„๋Š” ๋“ค์–ด๋ณด์…จ์„ ๊ฒ๋‹ˆ๋‹ค. ์ € ์—ญ์‹œ DOM์— ๋Œ€ํ•ด ๋งŽ์ด ๋“ค์–ด๋ดค์ง€๋งŒ ์ •ํ™•ํžˆ ๊ทธ๊ฒŒ ๋ฌด์—‡์ธ์ง€๋Š” ์ž˜๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ถ๊ธˆํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๋ฉด ์•ˆ๋˜๊ธฐ์— DOM์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. Aldev๋‹˜, Code Playground๋‹˜, WIT๋ธ”๋กœ๊ทธ์˜ ๊ณ ์šฐ์˜๋‹˜์˜ ์ž๋ฃŒ๋ฅผ ํ† ๋Œ€๋กœ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ํ•˜๋‹จ์— ์ฃผ์†Œ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค. l BOM ๊ณผ DOM ์›น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ๋ฉ๋‹ˆ๋‹ค. ํฌ๋กฌ, ์‚ฌํŒŒ๋ฆฌ, ์ต์Šคํ”Œ๋กœ์–ด ๋“ฑ์ด ๋ฐ”๋กœ ์›น ๋ธŒ๋ผ์šฐ์ € ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” html ์ฝ์–ด๋“ค์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ธŒ๋ผ์šฐ์ €์™€ ๊ด€๋ จ๋œ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์„ ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ ์ฆ‰..

article thumbnail
[JS] jquery๋กœ ํด๋ž˜์Šค๋ช…์ด ๋™์ผํ•œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํƒœ๊ทธ ์ ‘๊ทผํ•˜๊ธฐ
... 2020. 12. 23. 12:23

์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋™์ผํ•œ ํด๋ž˜์Šค์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฅด๊ฒŒ css ์†์„ฑ์„ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์— 2๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š”๋ฐ 2๊ฐœ ๋ชจ๋‘ ๋™์ผํ•œ ํƒœ๊ทธ๋กœ ์ƒ์„ฑ๋œ ๋’ค ๋ฐ์ดํ„ฐ ๊ฐ’๋งŒ ๋‹ค๋ฅด๊ฒŒ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ A ์ด๋ฏธ์ง€ B ๋งŒ์•ฝ class="background" ๋ผ๊ณ  ํ• ๋•Œ $('.background').css("color", "red"); ํ•˜๊ฒŒ ๋˜๋ฉด 2๊ฐœ์˜ ์ด๋ฏธ์ง€ ๋ชจ๋‘ ํฐํŠธ๊ฐ€ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ €๋Š” ์ฒซ๋ฒˆ์งธ ์ด๋ฏธ์ง€์—๋งŒ ๋นจ๊ฐ„์ƒ‰ ํฐํŠธ๋กœ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํƒœ๊ทธ์— ์ ‘๊ทผํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. crud.list.onComplete = function(result) { console.log(result); if(result.result) { var dataList = result.dat..

article thumbnail
[Spring] ์„œ๋ธ”๋ฆฟ์ด๋ž€?
... 2020. 12. 22. 22:31

# ์„œ๋ธ”๋ฆฟ??!! ์„œ๋ธ”๋ฆฟ์€ ์„œ๋ฒ„ ์ชฝ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋™์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋„์™€์ฃผ๋Š” ์ž๋ฐ” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ” ํด๋ž˜์Šค์ด๋ฏ€๋กœ ์ž๋ฐ”์˜ ์ผ๋ฐ˜์ ์ธ ํŠน์ง•์€ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž๋ฐ”์™€ ๋‹ฌ๋ฆฌ ์„œ๋ธ”๋ฆฟ์€ ํ†ฐ์บฃ๊ณผ ๊ฐ™์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๋ฉด ์›น ์„œ๋ฒ„๋Š” ๊ทธ ์š”์ฒญ์„ ํ†ฐ์บฃ๊ณผ ๊ฐ™์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS)์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด WAS ๋Š” ๊ฐ ์š”์ฒญ์— ํ•ด๋‹นํ•˜๋Š” ์„œ๋ธ”๋ฆฟ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์„œ๋ธ”๋ฆฟ์€ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ํด๋ผ์–ธํŠธ์—๊ฒŒ ์‘๋‹ตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์˜ ํŠน์ง• ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋œ๋‹ค. ์ •์ ์ธ ์›น ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. ์ž๋ฐ” ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์˜ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค. ์„œ๋ธ”๋ฆฟ ์ปจ..

article thumbnail
[DB] RDS, NoSQL ๊ทธ๋ฆฌ๊ณ  NewSQL
... 2020. 12. 21. 22:02

๋Œ€๋ถ€๋ถ„ ์‚ฌ๋žŒ๋“ค์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS : DataBase Management System)์„ ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๊ณ  ํ”ํžˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํ†ตํ•ฉํ•ด์„œ ๋งํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •ํ™•ํžˆ ์ด ๋‘˜์˜ ๊ฐœ๋…์€ ์—„์—ฐํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์†Œ์œ„ ์•„๋Š” Mysql ๋‚˜ ์˜ค๋ผํด, ๋ชฝ๊ณ ๋น„๋”” ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ 1960๋…„๋Œ€์— ๊ฐœ๋ฐœ๋˜์–ด ํ˜„์žฌ๊นŒ์ง€๋„ ๊พธ์ค€ํžˆ ์ง„ํ™”๋ฅผ ๊ฑฐ๋“ญํ•˜๊ณ  ๋ฐœ์ „๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋”ฐ๋ผ 4์„ธ๋Œ€๋กœ ๋‚˜๋ˆŒ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1์„ธ๋Œ€์ธ ๋„คํŠธ์›Œํฌ DBMS 2์„ธ๋Œ€์ธ ๊ด€๊ณ„ DBMS 3์„ธ๋Œ€์ธ ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐ์ฒด๊ด€๊ณ„ DBMS 4์„ธ๋Œ€์ธ NoSQL, NewSQL DBMS (๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ..

article thumbnail
[JS] ํ”„๋กœํ† ํƒ€์ž… ์ดํ•ดํ•˜๊ธฐ with ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ
... 2020. 12. 17. 10:24

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” Java, Python ์ฒ˜๋Ÿผ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด(Object-Oriented Programming, OOP)์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ทธ์ € ๋ฐ์ดํ„ฐ์™€ ์ฒ˜๋ฆฌ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜๋ˆ„๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์ˆ˜์˜ "๊ฐ์ฒด"๋กœ ๋งŒ๋“ค๊ณ , ์ด๋“ค์ด ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž๋™์ฐจ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด ์ž๋™์ฐจ์˜ ๋ฐ”ํ€ด, ์—”์ง„, ๋„์–ด ๋“ฑ์„ ๊ฐ์ฒด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ํ”„๋กœํ† ํƒ€์ž…์— ๊ด€ํ•œ ๊ธ€ ์ด๋ฏ€๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋Œ€ํ•ด์„  ์ด ์ •๋„๋งŒ ์•Œ๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” Java์™€๋Š” ๋‹ฌ๋ฆฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(์ดํ•˜ JS)์—๋Š” ํด๋ž˜์Šค๋ผ๋Š” ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  JS์—๋Š” ํ”„๋กœํ† ํƒ€์ž…์ด๋ผ๋Š” ๊ฐœ๋…์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— JS๊ฐ€ ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ECMA6์—์„œ ํด๋ž˜์Šค ๋ฌธ๋ฒ•์ด ..

article thumbnail
[DB] ์ •ํ˜•, ๋ฐ˜์ •ํ˜•, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ
... 2020. 12. 16. 22:41

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ์›์ดˆ์ ์ธ ๋ชฉ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋จผ์ € ์ˆ˜์ง‘ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋Š” ํ˜•ํƒœ์— ๋”ฐ๋ผ ์ •ํ˜• ๋ฐ์ดํ„ฐ, ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ, ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ˜• ๋ฐ์ดํ„ฐ ์ •ํ˜•๋ฐ์ดํ„ฐ(structured data)๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ๋ฏธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ •ํ•˜์—ฌ ์ •ํ•ด์ง„ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ํ”ํžˆ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์ด ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์ •ํ˜•๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ(semi-structured data)๋Š” ์ •ํ˜• ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ์ €์žฅ๋˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์•ˆ์— ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์„ค๋ช…, ์ฆ‰ ๊ตฌ์กฐ๋ฅผ ํŒŒ..

article thumbnail
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ณธ ๊ฐœ๋…
... 2020. 12. 16. 22:13

์šฐ๋ฆฌ๋Š” ํ˜„๋Œ€์‚ฌํšŒ์—์„œ ๋ฐ์ดํ„ฐ์™€ ์ •๋ณด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์‹ค์ œ๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„๋Œ€์‚ฌํšŒ์—์„œ ๋ฐ์ดํ„ฐ์™€ ์ •๋ณด๋ฅผ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ ์ทจ๊ธ‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ์™€ ์ •๋ณด๋ฅผ ๊ฐ™์€ ์˜๋ฏธ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ์™€ ์ •๋ณด๋ฅผ ์—„์—ฐํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‘˜์˜ ์ •์˜๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ๋ฐ์ดํ„ฐ : ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ๋‹จ์ˆœํžˆ ๊ด€์ฐฐํ•˜๊ฑฐ๋‚˜ ์ธก์ •ํ•˜์—ฌ ์ˆ˜์ง‘ํ•œ ์‚ฌ์‹ค์ด๋‚˜ ๊ฐ’ ์ •๋ณด : ๋ฐ์ดํ„ฐ๋ฅผ ์˜์‚ฌ๊ฒฐ์ •์— ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ์กฐ์งํ•œ ๊ฒฐ๊ณผ๋ฌผ ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋น„์œ ํ•˜์ž๋ฉด ๋ฐ์ดํ„ฐ : ๋ชฉ์žฅ์—์„œ ๋ง‰ ์ง  ์šฐ์œ (์›์œ ) ์ •๋ณด : ๋ชฉ์žฅ์—์„œ ์ง  ์šฐ์œ ๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ ํŒฉ์— ๋‹ด์€ ์šฐ์œ  ๋ผ๊ณ  ๋ณผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์šฐ์œ ๋ฅผ ์–ป์œผ๋ ค๋ฉด ํ’ˆ์งˆ ์ข‹์€ ์›์œ ๋ฅผ ํ™•๋ณดํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ๊ฐ€์น˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์–ป์œผ๋ ค๋ฉด ํ˜„์žฌ ์ƒํ™ฉ์„ ์ •ํ™•ํžˆ ๊ด€์ฐฐํ•˜๊ณ  ์ธก์ •ํ•˜์—ฌ ์˜๋ฏธ์žˆ๋Š” ..

article thumbnail
[JS] ๋‚˜๋งŒ์˜ ์ฒ ํ•™์ด ๋‹ด๊ธด ์ฝ”๋“œ๋ž€??
... 2020. 12. 16. 09:40

ํšŒ์‚ฌ์— ์ธํ„ด์œผ๋กœ ์ž…์‚ฌ๋ฅผ ํ•˜๊ณ , ๋Œ€ํ‘œ๋‹˜๊ป˜์„œ ๊ณผ์ œ ํ•˜๋‚˜๋ฅผ ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์˜€์Šต๋‹ˆ๋‹ค. ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๊ตฌํ˜„์„ ํ•˜์˜€๊ณ , ๋Œ€ํ‘œ๋‹˜๊ป˜ ๋ณด์—ฌ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋Šฅ ์ž์ฒด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์ „ํ˜€์—†์—ˆ์œผ๋‚˜.. ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๊ณ ๋Š” ์ด๋Ÿฐ ๋ง์„ ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ์•„์ง๋„ ์ •ํ™•ํžˆ ๊ธฐ์–ต๋‚ฉ๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๋งํˆฌ๊นŒ์ง€๋„ ๊ธฐ์–ต์ด ๋‚ฉ๋‹ˆ๋‹ค. "์ฝ”๋“œ์— ์ฒ ํ•™์ด ๋‹ด๊ฒจ ์žˆ์ง€ ์•Š์•„" โ€ป์ฒ˜์Œ์— ์ œ๊ฐ€ ๊ตฌํ˜„ํ–ˆ๋˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด ๋งํฌ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์–ผํ•๋ณด๋ฉด ๊ฐ€๋…์„ฑ๋„ ์žˆ๊ณ  ๋‚˜๋ฆ„๋Œ€๋กœ ํ•จ์ˆ˜ํ™”๋„ ์‹œ์ผœ์„œ ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ผ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ๊ณ„์‚ฐ๊ธฐ์— ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด์ฃผ๋Š” % ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณ„์‚ฐ ๊ด€๋ จํ•œ ๋กœ์ง์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ ๋‚ด๋ถ€๋ฅผ ๋œฏ์–ด๊ณ ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ณ„์‚ฐ๊ธฐ ๊ด€๋ จ ์ฝ”๋“œ๋„ ๋ณต์žกํ•˜๊ณ  ๊ธธ์ง€ ์•Š์•„์„œ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์ง€๋งŒ ์—ฌ..

article thumbnail
[Node.js] Express-generator ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ
... 2020. 12. 14. 22:10

Express๋Š” ๊ธฐ์กด Node.js ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋งŽ์ด ๋–จ์–ด์ง„๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ์›น ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Express๋Š” http ๋ชจ๋“ˆ์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ฐ์ฒด์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋“ค์„ ๋ถ€์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ ๋ผ์šฐํ„ฐ๋กœ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์‰ฌ์›Œ ์œ ์ง€๋ณด์ˆ˜ ๋˜ํ•œ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. Express ์™ธ์—๋„ koa๋‚˜ hapi ๊ฐ™์€ ์›น ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ์ง€๋งŒ ๋‹ค์Œ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Express๊ฐ€ ์••๋„์ ์œผ๋กœ ์ธ๊ธฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•ญ์ƒ ์ข‹์€๊ฑด ์•„๋‹ˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์€ ๊ฒƒ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ๋ฒ„๊ทธ๊ฐ€ ์ ๊ณ , ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ์œ ์ง€๋ณด์ˆ˜๋„ ํ™œ๋ฐœ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Express-generator๋Š” Express ํ™˜๊ฒฝ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•ด์ฃผ๋Š” npm์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ Node.js ๊ฐœ๋ฐœ์„ ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...

article thumbnail
[Node.js] bcrypt๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ํ•˜๊ธฐ
... 2020. 12. 14. 20:56

bcrypt๋ž€? ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๋ณด์•ˆ์€ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ…์ŠคํŠธ ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ํ•ด์ปค์—๊ฒŒ ๋Œ€๋†“๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๋Š” ๊ฒƒ๊ณผ ๋‹ค๋ฆ„ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™” ํ•˜๋Š” ๊ฒƒ์ด bcrypt ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. bcrypt๋Š” ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋ชจ๋“ˆ๋กœ์จ Salt ๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Salt ๋ผ๋Š” ๊ฐ’๊ณผ ํ•ด์‹œ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ฉ์ณ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ๋งŒ์•ฝ "1234" ๊ฐ™์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ•ด์‹œํ•จ์ˆ˜์— ๋„ฃ์—ˆ์„๋•Œ ํ•ญ์ƒ ๋‹ค๋ฅธ ๊ฐ’์˜ Salt ๊ฐ’๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ•ฉ์ณ์„œ ํ•ด์ปค๋“ค์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ๋Š”๋ฐ ์žˆ์–ด ๋”์šฑ ํž˜๋“ค๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ• npm i bcrypt๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. const bcrypt = require('bcrypt'); ..

profile on loading

Loading...