ν…ŒμŠ€νŠΈ μ½”λ“œλ‘œ μ•„ν‚€ν…μ²˜ & μ»¨λ²€μ…˜ 을 κ²€μ¦ν•΄λ³΄μž

ν…ŒμŠ€νŠΈ μ½”λ“œλ‘œ μ•„ν‚€ν…μ²˜ & μ»¨λ²€μ…˜ 을 κ²€μ¦ν•΄λ³΄μž

1. κ°œμš”λ ˆμ΄μ–΄λ“œ μ•„ν‚€ν…μ²˜, 클린 μ•„ν‚€ν…μ²˜, ν—₯사고날 μ•„ν‚€ν…μ²˜ λ“± λ§Žμ€ μ•„ν‚€ν…μ²˜κ°€ μ‘΄μž¬ν•˜κ³  μ•„ν‚€ν…μ²˜ 없이 κ°œλ°œν•˜λŠ” κ°œλ°œμžλŠ” 거의 μ—†λ‹€.   κ·ΈλŸ°λ° 이처럼 정해진 μ•„ν‚€ν…μ²˜ κ·œμΉ™μ΄ μ‹€μ œ ν”„λ‘œμ νŠΈ 진행 κ³Όμ •μ—μ„œ 잘 μ§€μΌœμ§€λŠ” 것을 μ–΄λ–»κ²Œ 보μž₯ν•  수 μžˆμ„κΉŒ?  κΈ‰ν•˜κ²Œ κ°œλ°œν•˜λŠ” κ³Όμ •μ—μ„œ μ΄λŸ¬ν•œ κ·œμΉ™μ„ μ–΄κΈ°λŠ” μ½”λ“œκ°€ 생겨났을 λ•Œ, κ°œλ°œμžλ“€μ΄ 일일이 이λ₯Ό μž‘μ•„λ‚΄κ³  κ³ μΉ˜λŠ” 것은 κ·Έ 자체둜 λΉ„μš©μ΄λ‹€. κ·Έλ¦¬κ³  μ΄λŸ¬ν•œ κ·œμΉ™μ΄ ν•˜λ‚˜κ°€ μ•„λ‹ˆλΌ μ—¬λŸ¬ 개 μ‘΄μž¬ν•œλ‹€λ©΄ κ°œλ°œμžλ“€μ΄ μ‹€μˆ˜ν•  κ°€λŠ₯성은 훨씬 λ†’μ•„μ§ˆ 것이닀. κ·ΈλŸ¬λ―€λ‘œ κ°œλ°œμžλ“€μ΄ μ΄λŸ¬ν•œ κ·œμΉ™μ— μœ„λ°°λ˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ§€ μ•Šλ„λ‘ κ°•μ œν•  수 μžˆλŠ” μˆ˜λ‹¨μ΄ ν•„μš”ν•˜λ‹€.    μ˜μ‘΄μ„±μ„ κ°•μ œν•˜κΈ° μœ„ν•΄μ„  Spring Multi Module 을 μ‚¬μš©ν•  수 μžˆλ‹€. λ ˆμ΄μ–΄λ³„ ν˜Ήμ€ μ˜μ—­λ³„λ‘œ λͺ¨λ“ˆμ„ 생성..

  • textsms
Spring Security λ™μž‘ 원리, ν”„λ‘œμ„ΈμŠ€ μ΄ν•΄ν•˜κΈ°

Spring Security λ™μž‘ 원리, ν”„λ‘œμ„ΈμŠ€ μ΄ν•΄ν•˜κΈ°

1. Spring Security κ°œμš” Spring SecurityλŠ” μœ„μ™€ 같이 인증뢀터 νŽΈμ˜μ„± μœ ν‹Έλ¦¬ν‹°, μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ•…μš© κ°€λŠ₯ν•œ μ„Έμ…˜ κ³ μ •, ν΄λ¦­μž¬ν‚Ή, 크둜슀 μ‚¬μ΄νŠΈ μš”μ²­ μœ„μ‘°(CSRF) λ“±μ˜ κ³΅κ²©μœΌλ‘œλΆ€ν„° λ³΄ν˜Έν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜κΉŒμ§€ 포괄적인 κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, μ΄λŸ¬ν•œ κΈ°λŠ₯은 λͺ¨λ“ˆμ„ μΆ”κ°€ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆλ‹€. Spring Securityλ₯Ό λ„μž…ν•˜λ©΄ 인증,인가 κΈ°λŠ₯을 ν‘œμ€€ν™” ν•˜κ³  μžλ™ν™”ν•  수 μžˆμ–΄ κ°œλ°œμžκ°€ λ³΄μ•ˆ κ΄€λ ¨ μ½”λ“œλ₯Ό 직접 μž‘μ„±ν•˜μ§€ μ•Šκ³ λ„ 높은 μˆ˜μ€€μ˜ λ³΄μ•ˆ κΈ°λŠ₯을 μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.               2. Spring Security μ£Όμš” μ•„ν‚€ν…μ²˜Spring μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„°μ˜ λͺ¨λ“  HTTP μš”μ²­μ€ Dispatcher Servlet이 κ°€μž₯ λ¨Όμ € μˆ˜μ‹ ν•œλ‹€. μ΄λŠ” μˆ˜μ‹ ν•œ HT..

  • textsms
[Spring Boot] @Transactional의 7가지 μ „νŒŒ 속성, ν…ŒμŠ€νŠΈλ₯Ό ν†΅ν•œ λ‘€λ°± 검증

[Spring Boot] @Transactional의 7가지 μ „νŒŒ 속성, ν…ŒμŠ€νŠΈλ₯Ό ν†΅ν•œ λ‘€λ°± 검증

1. κ°œμš”λ§€μΌ κ°œλ°œν•˜λ©° μ‚¬μš©ν•΄μ˜€λ˜ @Transactional μ–΄λ…Έν…Œμ΄μ…˜μ— λŒ€ν•΄ μ•„λŠ”κ²Œ λ„ˆλ¬΄ μ—†λ‹€κ³  λŠκΌˆλ‹€. μ—¬λŸ¬ μ „νŒŒ μ „λž΅, μ˜΅μ…˜μ΄ μžˆλ‹€λŠ”κ±° μ •λ„λ§Œ μ•Œκ³ μžˆμ—ˆμ§€λ§Œ, 깊게 고렀해보진 μ•Šμ•˜λ˜ 것 κ°™λ‹€.   μ΄μ°Έμ— κ³΅λΆ€ν•˜κ³  μ œλŒ€λ‘œ μ•Œκ³  μ‚¬μš©ν•˜κ³ μž 이 글을 μž‘μ„±ν•œλ‹€.          2. νŠΈλžœμž­μ…˜μ΄λž€?@Transactional 을 μ•Œμ•„λ³΄κΈ° μ•žμ„œ νŠΈλžœμž­μ…˜μ— λŒ€ν•΄ ν•œλ²ˆ 더 짚고 λ„˜μ–΄κ°€μž. νŠΈλžœμž­μ…˜(Transaction)의 사전적 μ˜λ―ΈλŠ” 거래이고,컴퓨터 κ³Όν•™ λΆ„μ•Όμ—μ„œμ˜ νŠΈλžœμž­μ…˜(Transaction)은 "더이상 뢄할이 λΆˆκ°€λŠ₯ν•œ μ—…λ¬΄μ²˜λ¦¬μ˜ λ‹¨μœ„"λ₯Ό μ˜λ―Έν•œλ‹€.  μ΄κ²ƒμ€ ν•˜λ‚˜μ˜ μž‘μ—…μ„ μœ„ν•΄ 더이상 뢄할될 수 μ—†λŠ” λͺ…λ Ήλ“€μ˜ λͺ¨μŒ, 즉, ν•œκΊΌλ²ˆμ— μˆ˜ν–‰λ˜μ–΄μ•Ό ν•  일련의 μ—°μ‚°λͺ¨μŒμ„ μ˜λ―Έν•œλ‹€.    λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 데이..

  • textsms
Spring Security RBAC μ„€μ •, @PreAuthorize 둜 쌈@λ½•ν•˜κ²Œ κ΄€λ¦¬ν•˜κΈ°

Spring Security RBAC μ„€μ •, @PreAuthorize 둜 쌈@λ½•ν•˜κ²Œ κ΄€λ¦¬ν•˜κΈ°

1. κ°œμš”μ§„ν–‰ 쀑인 ν”„λ‘œμ νŠΈμ˜ api κ°œμˆ˜κ°€ μ–΄λŠμƒˆ 90κ°œκ°€ λ‹€λ˜κ°„λ‹€. Spring Securityλ₯Ό μ‚¬μš©ν•˜μ—¬ RBAC(Role-Based Access Control)을 κ΅¬ν˜„ ν•˜κ³ μžˆκ³ , 이 섀정은 Security Configμ—μ„œ κ΄€λ¦¬ν•˜κ³  μžˆλ‹€. μƒˆλ‘œμš΄ μ—”λ“œν¬μΈνŠΈλ₯Ό κ°œλ°œν•  λ•Œλ§ˆλ‹€ 기쑴의 μ„€μ •κ³Ό 잘 λ§€μΉ­λ˜λŠ”μ§€ 확인해야 ν–ˆκ³ , 그렇지 μ•Šλ‹€λ©΄ 좔가적인 섀정이 ν•„μš”ν–ˆλ‹€. μ΄λŸ¬ν•œ κ³Όμ • λ•Œλ¬Έμ— μ§€κΈˆκΉŒμ§€ 개발된 API듀에 RBAC이 μ œλŒ€λ‘œ μ μš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κΈ° μ–΄λ ΅κ³ , λ†“μΉœ 뢀뢄을 μ κ²€ν•˜λŠ” 것도 번거둜운 μž‘μ—…μ΄ ν•„μš”ν–ˆλ‹€.  URL에 prefix둜 ROLE을 μΆ”κ°€ν•˜μ—¬ μΌκ΄„μ μœΌλ‘œ κ΄€λ¦¬ν•˜λŠ” 방법을 κ³ λ €ν•΄ λ³΄μ•˜μ§€λ§Œ, λ³΄μ•ˆμƒ 쒋은 방법이 μ•„λ‹ˆλΌλŠ” ν”Όλ“œλ°±μ„ μ—¬λŸ¬ μ°¨λ‘€ λ°›μ•˜λ‹€.    λ‹€λ₯Έ 방법은 μ—†μ„κΉŒ μ•Œμ•„λ³΄λ‹€, μ–΄λ…Έν…Œμ΄μ…˜μœΌλ‘œμ¨ ..

  • textsms
DB 데이터 μ‚­μ œμ— λŒ€ν•œ κ³ λ―Ό, Soft Delete(논리 μ‚­μ œ) vs Hard Delete(물리 μ‚­μ œ)

DB 데이터 μ‚­μ œμ— λŒ€ν•œ κ³ λ―Ό, Soft Delete(논리 μ‚­μ œ) vs Hard Delete(물리 μ‚­μ œ)

1. κ°œμš”κ°œλ°œμ„ ν•˜λ‹€λ³΄λ©΄ μ–΄λ–€ 데이터가 μ‚­μ œλ˜λ©΄ μ—°κ΄€λœ λ‹€μ–‘ν•œ 데이터듀이 ν•¨κ»˜ μ‚­μ œλ˜μ•Ό ν•˜λŠ” κ²½μš°κ°€ μ’…μ’… λ°œμƒν•œλ‹€.  μ˜ˆλ₯Ό λ“€λ©΄ κ²Œμ‹œκΈ€μ΄ μ‚­μ œλ˜λ©΄ ν•΄λ‹Ή κ²Œμ‹œκΈ€μ— 달린 μ’‹μ•„μš”, λŒ“κΈ€, λ‹΅λ³€ λ“±λ“± μ—°κ΄€λœ 데이터도 ν•¨κ»˜ μ‚­μ œλ˜μ•Ό ν•œλ‹€.   ν•˜μ§€λ§Œ, ν•¨κ»˜ μ‚­μ œλ˜λ©΄ μ•ˆ λ˜λŠ” κ²½μš°λ„ μžˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄, μƒν’ˆ 거래 μ„œλΉ„μŠ€μ—μ„œ 판맀자의 정보λ₯Ό μ‚­μ œν•˜λ©΄ νŒλ§€μžκ°€ 올린 μƒν’ˆμ— λŒ€ν•œ 정보도 μ‚­μ œλ  것이닀. κ·ΈλŸ¬λ‚˜, κ΅¬λ§€μžλŠ” μžμ‹ μ΄ κ΅¬λ§€ν–ˆλ˜ μƒν’ˆμ˜ μ •λ³΄λ‚˜ μ˜μˆ˜μ¦μ„ 확인해야 ν•  ν•„μš”κ°€ μžˆμ„ 수 μžˆλ‹€. λ§Œμ•½ 판맀자 정보와 ν•¨κ»˜ ν•΄λ‹Ή μƒν’ˆ 정보도 μ‚­μ œλœλ‹€λ©΄, κ΅¬λ§€μžλŠ” μžμ‹ μ˜ ꡬ맀 μƒν’ˆμ— λŒ€ν•œ 정보λ₯Ό 확인할 수 μ—†κ²Œ λ˜μ–΄ λΆˆνŽΈμ„ κ²ͺ을 수 μžˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ κ²½μš°μ—λŠ” 판맀자 정보와 μ—°κ΄€λœ 데이터라도, νŠΉμ • μ‘°κ±΄ν•˜μ—μ„œ λ³΄μ‘΄λ˜κ±°λ‚˜ 관리..

  • textsms