분류 전체보기134 record class? 너는 어떤 친구? record?java 16부터 정식으로 도입이 되었고, Record 클래스는 데이터를 저장하는 단순한 클래스(POJO)를 작성할 때 발생하는 반복적인 코드를 줄이기 위해 설계됨. 일반적으로 데이터 객체를 만들 때 필요한 모든 필드, 생성자, 접근자, equals(), hashCode(), toString() 메서드를 자동으로 생성 특징 - record class 필드는 private final 로 선언되어 불변 객체이다. -> 안정성이 향상 됨- 코드가 간결해 진다- @Getter 메서드를 제공- equals() 및 hashCode() 메서드를 자동으로 생성하여 필드 값에 기반한 비교를 수행한다 아래에는 내가 사용해본, record class public record AccommodationItemRe.. 2024. 6. 27. [이슈해결] N+1 N+1 문제란?N+1 문제는 데이터베이스 쿼리에서 하나의 메인 쿼리(N)와 그에 따른 추가적인 서브 쿼리(1)가 반복적으로 실행되면서 성능 저하를 일으키는 문제이다. 예를 들어, 메인 엔티티를 조회한 후 각 엔티티와 연관된 데이터를 개별적으로 조회할 때 N+1 문제가 발생한다. 이는 불필요한 데이터베이스 요청을 증가시켜 애플리케이션의 성능을 크게 저하시킨다.N+1 문제 발생 상황엔티티 간에 명시적인 연관관계가 없더라도, 데이터 조회 로직에서 잘못된 조인 방식이나 서브 쿼리 사용으로 인해 N+1 문제가 발생할 수 있다. 다음은 이러한 상황을 설명하는 예제이다.@Entitypublic class Product { @Id private Long id; private String name; .. 2024. 6. 20. [이슈해결] Cannot add or update a child row: a foreign key constraint fails 프로젝트를 수행 하다가, Cannot add or update a child row: a foreign key constraint fails 이 에러가 났다.. 블로그와 GPT에 물어보니까 아래와 같은 다양한 에러가 발생에러 원인참조되는 부모 테이블의 행이 없는 경우: 자식 테이블에 데이터를 추가하거나 업데이트하려고 하지만, 참조하려는 부모 테이블에 해당 행이 없는 경우.데이터 타입 불일치: 외래 키로 참조되는 두 열의 데이터 타입이 일치하지 않는 경우.외래 키 제약 조건 설정 문제: 외래 키 제약 조건이 잘못 설정된 경우. "Cannot add or update a child row: a foreign key constraint fails" 에러는 데이터베이스 무결성을 유지하기 위한 중요한 제약 조건.. 2024. 6. 19. [이슈 해결] Annotation-specified bean name 'Controller' for bean class conflicts with existing, non-compatible bean definition of same name and class Annotation-specified bean name 'clubController' for bean class [cohttp://m.core.linkup.club.controller.ClubController] conflicts with existing, non-compatible bean definition of same name and class [cohttp://m.core.linkup.club.club.controller.ClubController]이 에러는 JPA에 있는 Bean 이름이 충돌난다는 것... https://stackoverflow.com/questions/13801359/annotation-specified-bean-name-conflicts-with-existing-non-c.. 2024. 6. 18. Spring Boot - Paging 기본 개념Spring Boot에서 페이징을 구현하기 위해서는 Spring Data JPA를 주로 사용합니다. Spring Data JPA는 페이징을 쉽게 구현할 수 있는 여러 인터페이스와 클래스를 제공합니다. 주요 클래스는 다음과 같습니다:PageRequest: 페이징 요청을 생성하는 클래스입니다. 페이지 번호와 페이지 크기를 설정할 수 있습니다.Page: 페이징 결과를 담고 있는 인터페이스로, 페이지의 내용(Content), 총 페이지 수(Total Pages), 총 요소 수(Total Elements) 등을 제공합니다.PagingAndSortingRepository: 페이징과 정렬 기능을 제공하는 기본 Repository 인터페이스입니다. 의존성 추가 implementation 'com.queryds.. 2024. 6. 17. Ubuntu에 redis 설치 # Ubuntu에 redis설치sudo apt-get install redis-server# redis 버전 확인redis-server --version# netstat 설치sudo apt install net-tools#port 확인 netstat -nlpt | grep 6379 #redis-cli 환경 접속redis-cli#테스트 ping -> pong이 나와야 함ping [참고자료]https://why-dev.tistory.com/378 [Docker/Redis] Ubuntu에 Redis 설치 & Docker로 Redis 실행| Redis 설치하기 1. Ubuntu에 Redis 설치 sudo apt-get install redis-server 2. 설치 확인 redis-server --ver.. 2024. 5. 8. 깃 커밋 템플릿 만들기 깃 커밋 컨벤션을 정해서 깃 관리룰 하기 위함이다 먼저 깃 커밋 컨벤션을 정하고, 그거에 맞춰 커밋을 하는데 매번 확인하는게 귀찮다 ㅜ 그래서 알아본 것으로 깃 메시지 템플릿! gitmessage 설정 gitmessage 템플릿 txt파일을 만든 후, 텍스트 수정 touch ~/.gitmessage.txt vim ~/.gitmessage.txt 템플릿 작성(수정) 후 저장 - 아래 부분은 각자 상황에 맞게 수정 ################ # : 의 형식으로 제목을 아래 공백줄에 작성 # 제목은 50자 이내 / 변경사항이 "무엇"인지 명확히 작성 / 끝에 마침표 금지 # 예) FEAT: 로그인 기능 추가 # 바로 아래 공백은 지우지 마세요 (제목과 본문의 분리를 위함) ################ #.. 2024. 4. 18. [프로그래머스] rny_string 문제 'm'과 "rn"이 모양이 비슷하게 생긴 점을 활용해 문자열에 장난을 하려고 합니다. 문자열 rny_string이 주어질 때, rny_string의 모든 'm'을 "rn"으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. 풀이 replaceAll을 사용하여 바로 변환 class Solution { public String solution(String rny_string) { String answer = rny_string.replaceAll("m", "rn"); return answer; } } 2024. 3. 12. [프로그래머스] 부분문자열 문제 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요. 풀이 contains 함수를 사용 이 함수는 문자열이나 컬렉션 내에 특정 요소가 포함 되어 있는지 확인하는 메서드!!! class Solution { public int solution(String str1, String str2) { if(str2.contains(str1)){ return 1; } else{ return 0; } } } 다른사람 풀이 삼항연산자 은근 많이 쓰는.. 2024. 3. 12. 이전 1 2 3 4 ··· 15 다음