본문 바로가기
반응형

데이터베이스10

[Spring boot jpa] 찜하기/좋아요 api에서 나온 race condition 문제 해결 찜하기 기능을 구현하기 위해 하나의 PATCH API를 사용하였고, 이를 통해 찜하기와 해제 기능을 동시에 처리하도록 설계했습니다. 그러나 다량의 찜하기/해제 요청이 동시에 들어오면서, user_id와 house_id가 같은 pin 엔티티가 중복 생성되는 문제가 발생하였고, 이에 따라 서버 오류가 발생했습니다. 아래와 같이 다대다 관계로 찜/좋아요 기능을 위해 엔티티를 설계했습니다.@Entity@Table(name="pin")@Datapublic class Pin { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY, cascade = Casc.. 2025. 1. 24.
[Spring Boot] gitpod.io 에서 h2 데이터베이스 사용하기(RDBMS) 이 글을 작성하는 시점(2023.2.25)에서, 아래와 같이 구글 검색해보면 깃팟같은 웹IDE에서 h2같이 실습하기 좋은 내장 데이터베이스를 사용하는 법에 대해서 전혀 안알려져 있습니다. 제 글이 아마 세계 최초일 것입니다(그냥 그렇다구요..ㅎ) 어서 제 글이 세계 최초라고 해줘요(찡긋) 이용하는 법이 구글에 전혀 없어서 제가 개척해봤습니다. (리눅스 명령어 조금은 할줄 아므로..) 어서 세계 최초라고 해줘요(찡긋) 아니면 국내 최초라도.... 언제어디서나 웹브라우저만 가지고 코딩하거나, 자신만의 노트북이 없거나, 아니면 군입대(ㅋㅋ...)처럼 웹브라우저로 개발환경을 구축하는 사람은 언제나 있을거라고 생각합니다. gitpod에서는 에디터와 콘솔 환경만 쓸수 있고, 일반 컴퓨터처럼 mysql workben.. 2023. 2. 25.
[MySQL] 데이터 조회(3) - 정렬하기 , 일부만 추리기 (ASC ,DESC , LIMIT) 실습을 위해 초기화(클릭) [MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아 konkukcodekat.tistory.com 이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다. 이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요! 1. 데이터 정렬하기 데이터는 ORDER BY 키워드로 정렬할 수 있습니다. 단, order by 문은 무조건 where 뒤에 와야합니다. ORDER BY 속성이름 (ASC/DESC) ASC는 Ascending을 의미합니다. 즉 오름차순입니다. .. 2022. 5. 8.
[MySQL] DATE 관련 함수 실습을 위해 초기화(클릭) [MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아 konkukcodekat.tistory.com 이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다. 이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요! 1. 연도, 월, 일 추출하기 DATE 타입의 값에서 연도(year)만, 혹은 월(month)만, 혹은 일(day)만 추출할 수 있습니다. YEAR() , MONTH() , DAYOFMONTH() (1) 1995년에 태어난 회원들만 조회하기 YE.. 2022. 5. 8.
[MySQL] 데이터 조회(2) - 문자열 처리 LIKE 문 실습을 위해 초기화(클릭) [MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아 konkukcodekat.tistory.com 이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다. 이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요! 문자열은 '' 또는 ""을 감싸서 처리 그러나 이렇게 하면 까다로운 부분이 많이 생깁니다. 예를 들어 서울사는 사람 전부를 조회하려면 어떻게 해야할까요? 이때 LIKE문을 이용해서 처리할 수 있습니다. LIKE 문으로 문자열 처리 % : 아무 문.. 2022. 5. 8.
[MySQL] 데이터 조회(1) -SELECT , WHERE 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아래에 코드를 복붙합니다! USE coupang; CREATE TABLE `member` ( `id` int NOT NULL AUTO_INCREMENT, `email` text, `age` int DEFAULT NULL, `gender` text, `height` double DEFAULT NULL, `weight` double DEFAULT NULL, `birthday` date DEFAULT NULL, `sign_up_day` date DEFAULT NULL, `address` text, PRIMARY KEY (`id`) .. 2022. 5. 8.
[MySQL] CREATE 문으로 테이블 생성하기 테이블 생성 문법입니다. CREATE TABEL 테이블이름( 속성이름 데이터타입 조건 , 속성이름 데이터타입 조건 , 속성이름 데이터타입 조건 , ........ PRIMARY KEY (속성이름) ); 속성이름은 ID , address 등등과 같이 테이블의 열이 될 값들을 넣어줍니다. 데이터 타입은 INT , CHAR , VARCHAR , FLOAT , DATE와 같은 자료형을 넣어줍니다. https://konkukcodekat.tistory.com/entry/mySQL-%EC%A3%BC%EC%9A%94-%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%83%80%EC%9E%85%EC%9E%90%EB%A3%8C%ED%98%95 mySQL 주요 데이터타입(자료형) 이전 포스팅에서 테이블을 생성할 때,.. 2022. 5. 8.