Java 29

[Java] Listλ₯Ό 2차원 λ°°μ—΄λ‘œ λ³€ν™˜ν•˜κΈ°

πŸ“Œλ¬Έμ œ2차원 배열이 μ£Όμ–΄μ‘Œμ„ λ•Œ ν–‰μ˜ μ›ν™œν•œ μΆ”κ°€ 및 제거λ₯Ό μœ„ν•΄ `List`둜 λ³€ν™˜ν•˜μ—¬ μ‚¬μš©ν•˜κ³ μž ν•œλ‹€.   πŸ“Œν•΄κ²°1. 배열을 μ œλ„€λ¦­ νƒ€μž…μœΌλ‘œ κ°€μ§„ `List`λ₯Ό λ§Œλ“ λ‹€.2. `List`λ₯Ό μ œλ„€λ¦­ νƒ€μž…μœΌλ‘œ κ°€μ§„ `List`λ₯Ό λ§Œλ“ λ‹€.  πŸ“Œκ΅¬ν˜„1. 배열을 μ œλ„€λ¦­ νƒ€μž…μœΌλ‘œ κ°€μ§„ `List`λ₯Ό λ§Œλ“ λ‹€. int[][] intArr = new int[][]{ {0, 0}, {0, 1}, {0, 2} };List list = new ArrayList(Arrays.asList(intArr));for (int[] ints : list) { System.out.println(Arrays.toString(ints));}// [0, 0]// [..

Java 2024.06.12

[Java] 문자(char)와 λ¬Έμžμ—΄(String)을 λ‹€λ£¨λŠ” ν•¨μˆ˜

πŸ“Œλ¬Έμžμ—΄μ„ λ‹€λ£¨λŠ” String 클래슀의 λŒ€ν‘œμ μΈ λ©”μ„œλ“œ1. 문자 λ°°μ—΄ -> String2. μ§€μ •λœ 인덱슀의 문자 λ°˜ν™˜3. μ‚¬μ „μˆœ 비ꡐ4. λ¬Έμžμ—΄μ΄ ν¬ν•¨λ˜μ—ˆλŠ”μ§€ 검사5. 같은지 비ꡐ6. μ£Όμ–΄μ§„ 문자의 인덱슀7. μ§€μ •λœ 문자의 λ§ˆμ§€λ§‰ 인덱슀8. λ¬Έμžμ—΄ 길이9. λ¬Έμžμ—΄ ꡐ체(replace)10. λΆ„λ¦¬μžλ‘œ λ‚˜λˆ„μ–΄ λ°°μ—΄λ‘œ λ°˜ν™˜11. λΆ€λΆ„ 자λ₯΄κΈ°12. μ†Œλ¬Έμž/λŒ€λ¬Έμž λ³€ν™˜13. 곡백 제거14. 값을 λ¬Έμžμ—΄λ‘œ λ³€ν™˜    1. 문자 배열을 String으둜 λ³€ν™˜`String(char[] value)`  char[] c = {'H', 'e', 'l', 'l', 'o'};String s = new String(c);// s = "Hello"   2. μ§€μ •λœ μœ„μΉ˜(index)에 μžˆλŠ” 문자λ₯Ό λ°˜ν™˜`char charAt(int ..

Java 2024.05.30

[SpringBoot] 정적 λ¦¬μ†ŒμŠ€μ— κΆŒν•œ μš”κ΅¬ν•˜μ§€ μ•ŠκΈ°

πŸ“Œν™˜κ²½IntelliJ UltimateJava 17SpringBoot 3.2.3Gradle - Groovy Dependencies: Spring WebThymeleafSpring Data JPAlombokMariaDB 10.11Spring Dev toolSpring Security  πŸ“Œλ¬Έμ œλͺ¨λ“  정적 λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ 403 μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄μ„œ 이미지, js, css 파일이 λ‘œλ”©λ˜μ§€ λͺ»ν•˜λŠ” 문제. πŸ“Œν•΄κ²°μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°λŠ” 섀정이 μ—†μœΌλ©΄ λͺ¨λ“  λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ κΆŒν•œμ„ μš”κ΅¬ν•˜λ―€λ‘œ 정적 λ¦¬μ†ŒμŠ€ λ˜ν•œ 403(Access Denied) μ—λŸ¬κ°€ λ°œμƒν•œλ‹€. 일반적인 κ²½μš°μ—λŠ” 정적 λ¦¬μ†ŒμŠ€μ— κΆŒν•œμ„ μš”κ΅¬ν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ `resource` 폴더 λ‚΄ `/static` μ΄ν•˜μ˜ λͺ¨λ“  νŒŒμΌμ— λŒ€ν•΄ 접근을 ν—ˆμš©ν•΄μ€€λ‹€.   @Bean..

Java/Spring 2024.03.28

[SpringBoot] Spring Security: permitAll()이 λ™μž‘ν•˜μ§€ μ•ŠμŒ

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool Spring Security πŸ“Œλ¬Έμ œ κ΄€λ¦¬μž νŽ˜μ΄μ§€λ₯Ό μ˜λ―Έν•˜λŠ” `/member`λ₯Ό μ œμ™Έν•œ λͺ¨λ“  url에 μš”μ²­μ„ ν—ˆμš©ν•˜λ €κ³  ν•œλ‹€. 정적 λ¦¬μ†ŒμŠ€μ™€ μž‘μ„±λœ λ‹€λ₯Έ url의 μš”μ²­μ„ λͺ¨λ‘ ν—ˆμš©ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같이 μž‘μ„±ν–ˆλ‹€. http.csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(request -> request.requestMatchers(HttpMethod.POST, "/another..

Java/Spring 2024.03.27

[SpringBoot] νŽ˜μ΄μ§€λ„€μ΄μ…˜(Pagination)

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 SpringBoot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool QueryDSL 5.0.0 πŸ“ŒνŽ˜μ΄μ§€λ„€μ΄μ…˜(Pagination)μ΄λž€? νŽ˜μ΄μ§• λ˜λŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜μ΄λΌκ³  λΆ€λ₯Έλ‹€. λ‹€λŸ‰μ˜ 데이터λ₯Ό κ³΅ν†΅λœ 개수만큼 μ—¬λŸ¬ 묢음으둜 λ‚˜λˆ„μ–΄ νŠΉμ • νŽ˜μ΄μ§€ λ‹Ή ν•œ λ¬ΆμŒμ„ 화면에 λ³΄μ—¬μ£ΌλŠ” 것을 λ§ν•œλ‹€. DB에 λ“±λ‘λœ 데이터가 λ§Žμ€ 경우 μš”μ²­ μ‹œ 전체λ₯Ό ν•œλ²ˆμ— λ“€κ³ μ˜¨λ‹€λ©΄ 응닡 μ‹œκ°„μ΄ κΈΈμ–΄μ§€κ²Œ λ˜λ©΄μ„œ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λΆˆνŽΈμ„ μ΄ˆλž˜ν•œλ‹€. μ΄λ•Œ 데이터λ₯Ό νŽ˜μ΄μ§€μ— ν•΄λ‹Ήν•˜λŠ” 개수만큼 μΌλΆ€λ§Œ μž˜λΌμ„œ κ°€μ Έμ˜¨λ‹€λ©΄ μ‹œκ°„μ„ 단좕할 수 μžˆλ‹€. 예λ₯Ό..

Java/Spring 2024.03.26

[Spring] λ¦¬λ‹€μ΄λ ‰μ…˜ν•œ νšŸμˆ˜κ°€ λ„ˆλ¬΄ λ§ŽμŠ΅λ‹ˆλ‹€.

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 SpringBoot 3.2.3 πŸ“Œλ¬Έμ œ μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°λ‘œ νšŒμ› 둜그인 및 둜그인된 μ‚¬μš©μžλ§Œ μ ‘κ·Όν•  수 μžˆλŠ” νŽ˜μ΄μ§€λ₯Ό μ„€μ •ν•˜λ˜ 도쀑 ν•΄λ‹Ή 였λ₯˜λ₯Ό λ°œκ²¬ν•¨. μΏ ν‚€λ₯Ό μ‚­μ œν•΄λ„ λ¬Έμ œκ°€ μ§€μ†μ μœΌλ‘œ λ°œμƒν•˜μ—¬ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 글을 μž‘μ„±ν•œλ‹€. 1. `/`λŠ” 메인 인덱슀둜 λͺ¨λ“  μœ μ €κ°€ μ ‘κ·Όν•  수 있고, `/member/**`λŠ” `MEMBER` κΆŒν•œμ„ κ°€μ§„ μ‚¬μš©μžλ§Œ μ ‘κ·Όν•  수 μžˆλ‹€. 2. `/member`에 μ ‘κ·Όν•  경우 μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•˜μ§€ μ•Šμ•˜κ±°λ‚˜ `MEMBER` κΆŒν•œμ΄ μ—†μœΌλ©΄ `/member/login`으둜 νŠ•κ²¨λ‚˜κ°€μ•Ό ν•œλ‹€. μ΄λ•Œ 둜그인 ν•˜μ§€ μ•Šμ€ μ‚¬μš©μžκ°€ `/member`둜 μ ‘κ·Όν•  경우 `/member/login`으둜 κ°€μ§€ μ•Šκ³  μœ„μ™€ 같은 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€. πŸ“Œν•΄κ²° κ²°λ‘ λΆ€..

Java/Spring 2024.03.24

[Spring] μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°(Spring Security)

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 SpringBoot 3.2.3 πŸ“ŒμŠ€ν”„λ§ μ‹œνλ¦¬ν‹°(Spring Security)λž€? 인증(Autentication)κ³Ό 인가(Autorization), 데이터 보호 κΈ°λŠ₯을 ν¬ν•¨ν•˜μ—¬ μ‚¬μš©μžμ˜ κΆŒν•œμ„ 관리할 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” Spring의 ν”„λ ˆμž„μ›Œν¬. μ•½κ°„μ˜ μ½”λ“œμ™€ μ„€μ •λ§ŒμœΌλ‘œ 둜그인 μ²˜λ¦¬μ™€ μžλ™ 둜그인, 둜그인 ν›„μ²˜λ¦¬ 등을 μ²˜λ¦¬ν•˜μ—¬ κ°œλ°œμžκ°€ λ³΄μ•ˆμ— κ΄€ν•œ κΈ°λŠ₯을 λΉ λ₯΄κ²Œ κ΅¬ν˜„ν•  수 μžˆλ„λ‘ 도와쀀닀. βœ”οΈ 인증(Autentication): 슀슀둜λ₯Ό 증λͺ…함. μ°Έμ΄λΌλŠ” κ·Όκ±°κ°€ μžˆλŠ” 무언가λ₯Ό ν™•μΈν•˜κ±°λ‚˜ ν™•μ¦ν•˜λŠ” ν–‰μœ„. μ‚¬μš©μžκ°€ 슀슀둜λ₯Ό 증λͺ…ν•˜κΈ° μœ„ν•˜μ—¬ μžμ‹ μ˜ 정보(아이디 및 λΉ„λ°€λ²ˆν˜Έ)λ₯Ό μ œκ³΅ν•˜κ³  이λ₯Ό 톡해 인증을 μ™„λ£Œν•˜λŠ” 둜그인 κ°œλ…μ΄ 여기에 μ†ν•œλ‹€. βœ”οΈ 인가(Au..

Java/Spring 2024.03.21

[SpringBoot] Spring Security μ‚¬μš© μ‹œ deprecated

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool πŸ“Œλ¬Έμ œ 2024λ…„ 3μ›” 16일 κΈ°μ€€ μŠ€ν”„λ§ λΆ€νŠΈ 3.2.3버전 ν”„λ‘œμ νŠΈμ—μ„œ μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°μ˜ 적용 κ³Όμ • 도쀑 μ±…κ³Ό ꡬ글링을 톡해 μ°Έκ³ ν•œ μ½”λ“œκ°€ deprecated λ˜μ—ˆλ‹€λŠ” 였λ₯˜μ™€ ν•¨κ»˜ μž‘μ„±λ˜μ§€ μ•ŠλŠ” λΆˆνŽΈμ„ κ²ͺμ–΄ ν•΄λ‹Ή 글을 μž‘μ„±ν•œλ‹€. πŸ“Œν•΄κ²° Spring Security 5.2 μ΄ν›„λ‘œ `Configuration` μž‘μ„± μ‹œ λ©”μ„œλ“œ 체이닝 λŒ€μ‹  λžŒλ‹€μ‹μ„ ν—ˆμš©ν•˜κ³  μžˆλ‹€. Spring Security 6.0 버전 μ΄ν›„λ‘œλŠ” 기쑴의 `WebSecuri..

Java/Spring 2024.03.16

_(underscore)둜 μ—°κ²°λœ uuid와 원본 파일λͺ… μž˜λΌμ„œ λ³΄κ΄€ν•˜κΈ°

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool πŸ“Œλ¬Έμ œ κ²Œμ‹œκΈ€ DTO인 `BoardDTO`λ₯Ό DB에 μ €μž₯ν•˜κΈ° μœ„ν•΄ 엔티티인 `Board`와 `BoardImage`둜 λ³€ν™˜ν•˜κ³ μž ν•œλ‹€. `BoardDTO`λŠ” 파일 이름 `String`이 λ‹΄κΈ΄ `List`λ₯Ό ν•„λ“œλ‘œ κ°€μ§„λ‹€. `BoardImage`λŠ” 각각 uuid, 원본 파일λͺ…, μˆœμ„œμΈ `uuid`, `fileName`, `ord`λ₯Ό ν•„λ“œλ‘œ κ°€μ§€λ©° μƒμœ„ 엔티티인 `Board`λ₯Ό μ°Έμ‘°ν•œλ‹€. 이미지가 ν¬ν•¨λœ κΈ€ μž‘μ„± μ‹œ `BoardDTO`λ₯Ό 파라..

Java/Spring 2024.03.16

[SpringBoot] Swagger UIμ—μ„œ MultipartFile 섀정이 λ˜μ§€ μ•ŠλŠ” 였λ₯˜

πŸ“Œν™˜κ²½ IntelliJ Ultimate Java 17 Spring boot 3.2.3 Gradle - Groovy Dependencies: Spring Web Thymeleaf Spring Data JPA lombok MariaDB 10.11 Spring Dev tool πŸ“Œλ¬Έμ œ 파일 μ—…λ‘œλ“œ 처리λ₯Ό μ‹œλ„ν•˜λŠ” 도쀑 `Controller`μ—μ„œ νƒ€μž…μ„ MultipartFile둜 μ§€μ •ν–ˆμŒμ—λ„ swagger UIμ—μ„œapplication/json; charset=UTF-8둜 μ„€μ •λ˜λŠ” 문제. package org.zerock.b02.dto; import lombok.Data; import org.springframework.web.multipart.MultipartFile; import java.util.List; @..

Java/Spring 2024.03.15