[AWS] RDS로 MySQL 배포하기
·
Deploy/AWS
RDS로 MySQL 데이터베이스를 배포하는 방법에 대해 포스팅 한 글입니다. https://hulrud.tistory.com/62 [AWS] EC2 인스턴스와 연결하여 RDS로 DB 배포하기 안녕하세요! 이 글에서는 RDS가 무엇인지, 또 EC2 인스턴스와 RDS를 연동하는 방법에 대해 소개하고 있습니다. RDS란? RDS(Relational Database Service)란 AWS클라우드에서 관계형 데이터베이스를 더 쉽게 설 hulrud.tistory.com 본격적으로 글을 시작하기 앞서, 먼저 쓴 배포 방법 글은 EC2 인스턴스를 만든 후 데이터베이스를 배포하는 방법으로 설명했었는데요. 이번 글에서는 EC2 인스턴스와 관계 없이 데이터베이스만 따로 배포하는 방법에 대해 설명하고자 합니다. 인스턴스 만..
[Spring] MappedSuperclass 사용하기
·
Framework/SpringBoot
MappedSuperclass에 대해 정리한 글입니다. @MappedSuperclass란 @MappedSuperclass는 JPA에서 엔티티 클래스들 간에 공통된 매핑 정보를 재사용하기 위한 어노테이션입니다. 이 어노테이션을 사용하면 여러 엔티티 클래스에서 동일한 매핑 정보를 공유하여 코드의 중복을 줄여줍니다. 가령 createdAt, updatedAt 등 모든 엔티티에 공통적으로 포함되는 필드가 있다면 @MappedSuperclass를 이용하여 공통된 필드를 포함하는 클래스를 다른 엔티티들이 상속받도록 하면 됩니다. @MappedSuperclass 사용 아래 BaseEntity가 @MappedSuperclass로 지정되어있습니다. import lombok.AccessLevel; import lombok..
[MongoDB] 몽고디비 데이터 관계 모델링 Reference VS Embedding
·
DB/MongoDB
몽고디비에서 관계 매핑을 위해 사용되는 참조와 임베딩 방식의 특징과 차이를 정리한 글입니다. 참조 (Reference) 몽고디비에서는 관계 매핑을 위해 참조(Reference)와 임베딩(Embedding) 방식을 사용합니다. 먼저, 참조 방식에 대해 알아보겠습니다. 참조는 다른 컬렉션의 문서를 참조하는 방식입니다. 가령, 'users'와 'teams'라는 두 개의 컬렉션이 있을 때 users와 teams는 n:1 관계입니다. (유저는 무조건 하나의 팀에 속해있고, 팀은 여러 유저가 소속되어 있는 관계) 이 관계를 참조 방식으로 매핑하여 나타낸 예시입니다. // users 컬렉션 { "_id": ObjectId("user_id"), "username": "example_user", "email": "use..
[IntelliJ][Spring] UnsatisfiedDependencyException 해결하기
·
IDE/IntelliJ
에러 메세지 UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': 발생 상황 엔티티를 조금 수정하고 실행시켰는데 저런 에러가 나더라고요? 에러를 읽어보면 JDBC 드라이버 클래스를 못찾는다고 하는데... application.properties에 드라이버는 잘 있습니다. 의존성도 삭제한 적이 없고요 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 의존성 문제인 것 같아 빌드를 clean하고 다시 해봤습니다. 해결 방법 우측 코끼리 아이콘 (gradle) ..
[Node.js] dotenv로 환경변수 관리하기
·
Framework/Node.js
.env 파일로 환경변수를 관리하는 방법에 대해 소개하는 글입니다. 패키지 설치 아래 명령을 실행하여 dotenv 패키지를 설치합니다. npm install dotenv .env 파일 만들기 .env 파일에서 환경 변수를 초기화 하겠습니다. 확장자 없이 .env라는 파일을 만들어주세요. 그리고 변수로 지정할 값을 아래처럼 작성합니다. key=value 형태로 작성하며 문장 끝에 세미콜론을 작성하지 않습니다. DB_HOST=localhost DB_USER=root DB_PASSWORD=1234 DB_DATABASE=mydatabase 변수 불러오기 require('dotenv').config(); 불러 올 파일에 위 코드를 작성하면 됩니다. 그리고 변수를 사용할 땐 아래처럼 사용합니다. 이 때 위 코드가 ..
[JetbrainIDE] ES Lint Editor config 설정 비활성화 방법
·
IDE/IntelliJ
문제 상황 웹스톰에서 NestJS 애플리케이션을 만드는 중 갑자기 이런 경고 메세지가 보였습니다. 신택스 에러가 날 곳이 아닌데도 저렇게 메세지가 보이더라고요. 비활성화 방법 Setting > Editor > Code Style에서 Enable Editor Config support가 체크되어 있다면, 체크를 해제하시면 됩니다 그리고 Setting > Editor > Inspections에서 ES Lint 메세지가 발생한 언어에 체크를 해제하시고 OK를 누르면 더이상 ES Ling 경고가 보이지 않을 것입니다.
[NestJS] 내장 파이프(validationPipe)를 사용해서 유효성 검사하기
·
Framework/NestJS
Validation Pipe를 사용하여 유효성 검증을 하는 방법을 정리한 글입니다. 파이프란? NestJS에서 파이프는 HTTP 요청의 핸들러 전/후에 적용되는 중간 단계입니다. 파이프는 요청 데이터를 검증하거나 수정하거나, 응답을 가공하는 등의 역할을 수행하여 요청과 응답을 다룹니다. 가령 사용자가 회원가입을 할 때, 작성한 정보가 모두 유효한 값일 때 회원 가입을 할 수 있도록 하는 것과 같이 값의 유효성을 검사하는데에 파이프가 쓰이게 됩니다. 파이프는 NestJS에서 기본적으로 제공되는 몇 가지 내장 파이프와 사용자가 직접 만들어 사용할 수 있는 커스텀 파이프들이 있습니다. 이 글에서는 Validation Pipe를 사용하여 유효성 검사를 하는 예제에 대해 설명하고 있습니다. 패키지 설치 Valid..
[Git] refusing to merge unrelated histories 깃허브 push 가 안되는 경우 해결 방법
·
Git | Github
문제 상황 로컬 저장소의 커밋 내용들을 원격 저장소로 push 하기 전 pull을 할 때 아래와 같은 문구가 출력되며 pull이 되지 않았습니다. From https://github.com/... * branch main -> FETCH_HEAD fatal: refusing to merge unrelated histories 해결 방법 pull 할 떄 allow-unrelated-histories 옵션과 함께 pull 명령을 실행하니 정상적으로 잘 작동했습니다. git pull origin 브런치 --allow-unrelated-histories 이 명령을 실행하고 충돌이 난 파일을 잘 병합하고 add - commit - push 하였습니다. allow-unrelated-histories 옵션은 연관이 ..
[NestJS] NestJS 프로젝트 첫 시작
·
Framework/NestJS
📚 Nest.js 프로젝트를 만들고, 패키지에 대해 공부한 내용을 정리한 글입니다. 📣 참고 사항 1️⃣ node와 npm이 설치되어있는 것을 가정하고 진행합니다. 2️⃣ node 버전은 21.5.0, npm은 10.2.4버전 입니다 NestJS 프로젝트 시작하기 터미널에서 아래 명령어를 실행해 nest-cli를 설치합니다. @nest/cli는 NestJS에서 제공하는 Command Line Interface이므로 -g 옵션으로 설치하여 전역에서 사용할 수 있도록 해야합니다. npm install -g @nest/cli 새로운 NestJS 애플리케이션을 만드는 명령어입니다. . 은 현재 디렉토리에 만드는 것을 의미합니다. nest new . 디렉토리 경로를 입력해서 만들수도 있습니다. nest new 디..
[SpringBoot] 데이터베이스 스키마 자동 생성 옵션에 대해 알아보자 / spring.jpa.hibernate.ddl-auto
·
Framework/SpringBoot
spring.jpa.hibernate.ddl-auto에 대한 글입니다. application.properties 에서 데이터베이스 관련 속성으로 spring.jpa.hibernate.ddl-auto를 많이 보셨을겁니다. 이 글에서는 이 속성과 주요 값들에 대해 알아보겠습니다. spring.jpa.hibernate.ddl-auto spring.jpa.hibernate.ddl-auto는 스프링 부트 애플리케이션에서 하이버네이트(Hibernate)를 사용할 때, 데이터베이스 스키마를 자동으로 생성, 수정 또는 유지하도록 할 수 있는 속성입니다. 이 속성을 설정함으로써 Hibernate가 데이터베이스 스키마를 자동으로 처리할 수 있습니다. create create는 애플리케이션 실행 시에 스키마를 새로 생성합니..
[Node.js] 몽구스 사용해보기
·
Framework/Node.js
몽구스 사용법과 사용하면서 알게된 내용을 정리한 글입니다. MySQL에 시퀄라이즈가 있다면 몽고디비에는 몽구스(Mongoose)가 있죠! 노드 서버에서 몽고디비로 객체 모델링을 할 수 있는 라이브러리인 몽구스를 사용해봅시다 😁 📕 이 글을 읽기 전 📕 1️⃣ 몽구스를 사용할 node.js 프로젝트 폴더를 미리 만들어주세요! 패키지 설치 npm install express mongoose 익스프레스와 몽구스를 설치합니다. 몽고디비 연결하기 프로젝트 최상단에 app.js 파일을 만들겠습니다. 아래 코드를 app.js 파일에 작성해주세요 const express = require('express'); const mongoose = require('mongoose'); const app = express(); ..
Arc 브라우저 일주일 사용후기
·
ETC
생산성을 높여준다는 arc 브라우저를 일주일간 사용하고 느낀 점을 자유롭게 쓴 글입니다. Arc를 다운로드하게 된 이유 어느날 유튜브에서 우연히 이 영상을 보게 되었습니다... https://youtu.be/TffkMbgsE2E?si=xIrhc9H0GfT2eBsP 이 영상을 보고 아크에 대해서 "굉장히 이쁜... 브라우저네..." 라고 생각을 했습니다. 그냥... 이쁘네... 음 사실 저는 생산성이라는 것은 쓰는 사람의 능력에 달렸다고 생각하는 사람이거든요. (당연한 소리) 똑똑하게 생산할 수 있는 사람들이 요구하는 기능들을 뒷받침하는 브라우저로 보이긴 하지만 저처럼 좀 멍청한 사람들도 "쉬운방법으로 똑똑한 척을 할 수 있을까?" 라는 의문이 들기도 했습니다. 그래서 의문을 해소하기 위해!! 아크를 직접..