λ‘œμΌ“πŸΎ
article thumbnail
[Java] null κ³Ό "" μ°¨μ΄λŠ” 뭘까?
... 2021. 1. 7. 16:57

l null null은 μ–΄λ– ν•œ κ°’μœΌλ‘œλ„ μ΄ˆκΈ°ν™” λ˜μ§€ μ•ŠλŠ” κ°’μž…λ‹ˆλ‹€. νž™ λ©”λͺ¨λ¦¬μ— μ˜μ—­μ΄ μ‘΄μž¬ν•˜μ§€λ„ μ•Šμ£ . λ§Œμ•½ String str = null; 이런 μ‹μœΌλ‘œ μ„ μ–Έν•΄μ€€λ‹€λ©΄ λ‚˜μ€‘μ— μ‚¬μš©ν•˜κ² λ‹€ μ˜ˆκ³ ν•œ μƒνƒœμ΄μ§€ μ‘΄μž¬ν•˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. μ‚¬μ§„μ²˜λŸΌ νœ΄μ§€κ½‰λ„ μ—†λŠ” μƒνƒœμ΄μ£ . l "" ""은 ν•˜λ‚˜μ˜ Stringμž…λ‹ˆλ‹€. "str", "strstrstrstr"와 같은 κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ μžˆλŠ” μƒνƒœμž…λ‹ˆλ‹€. μœ„ μ‚¬μ§„μ—μ„œ 0이 ""와 κ°™λ‹€κ³  μƒκ°ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€. null κ³Ό λ‹€λ₯΄κ²Œ νœ΄μ§€κ½‰μ€ μžˆμŠ΅λ‹ˆλ‹€. l μš”μ•½ null : μ‚¬μš©ν•˜κ² λ‹€ μ˜ˆκ³ ν•œ μƒνƒœ "" : 이미 μ‚¬μš©ν•œ μƒνƒœ μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. μ§ˆλ¬Έμ€ μ–Έμ œλ‚˜ ν™˜μ˜ν•©λ‹ˆλ‹€. "λ‚œ λ°˜λ“œμ‹œ λ°±μ—”λ“œ 왕이 될거야"

article thumbnail
[JS] javascript:void(0) μ‚¬μš©ν•˜λŠ” 이유
... 2021. 1. 7. 16:50

κ°œλ°œμ„ ν•˜μ‹  뢄이라면 κ°„ν˜Ή href="javascript:void(0)"λ₯Ό 보신적이 μžˆμ„ κ²λ‹ˆλ‹€. μ΄λ ‡κ²Œ 말이죠 링크 내뢀링크가 μœ„μΉ˜ν•œ a νƒœκ·Έμ˜ μ†μ„±μœΌλ‘œ 자주 λ³΄μ‹€μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. 개발자 도ꡬ에 찍어보면 undefinedκ°€ 좜λ ₯λ˜λŠ” 것을 λ³΄μ‹€μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. 그럼 λ„λŒ€μ²΄ 이 ν•¨μˆ˜λŠ” μ–΄λ””μ„œ μ‚¬μš©ν•˜λŠ” κ²ƒμΌκΉŒμš”? l void(0)을 μ‚¬μš©ν•˜λŠ” 이유 쉽고 짧게 λ§ν•˜λ©΄ a νƒœκ·Έ 경우 λ‚΄λΆ€ 링크가 κ±Έλ €μžˆλŠ”λ° 이 링크가 μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜μ§€ μ•Šκ²Œλ” ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€. λ§Œμ•½ a νƒœκ·Έμ— 내뢀링크가 κ±Έλ € μžˆλŠ”λ° a νƒœκ·Έμ—μ„œ onclick 속성을 λΆ€μ—¬ν•˜κ³  싢을 λ•Œ λ‚΄λΆ€ 링크λ₯Ό λ™μž‘ν•˜μ§€ μ•Šκ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. href="" 이런 μ‹μœΌλ‘œ uriλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄ λœλ‹€ 생각 ν•˜μ‹€μˆ˜λ„ μžˆμ§€λ§Œ λ§Œμ•½ μ €λ ‡κ²Œ ν•  경우 μ΅œμƒμœ„ 링크λ₯Ό μ΄λ™ν•˜κ²Œ λ©λ‹ˆ..

article thumbnail
[MyBatis] MyBatis μ‹œμž‘ν•˜κΈ°
... 2021. 1. 6. 22:30

λ§ˆμ΄λ°”ν‹°μŠ€λŠ” μŠ€ν”„λ§μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€ 연동을 λ„μ™€μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. κΈ°μ‘΄μ—λŠ” JDBC 연동 과정도 λ³΅μž‘ν•˜κ³  SQL문이 μ½”λ“œλ‚΄μ— μ„žμ—¬ μ½”λ“œκ°€ μƒλ‹Ήνžˆ λ³΅μž‘ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 늘 κ·Έλ ‡λ“― ν”„λ ˆμž„μ›Œν¬λŠ” 편의λ₯Ό μœ„ν•΄ λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. λ§ˆμ΄λ°”ν‹°μŠ€λ„ κ²°κ΅­ κ°œλ°œμžλ“€μ˜ νŽΈμ˜μ„±μ„ μœ„ν•˜μ—¬ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. λ§ˆμ΄λ°”ν‹°μŠ€μ˜ νŠΉμ§• sql μ‹€ν–‰ κ²°κ³Όλ₯Ό Map 객체에 λ§€ν•‘ν•΄μ€λ‹ˆλ‹€. sql을 μ†ŒμŠ€ μ½”λ“œκ°€ μ•„λ‹Œ XML둜 λΆ„λ¦¬ν•˜μ—¬ μž‘μ„±ν•©λ‹ˆλ‹€. λ°μ΄ν„°μ†ŒμŠ€ κΈ°λŠ₯κ³Ό νŠΈλžœμž­μ…˜ 처리 κΈ°λŠ₯을 μ œκ³΅ν•΄μ€λ‹ˆλ‹€. 그럼 κ°„λ‹¨νžˆ λ§ˆμ΄λ°”ν‹°μŠ€λ₯Ό μœ„ν•œ κ°œλ°œν™˜κ²½μ„ κ΅¬μΆ•ν•œ ν›„ κ°„λ‹¨ν•œ sql문을 μ‹€ν–‰ν•˜μ—¬ 결과값을 jsp에 κ°€μ Έμ™€λ³΄κ² μŠ΅λ‹ˆλ‹€. DBMSλŠ” μ˜€λΌν΄μ„ μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. l λ§ˆμ΄λ°”ν‹°μŠ€ 섀정을 μœ„ν•œ xml νŒŒμΌλ“€ SqlMapConfig.xml 을 μ΄μš©ν•˜μ—¬ λ§ˆμ΄λ°”ν‹°μŠ€ 섀정을 ν•΄μ€λ‹ˆλ‹€..

article thumbnail
[Spring] 관점 지ν–₯ ν”„λ‘œκ·Έλž¨(AOP) μ΄ν•΄ν•˜κΈ°
... 2021. 1. 3. 22:28

μŠ€ν”„λ§μ˜ νŠΉμ§•μ„ 5κ°€μ§€λ‘œ λ‚˜λˆˆλ‹€λ©΄ λ‹€μŒκ³Ό 같이 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. κ²½λŸ‰ μ»¨ν…Œμ΄λ„ˆ DI(Dependency Injection, μ˜μ‘΄μ„± μ£Όμž…) IoC(μ œμ–΄μ˜ 역흐름, Inversion of Control) AOP(관점지ν–₯ν”„λ‘œκ·Έλž˜λ°, Aspect oriented Programming) POJO λ°©μ‹μ˜ ν”„λ ˆμž„μ›Œν¬ κ·Έ 쀑 이번 κΈ€μ—μ„œλŠ” AOP(관점지ν–₯ν”„λ‘œκ·Έλž˜λ°)에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€. l AOPλŠ” μ™œ ν•„μš”ν• κΉŒ? μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€λ‹€ 보면 해킹을 λŒ€λΉ„ν•˜κΈ° μœ„ν•œ λ³΄μ•ˆ κΈ°λŠ₯, μ‚¬μš©μžμ˜ 접속 내역을 μœ„ν•œ λ‘œκΉ… κΈ°λŠ₯ 그외에 νŠΈλžœμž­μ…˜, 이메일 λ°œμ†‘ κΈ°λŠ₯ λ“± μˆ˜λ§Žμ€ κΈ°λŠ₯듀이 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ“€μ˜ 곡톡점은 λ¬΄μ—‡μΌκΉŒμš”? λͺ¨λ‘ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ꡬ좕할 λ•Œ κ³΅ν†΅μ μœΌλ‘œ ν•„μš”ν•œ κΈ°λŠ₯λ“€ μž…λ‹ˆλ‹€. 그리고 λŒ€λΆ€λΆ„μ˜ ν΄λž˜μŠ€λ“€μ΄ μ΄λŸ¬ν•œ κΈ°λŠ₯..

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...