일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 스프링 배치
- mysql
- spring cloud
- Spring Security
- 웹 서버
- spring boot
- computer science
- 스프링 부트
- Java
- 스프링 시큐리티
- JPA
- 배포
- 스프링
- ORM
- CS
- 컨테이너
- CI/CD
- 데이터베이스
- 도커
- 자바
- web server
- Spring
- 가상화
- HTTP
- 백엔드
- Container
- vm
- 영속성 컨텍스트
- virtualization
- spring batch
- Today
- Total
목록Computer Science/Database (6)
개발 일기

드링크리 프로젝트에서는 가게(Store) 정보를 관리하는 과정에서 가게에 등록된 여러 개의 이미지를 저장해야 했고 이를 위해 store_image 테이블을 별도로 분리하여 관리하기로 했다.id이미지의 고유 ID (PK)store_id가게 ID (FK)storeImageUrl이미지 URLstoreImageType이미지 타입 (메뉴, 내부, 기타 등)storeImageDescription이미지 설명이때, 특정 가게(store_id)에 속한 이미지를 빠르게 조회해야 하는 경우가 많기 때문에 MySQL Index를 적용해서 기존 방식과 성능 비교를 해보기로 했다. 조금 더 구체적으로 왜 인덱스를 도입하고자 하는지 정리해보겠다. 왜 인덱스를 도입하고자 하는가?100만 건 이상의 데이터에서 인덱스 기준이 하나도 잡..
SQLD를 공부했었는데 그때 윈도우 함수에 대해 제대로 이해하지 못하고 통과 해버린 것 같았다.SQL을 공부하면서 뭔가 그룹을 지어서 그 그룹에 대한 통계를 내는 용도로 쓰이는 걸 봤는데 GROUP BY랑 도대체 뭐가 잘 알지 못했다.그래서 도대체 뭐가 다른지 그리고 어떻게 쓰이는지에 대해 간단히 정리해보게 됐다.윈도우 함수(Window Function)SQL의 윈도우 함수란 행과 행 간을 비교, 연산, 정의하기 위한 함수이다. 분석함수 또는 순위함수라고 하기도 한다. 다른 함수들처럼 중첩해서 사용할 수는 없지만 서브쿼리에서는 사용가능하다.❓그래서 GROUP BY랑 뭐가 다른데?가장 큰 차이는 아마 결과(출력) 방식. 즉, 데이터의 유지 방식인 것 같다.조금 더 풀어서 설명해보자면 GROUP BY의 경우..

채팅 데이터를 저장하기 위해 NoSQL을 사용해야겠다는 판단이 들어 Dynamo DB는 유료라 래퍼런스가 많은 Mongo DB를 한번 부트 프로젝트와 연결하기 위해 Mongo DB에 대해서 정리해보게 됐다.Mongo DB 대용량 데이터를 처리할 때 우수한 성능을 발휘하는 고성능, 고가용성 및 쉬운 확장성을 제공하는 NoSQL 데이터베이스이다.Document-Oriented 지향➜ 데이터를 배열 및 중첩 Document와 같은 복잡한 데이터 유형을 효율적으로 저장할 수 있는 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장하여 각 문서는 고유의 스키마를 가지므로, 서로 다른 구조의 문서를 하나의 컬렉션에 저장Schema-less관계형 데이터베이스와 같이 트랜잭션(roll-back, ..

OAuth2.0+JWT에서 Refresh Token을 백엔드 단에서 소유하고 있기 위해 Redis에 저장했다. 그냥 다들 그렇게하니까 그렇게 처리해봤는데 정확히 알고 쓴다는 느낌이 없어서 이번 기회에 Redis에 대해 이해해보고자 한다. Redis란?Redis는 Remote Dictionary Server의 약자로 Key - Value 기반의 비관계형(NoSQL) 오픈소스 DBMS다양한 데이터 타입을 제공하여 다양한 기능에 활용할 수 있다. 예를 들어 sorted sets 타입을 활용한 랭킹 시스템도 구현 가능하다.별도의 SQL 쿼리문이 필요하지 않다.mysql, oracle과 같이 디스크에 데이터를 저장하는 데이터베이스와 달리 redis는 주기억장치인 RAM에다가 데이터를 저장하는 인메모리(In-me..

H2 데이터베이스가 소규모 서비스나 단위 테스트에서 주로 사용되어 종종 개발자분들께서 사용하시는걸 본적이 있다.그래서 H2 Database에 대해 간단하게 정리하는 시간을 가져봤다.H2 Database에 대해H2는 Java로 구현된 작고 가벼운 경량형 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다.테스트 환경이나 임베디드 데이터베이스로 많이 사용Server Mode/In-memory Mode/Embedded Mode 이렇게 3가지 모드가 있다.3가지 모드에 대해 하나씩 들여다 보자In-Memory ModeH2 데이터베이스 엔진을 직접 설치하지 않고 애플리케이션 내부의 엔진을 사용하는 방식메모리 기반으로 동작하게 되는 모드로 데이터가 RAM에 저장RAM을 사용하다 보니 Server Mode에 ..

창업팀에서 로직 요구 사항이 변경되어서 게시글 페이징 조회 시에 댓글 수를 추가적으로 조회해야 했다.내용 중에 쿼리는 다음과 같은데 GROUP BY를 사용하게 됐다.그런데다음과 같은 에러가 발생하면서 500이 터졌다. 로그를 번역해보면 아래와 같았다.Error Code: 1055. SELECT 목록의 Expression #1이 GROUP BY 절에 포함되어 있지 않으며, 열 'woomzip.u.nickname'이 GROUP BY 절의 열에 기능적으로 종속되지 않은 비집계 열을 포함하고 있습니다. 이는 sql_mode=only_full_group_by와 호환되지 않습니다.사실 잘 와닿지 않았다.이 오류는 MySQL에서 ONLY_FULL_GROUP_BY 모드가 활성화되어 있을 때 발생하는데 이 모드는 GRO..