TILπŸ”₯

였늘 μŠ€ν”„λ§ μˆ™λ ¨μ£Όμ°¨ μ™„λ£Œ πŸ™ μ‹€μŠ΅ μ§„ν–‰ν•˜λ©΄μ„œ λ‚˜λŠ” Entity λ₯Ό μƒμ„±μžλ₯Ό λ§Œλ“€λŠ” 것을 λ³„λ‘œ μ„ ν˜Έν•˜μ§€ μ•Šκ³ , @Builder νŒ¨ν„΄μ„ μƒμ„±ν•˜λŠ” 것을 κ°€μž₯ 쒋아함! πŸ”₯ 그리고 RequestDto μ—μ„œ toEntity(), ResponseDto μ—μ„œ of() 둜 Entity -> dto, dto -> Entity λ₯Ό ν•΄μ€€λ‹€! public static ProductResponseDto of(Product product) { return ProductResponseDto.builder() .id(product.getId()) .title(product.getTitle()) .link(product.getLink()) .image(product.getImage()) .lprice(product.getLprice(..
ν”„λ‘œμ νŠΈ S.A μž‘μ„±μ— λŒ€ν•΄ νŠœν„°λ‹˜μ΄ ν”Όλ“œλ°±μ„ ν•΄μ£Όμ…¨λ‹€ https://hyeyun.tistory.com/entry/231121-TIL 23.11.21 TIL μŠ€ν”„λ§ νŒ€ ν”„λ‘œμ νŠΈ μ‹œμž‘ μ˜€λŠ˜μ€ 주제 μ •ν•˜κΈ°μ™€ S.W μž‘μ„± ν”„λ‘œμ νŠΈ λͺ… : 좜발 λΉ„λ””μ˜€ μ—¬ν–‰ ν”„λ‘œμ νŠΈ μ†Œκ°œ : μ˜ν™” μ†Œκ°œ λ‰΄μŠ€ν”Όλ“œ ν•„μˆ˜ μš”κ΅¬ κΈ°λŠ₯을 λ¨Όμ € κ΅¬ν˜„ν•œ ν›„, μΆ”κ°€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 것을 λͺ©ν‘œ hyeyun.tistory.com 이전 TIL 에도 μ˜¬λ ΈλŠ”λ°, API λͺ…μ„Έμ„œμ—μ„œ μˆ˜μ •ν•  뢀뢄을 많이 μ•Œλ €μ£Όμ…¨λ‹€. μž‘μ„±ν•  λ‹Ήμ‹œ Restful ν•˜κ²Œ μž‘μ„±ν•œλ‹€κ³  λ‚˜λ¦„ κ³ μ‹¬ν–ˆλŠ”λ°, λ‚΄κ°€ μƒκ°ν–ˆλ˜ 것이 μ•½κ°„ 잘λͺ»λœ λ°©ν–₯μ΄μ—ˆλ˜κ²ƒ! ν”„λ‘œν•„ 쑰회 APIλ₯Ό GET /api/profile μ΄λ ‡κ²Œ μž‘μ„±ν–ˆλŠ”λ°, νŠœν„°λ‹˜κ»˜μ„œ λ©”μ„œλ“œμ™€ URL λ§ŒμœΌλ‘œλŠ” κΈ°λŠ₯을 μ•ŒκΈ° μ–΄λ ΅λ‹€κ³  ν•˜μ…¨λ‹€...
μ˜€λŠ˜μ€ λ§ˆμ΄νŽ˜μ΄μ§€, ν”„λ‘œν•„ μˆ˜μ •, λΉ„λ°€λ²ˆν˜Έ μˆ˜μ • νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ–΄λ”° μˆ˜μ •ν•  λΉ„λ°€λ²ˆν˜Έ, ν”„λ‘œν•„ μš”μ²­ DTO @Data public class PasswordRequestDto { // TODO: 11/21/23 νšŒμ› κ°€μž…κ³Ό λΉ„λ°€λ²ˆν˜Έ μ œμ•½μ‘°κ±΄ λ™μΌν•˜κ²Œ μ„€μ •ν•΄μ£ΌκΈ° @NotBlank private String password; @NotBlank private String passwordConfirmation; }@Data public class ProfileRequestDto { @NotBlank @Pattern(regexp = "^[κ°€-힣]{2,5}", message = "ν•œκΈ€λ§Œ μ‚¬μš©ν•˜μ—¬ 2-5자둜 μž‘μ„±ν•΄μ£Όμ„Έμš”.") private String name; @NotBlank private String introdu..
μŠ€ν”„λ§ νŒ€ ν”„λ‘œμ νŠΈ μ‹œμž‘ μ˜€λŠ˜μ€ 주제 μ •ν•˜κΈ°μ™€ S.W μž‘μ„± ν”„λ‘œμ νŠΈ λͺ… : 좜발 λΉ„λ””μ˜€ μ—¬ν–‰ ν”„λ‘œμ νŠΈ μ†Œκ°œ : μ˜ν™” μ†Œκ°œ λ‰΄μŠ€ν”Όλ“œ ν•„μˆ˜ μš”κ΅¬ κΈ°λŠ₯을 λ¨Όμ € κ΅¬ν˜„ν•œ ν›„, μΆ”κ°€ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ μž‘μ•˜λ‹€! 기본을 μΆ©μ‹€νžˆ!!πŸ”₯ 1차둜 μ •ν•œ κΈ°λŠ₯은 νšŒμ›κ°€μž…/둜그인 ν”„λ‘œν•„ μˆ˜μ • -> λΉ„λ°€λ²ˆν˜Έ, μžκΈ°μ†Œκ°œ κ²Œμ‹œκΈ€ μž‘μ„±/μˆ˜μ •/μ‚­μ œ λ©”μΈνŽ˜μ΄μ§€, ν”„λ‘œν•„ νŽ˜μ΄μ§€, κ²Œμ‹œκΈ€ 상세 νŽ˜μ΄μ§€ API λͺ…μ„Έμ„œ μ™€μ΄μ–΄ν”„λ ˆμž„ 우리 νŒ€μ›λ“€μ€ λ‹€λ“€ μ²œμƒ λ°±μ—”λ“œ 개발자 γ…ŽπŸ˜… ERD λ ˆν¬μ§€ν† λ¦¬λ„ μƒμ„±ν•˜κ³  κΈ°λ³Έ ν”„λ‘œμ νŠΈ 생성! Git Branch μ •λ¦¬ν•˜κ³ , κΈ°λ³Έ Entity 도 μΆ”κ°€ν–ˆλ‹€. https://github.com/kimhyeyun/movie-news-feed GitHub - kimhyeyun/movie-news-feed: νŒ€2 좜발..
μŠ€ν”„λ§ μˆ™λ ¨ 3μ£Όμ°¨ μ™„κ°•! κ°•μ˜ 진행 쀑 @EnableGlobalMethodSecurity(securedEnabled = true) μ–΄λ…Έν…Œμ΄μ…˜ μ‚¬μš©μ΄ μžˆμ—ˆλ‹€. 그런데 deprecated λλ‹€λŠ” μ•Œλ¦Ό! 이 μ–΄λ…Έν…Œμ΄μ…˜μ€ 컨트둀러 λ‚΄μ˜ url은 νŠΉμ • κΆŒν•œ 섀정을 ν•΄μ£ΌλŠ” @Secured(κΆŒν•œ 이름) μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€. λŒ€μ‹  @EnableMethodSecurity(securedEnabled = true) 을 μ‚¬μš©ν•΄μ£Όλ©΄ λœλ‹€! μ§„ν–‰ν•˜λ©΄μ„œ μ½”λ“œλ₯Ό λΆ„λͺ… 잘 μž…λ ₯ν–ˆλŠ”λ°, 둜그인 μ‹œμ— μΈμ¦ν•˜λŠ” λΆ€λΆ„μ—μ„œ 성곡 λ©”μ„œλ“œλ‘œ μž˜λ“€μ–΄κ°€λŠ”λ°, 토큰 κ²€μ¦ν•˜λŠ” λΆ€λΆ„μ—μ„œ, μœ νš¨ν•˜μ§€ μ•Šμ€ JWT μ„œλͺ…이라며 μ˜ˆμ™Έμ²˜λ¦¬κ°€ λ˜μ—ˆλ”°....... μ™œ κ·ΈλŸ¬μ§€.... ν•˜λ‹€ν•˜λ‹€ 토큰 μŠ€νŠΈλ§μ—μ„œ μ•ž BEARER_PREFIXλ₯Ό ..
μ–΄μ œ μ•Œκ³ λ¦¬μ¦˜ 문제λ₯Ό 풀지λͺ»ν–ˆλ‹€... ν•˜λ£¨μ— 2문제 ν‘ΈλŠ”κ²Œ κ³„νšμΈλ°γ… γ… γ… γ… γ…  κ·Έλž˜μ„œ μ˜€λŠ˜μ€ 4문제!!! ν’€μ–΄λ”°~! μš”μ¦˜ λ¬Όμ£ΌκΈ° μ‹œνŠΈμ§€ λ³΄λŠ” μž¬λ―Έμ— ν‘Ή~ κ½€λ‚˜ 성취감이 λŠκ»΄μ§€λŠ” 방식!!!! 그리고 μ˜€λŠ˜λ„ λ©΄μ ‘ μ€€λΉ„κ°€ 거의 λ‹€ 차지...γ…  κ²°κ΅­ μ–΄μ œ 닀짐 였늘 λͺ»μ§€ν‚΄ μ–΄μ œ ν•œ 닀짐 μ˜€λŠ˜λ„ ! 내일은 μ „λΆ€ λ‹€ ν•˜μž λ„ˆλ¬΄ ν•˜λ‚˜μ—λ§Œ λͺ°λ‘ν•˜λŠ” 것도 쒋지 μ•Šλ‹€
μ˜€λŠ˜μ€ 9μ‹œκΉŒμ§€ μΌμ–΄λ‚˜κΈ° μ‹€νŒ¨ν–ˆλ‹€... μ–΄μ œ, 였늘 λ‹€ λ§€λ‹ˆμ €λ‹˜κ»˜ μ „ν™”λ°›μ•˜λ”°... 😴 Spring security, JWTλ₯Ό μ΄μš©ν•œ νšŒμ›κ°€μž…/둜그인, Validation 에 λŒ€ν•΄ ν•™μŠ΅ν–ˆλ‹€. μ½”λ“œλ₯Ό 짜고, κΈ°λŠ₯을 κ΅¬ν˜„ν•¨μ— μžˆμ–΄μ„œ 큰 λ¬Έμ œλŠ” μ—†μ§€λ§Œ, 아직 이둠에 μ•½ν•˜λ‹€λŠ” 것을 더 λŠκΌˆλ‹€.... 내일 1μ£Όμ°¨ 과제λ₯Ό μ§„ν–‰ν•˜κΈ° 전에 ν•œ λ²ˆλ” λ“£κ³  μ •λ¦¬ν•œ 후에 과제λ₯Ό 진행해야겠당..... 사싀 μš”μ¦˜ λ©΄μ ‘ μ€€λΉ„λ₯Ό ν•˜λŠ”λΌ λ„ˆλ¬΄ 정신이 μ—†λ‹€..... κ·Έλž˜μ„œ λ­”κ°€ 내배캠에 λ„ˆλ¬΄ 신경을 λͺ»μ“΄ λŠλ‚Œ μ΄λž˜μ„œλŠ” μ•ˆλœλ‹€. λ‹€μ‹œ μ΄ˆμ‹¬μ„ μ°Ύκ³ ,!!!!!!!!!!! μ‹œκ°„μ„ μ •ν™•νžˆ μ •ν•˜κ³ ! λ”΄ μ§“ν•˜μ§€ μ•Šκ³ ! κ³„νš λΉ‘! μ„Έμ›Œμ„œ 두 마리, μ„Έ 마리 토끼 λ‹€ λ¨ΉλŠ”λ‹€!!!🐰🐰🐰🐰🐰🐰🐰🐰🐰
μŠ€ν”„λ§ μˆ™λ ¨ μ£Όμ°¨ κ°•μ˜ μ‹œμž‘! 빈 μˆ˜λ™ 등둝 방법, λ™μΌν•œ νƒ€μž…μ˜ 빈이 μ—¬λŸ¬ 개일 경우, 인증과 μΈκ°€λž€μ— λŒ€ν•΄ κ°•μ˜λ₯Ό λ“€μ—ˆλ‹€. 거의 λΉˆμ„ @Component μ• λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•΄μ„œ μžλ™ μŠ€μΊ”μ„ 톡해 μ‚¬μš©ν–ˆκΈ° λ•Œλ¬Έμ— , μˆ˜λ™μœΌλ‘œ λ“±λ‘ν•˜λŠ” 방법에 λŒ€ν•΄ μ‹€μŠ΅μ„ ν•΄λ³Έ 것은 거의 μ²˜μŒμ΄μ—ˆλ‹€ 'νŽΈν•œ μžλ™ 등둝이 μžˆλŠ”λ° μ™œ μˆ˜λ™μ„ μ‚¬μš©ν•˜μ§€..?' ν–ˆλŠ”λ° 곡톡 λ‘œμ§μ΄λ‚˜ μ—λŸ¬ μ‹œ μ°ΎκΈ° 쉽도둝 μˆ˜λ™ 등둝을 ν•œλ‹€λŠ” 것을 μ•Œμ•˜λ‹€. 그리고 λ™μΌν•œ νƒ€μž…μ˜ λΉˆμ— λŒ€ν•΄ λ§Œλ“€μ–΄ 본적이 μ—†μ–΄μ„œ, @Qualifier, @Primary 에 λŒ€ν•΄μ„œλŠ” λͺ°λžλŠ”데 @Qualifier("name")λŠ” 이름 μ„€μ •, @PrimaryλŠ” μš°μ„ κΆŒ λΆ€μ—¬ 인 κ²ƒμœΌλ‘œ μ΄ν•΄ν–ˆλ‹€! 인증과 μΈκ°€μ˜ 차이점이 ꡉμž₯히 ν—·κ°ˆλ ΈλŠ”λ°, 인증은 둜그인! μΈκ°€λŠ” νšŒμ›/..
KIMHYEYUN
'TILπŸ”₯' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (4 Page)