블로그 사이에서 WHY를 외치다!
close
프로필 배경
프로필 로고

블로그 사이에서 WHY를 외치다!

  • 분류 전체보기 N
    • Spring
    • Nest
    • Language
    • DB
    • Book N
    • 회고
    • Etc
  • ⭐️ readme ⭐️
  • main
  • recommend
  • why
  • framework
  • book
[DB 선택 가이드 🗺️] 이번 프로젝트, DB 뭐 써야하지? | DBMS 종류 장단점 정리

[DB 선택 가이드 🗺️] 이번 프로젝트, DB 뭐 써야하지? | DBMS 종류 장단점 정리

프로젝트를 처음 시작하면 언어, 프레임워크 등 다양한 것들을 고민하게 됩니다. 그리고 언어와 프레임워크가 정해지면 또 하나의 고민을 하게 되죠. 아, 이번 프로젝트 디비 뭐 쓰지? 아마 이 글을 보시는 분들은 DB에 대한 고민이 많으실 겁니다. 저 또한 매번 하는 고민이기도 하고요. 🤔 오늘은 DB의 종류 7가지를 정리해보고, 어떤 상황에 어떤 DB를 선택하면 좋을지 가이드를 작성해보려고 합니다. 결론만 보고 싶으신 분들이라면마지막 챕터인 'DB 선택 가이드 - 총 정리'를 확인해주세요. Recommended - 이런 분들에게 추천드려요.- 평소 MySQL이나 Oracle등 유명한 RDB만 쓰시는 분들.- DB 종류 별 장단과 해당하는 DBMS가 궁금하신 분들.- 결론적으로 어떨때 어떤 DB를 사용해..

  • format_list_bulleted DB
  • · 2025. 5. 12.
  • textsms
Seed를 사용하여 Pagenation + Random에서 중복 없이 데이터 가져오는 방법 | ORDERBY RANDOM PostgreSQL seed

Seed를 사용하여 Pagenation + Random에서 중복 없이 데이터 가져오는 방법 | ORDERBY RANDOM PostgreSQL seed

어느날 페이지네이션을 사용하면서 랜덤한 값들을 응답해줘야하는 요구사항이 들어왔습니다.1. 한 번 요청시 5개씩 데이터를 응답해줘야 한다.2. 중복된 데이터가 나오면 안된다.3. 완전 랜덤한 데이터가 나와야 한다. 오늘은 해당 요구사항을 구현하는 방법인 seed에 대하여 알아보고, postgres + jpa 환경에서의 구현 방법을 알아보고자 합니다. Seed란 무엇인가?컴퓨터는 원래 난수를 생성할 수 없다는 사실 아시나요? 저희가 보기엔 마치 난수처럼 보이지만, 사실 정말 임의의 값이 아닌 특정 방법이나 ms를 사용하는 등의 계산 과정을 거쳐 나온 '의사 난수'들입니다.흔하게는 난수표를 사용하는데, 난수표를 선택하는 값을 시드(seed)라고 합니다. 그리고 seed값에 따라 같은 난수표를 사용하기 때문에 ..

  • format_list_bulleted Spring
  • · 2025. 3. 16.
  • textsms
엑셀 읽어오기 API 개발 시 꼭 고려해야하는 상황 및 예외처리 w 토지조서 엑셀, Apache POI 타입, 엑셀 서식 문제

엑셀 읽어오기 API 개발 시 꼭 고려해야하는 상황 및 예외처리 w 토지조서 엑셀, Apache POI 타입, 엑셀 서식 문제

얼마전 토지조서 엑셀을 받아와 DB에 엑셀 행들을 저장하고, 엑셀 내용 읽어 응답해줘야하는 요구사항이 있었습니다.개발을 하며 엑셀 개발 시 고려가 필요한 두 가지 상황을 발견해서 공유하고자 합니다. 제 개발 환경은 아래와 같으나, 개발 환경이 다르신 분들도 한 번 읽어보시면 도움이 되실 것 같습니다.Spring Boot 3.4.2 + Java 21 + Apache POI 라이브러리 첫번째 상황: NumberOfRows()는 얼마가 나올까?위와 같은 엑셀 시트가 하나 있다고 생각해봅시다. 제가 사용하는 Apache POI 라이브러리에서는 `worksheet.getPhysicalNumberOfRows()`를 사용하여 시트에 내용이 몇 행까지 있는지 가져올 수 있는데요. 여러분들이 사용하시는 라이브러리에도 R..

  • format_list_bulleted Etc
  • · 2025. 3. 2.
  • textsms
랜덤 추출이 필요할 경우 고려할 수 있는 TABLESAMPLE 절

랜덤 추출이 필요할 경우 고려할 수 있는 TABLESAMPLE 절

개발을 하다보면 랜덤으로 데이터를 응답해줘야하는 상황이 생깁니다.그럴 때 우리는 크게 두 가지 방법 중 하나를 선택할 수 있습니다. 1) DB Query로 랜덤으로 추출하기.2) 로직에서 랜덤으로 추출하기. 보통은 1번에서 ORDERBY RANDOM()함수를 많이 사용합니다. 그런데 RANDOM() 함수가 아닌 테이블을 샘플링 해서 랜덤으로 가져올 수 있다는 것 알고 계셨나요?오늘은 갯수가 크게 상관 없을 경우 고려 가능한 TABLESAMPLE 절에 대하여 정리해보려고 합니다. 추가로 PostgresSQL에서 제공해주는 샘플링 메서드도 알아볼 것입니다. TABLESAMPLE 절TABLESAMPLE은 16년 PostgresSQL에서 처음 도입되었습니다. (PostgresSQL 9.5 버전부터 사용이 가능)..

  • format_list_bulleted DB
  • · 2025. 1. 3.
  • textsms
NestJS 토큰 검증 기초 of 기초: Guard와 Passport.js

NestJS 토큰 검증 기초 of 기초: Guard와 Passport.js

우리는 여러 요청들에 '토큰'을 함께 보내 제가 이 요청을 수행할 수 있는 존재임을 알리게 됩니다. 오늘은 서버의 입장에서 받은 토큰이 정상적인지 여부를 판단하는 과정을 알아보려고 합니다. Nest.js의 토큰 검증 로직에 대한 포스팅은 많지만 조금 더 쉽게 기초와 구현 방법을 풀어낸 포스팅이 있었으면 해서 글을 작성합니다. 특히 대부분의 포스팅에서 Passport.js 라이브러리를 사용하지만 사용할 때와 사용하지 않을 때의 차이, 즉 왜 사용하는가에 대한 설명이 부족하다고 느꼈고 그런 부분을 알려주는 글이 있다면 처음 Nest.js를 시작하시는 분들께 도움이 될 것이라고 생각하였습니다. 다들 사용하는 라이브러리라도 왜 사용하는지를 정확히 아는 게 저희에겐 중요하니까요. Purporse1) Guard가 ..

  • format_list_bulleted Nest
  • · 2024. 12. 13.
  • textsms
왜 'a'는 String type이 될 수 없을까? feat. SCP

왜 'a'는 String type이 될 수 없을까? feat. SCP

char을 큰 따옴표로 묶거나 String을 작은 따옴표로 묶으면 type 에러가 발생합니다. char c = "a"; // errorString s = 'a'; // error 🤓 왜 'a'는 String type으로 쳐주지 않는 걸까요?왜 리터럴 타입으로 받을 때 따옴표로 둘을 구분해야하는지 의문을 가져보신 분들이 있을 것 같습니다.해당 글에서는 둘을 구분해야하는 이유를 알아보고, String의 동작 방식을 정리해보려고 합니다. feat. char vs String 'a'와 "a"가 달라야 하는 이유char은 Primitive 타입이고 String은 Reference 타입입니다.Primitive 타입은 기본 데이터 타입으로 값을 직접 저장합니다. 반면 Reference 타입은 이름과 같이 메모리 주..

  • format_list_bulleted Language
  • · 2024. 10. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
프로필사진

GIF YATTA! GIF

항상 쉽게 글을 쓰려고 노력합니다. 피드백 감사합니다. (꾸벅)

👀 About Me
  • Other blog
전체 카테고리
  • 분류 전체보기 N
    • Spring
    • Nest
    • Language
    • DB
    • Book N
    • 회고
    • Etc
최근 글
인기 글
최근 댓글
태그
  • #PostgresSQL
  • #Good
  • #Framework
  • #객사고
  • #book
  • #오브젝트
  • #object
  • #객체지향
  • #객체지향의사실과오해
  • #DB
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바