목록분류 전체보기 (333)
민프
요즘 프로젝트를 진행하면서 한 가지 중요한 DB 설계 포인트를 마주했다. 바로 “결제(Payments)와 주문(Orders)의 관계를 어떻게 정의할 것인가?” 였다. 처음엔 단순했다. 결제는 주문을 하나 처리하면 되겠지 싶었다. 하지만, 실제 비즈니스 요구사항이 점점 늘어나면서 단일 필드로 연결하는 방식의 한계를 절실히 느꼈다. 그래서 도입하게 된 게 바로 중간 테이블(Bridge Table, Mapping Table) 이다. 오늘은 그 이유와 실전 적용 과정을 실제 테이블 설계 예시를 통해 소개한다. 문제 정의 - 하나의 결제에 여러 주문?예시payments (table)- payment_id (PK)- order_id (FK) payments 테이블에서 order_id를 외래키로 직접 참조하는 방..

1. 사전 준비NCP - Server, VPC2. 공인 IP 설정Server에 적용 할 공인 IP를 생성합니다. 3. ACG 설정Server에 적용되어있는 ACG를 설정합니다.(각 포트 등..)4. Root 비밀번호 받기서버를 생성하면서 받은 pem키로 비밀번호를 받으면 됩니다.(서버 선택 -> 서버 관리 및 설정 변경 -> 관리자 비밀번호 확인) 5. VScode에서 서버 접근 (Remote-SSH)Host {서버 별명} HostName {포트포워딩에서 확인한 서버 접속용 공인 IP} Port {포트포워딩에서 확인한 서버 접속용 외부 포트} 접근 성공 6. Container Reistry 생성 방법6-1. Object Storage 이용 신청 및 버킷 생성6-2 Container Regi..

1. 서버 인스턴스 생성 (NCP 콘솔) 1-1. 서버 설정- Network interface는 추가만 눌러주면 된다. 1-2. Pubilc Subnet 생성- IP 주소 범위는 VPC IP 범위 안에서 사용해주면 된다.예를 들어서) VPC가 10.0.0.0/16이면 → 10.0.2.0/24 같이 지정(이미 DB에 10.0.1.0/24 같은 걸 썼다면 중복되지 않게!)- internet Gateway는 Public이니깐 Y 1-3. 스토리지 설정KVM의 mi1-g3(micro)서버의 기본스토리지는 CB타입으로 10GB까지 무료 제공됩니다. (10GB이상은 스토리지 비용이 발생합니다)이라고 나와있으니 여기에 맞게 설정해주겠습니다. 1-4. 인증키새롭게 인증키를 발급해서 잘 저장해둡시다.1-5. 네..

이번 포스팅에서는 Nestjs에서 NCP - Simple & Easy Notification Service 을 이용해서 SMS을 보내보도록 하겠습니다. 사전 준비 목록NAVER CLOUD Plaform 계정 생성결제 수단 등록 (마이페이지 -> 결제관리 -> 결제수단 -> 결제 수단 등록)인증키 관리 메뉴로 이동 후 신규 API 인증키 생성 버튼을 눌러 키를 발급 받는다. 1. VPC - Simple & Easy Notification Service - 프로젝트 생성https://console.ncloud.com/sens/project 위 링크에 접근하여 프로젝트 생성을 눌러서 프로젝트 생성을 해줍니다.저는 SMS, Biz Message둘 다 사용할 예정이라서 둘 다 체크하고 만들겠습니다. 2. 발신번..
1. 에러 메세지ERROR [ExceptionsHandler] Error: secretOrPrivateKey must have a value 2. 문제 정의JWT 토큰을 서명(sign)하려고 할 때, 필요한 secretOrPrivateKey가 존재하지 않아서 발생하는 오류이다. 3. 원인 분석env 파일에 JWT_SECRET 값이 정상적으로 불러오지 않았거나,JwtModule.registerAsync(...)에서 secret 값을 설정하지 않았거나,설정했지만 해당 모듈에서 제대로 로딩되지 않아서 발생한 문제이다.결정적으로 사용하는 곳(auth)에서 JwtModule.registerAsync를 등록해줘야하는데 app.module.ts에다 설정을 해놓고 auth.module.ts에는 설정해주지 않아서 문제가..

이전 포스팅에서 [Nest.js] NestJS란? | Node.js와의 차이점 및 비교 | NestJS 설치 | EC2 메모리 스왑1. NestJS란 무엇일까?A progressive Node.js framework for building efficient, reliable and scalable server-side applications.효율적이고 신뢰할 수 있으며 확장 가능한 서버 측 애플리케이션을 구축하기 위한 진보적인 Nodeminf.tistory.comNestjs는 Express위에서 만들어졌고, 구조는 Angular와 매우 비슷한 의존성 주입 기반의 구조를 가지고 있다고 하였습니다. 구조에서 핵심 구성 요소인 Module, Controller, Service가 각각 무엇을 하는지, 어떻게 서..

네이버 클라우드 플랫폼에서는 CloudDB for MySQL 서버에 접근하기 위한 방법으로는 아래와 같이 3가지 방식을 제공하고 있습니다.네이버 클라우드 플랫폼 Server에서 Privatte 도메인을 이용하여 접근SSL VPN 상품을 이용하여 접근Public 도메인을 이용하여 접근먼저 1번을 해보겠습니다. 1. Services-> Database -> Cloud DB for MySQL 2. DB 생성 2-1. 서버 설정 - subnet은 private으로 만든걸 넣어준다. - DB Server이름 -> 물리적/가상 머신 하나의 이름 (클러스터 구성 시 하나의 인스턴스)- DB 서비스 이름 - 하나의 서비스 단위로 관리되는 DB 인스턴스 묶음 - DB 접속할 때도 이 이름이 사용됨 (DB 호스트..

1. NCP - VPC 접근 - VPC 생성 클릭 2. VPC 생성이름, IP 주소 범위 (이전 포스팅 참고), 유형 선택 3. Subnet 생성VPC를 생성했다면 이제 서브넷을 생성해야합니다. Subnet 이름: ...IP 주소 범위: 10.0.1.0/24Internet Gateway 전용 여부: N (Private)Private이 필요하시면 'N'으로 설정해주시면 됩니다. (ex. DB)용도: 일반 4. 결과

이전 포스팅에서는 CICD를 하지 않고 nestjs를 배포하는 것을 해보았습니다.https://minf.tistory.com/entry/AWSEC2-EC2%EC%97%90-Nestjs-ECR%EC%A0%81%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0#google_vignette [AWS][EC2] EC2 + Docker + ECR로 Nestjs 어플리케이션 배포하기 (feat. WARNING: The requested image's platform (linux/ar준비물 - Docker- nestjs Docker Image- IAM (AccessKey, Secret Accesskey)- ECR - EC2 과정- 로컬에서 Nestjs Docker image 생성- ECR에 PUSH- ..

준비물 - Docker- nestjs Docker Image- IAM (AccessKey, Secret Accesskey)- ECR - EC2 과정- 로컬에서 Nestjs Docker image 생성- ECR에 PUSH- EC2(ubuntu)에 적용 1. EC2(ubuntu) - Docker 설치 (SSH) sudo apt update -y sudo apt install -y docker.io sudo systemctl start docker sudo usermod -aG docker $USER 설치확인 docker --version2. EC2 - AWS CLI 설치순차적으로 진행curl "https://awscli.amazonaws.com/awscli-exe-linux-x8..