profile
개발이 즐거운 백엔드 개발자

(AWS) AWS Lightsail 메모리 이슈

증상: nest build 중 아래와 같은 OOM 오류로 프로세스 종료환경: AWS Lightsail (RAM 512MB / vCPU 2 / SSD 20GB)원인: TypeScript 타입체크+트랜스파일 단계에서 Node.js 힙 사용량이 시스템 메모리 한도(≈512M

2025년 9월 4일
·
0개의 댓글
·

회사에서 사용했던 방법 - 코드 우선

백엔드는 코드 우선(Code-First) 방식으로 개발하고, 완료된 API를 Swagger에 반영하는 형태로 진행.프론트엔드(Flutter)는 UI 화면을 먼저 제작한 뒤, 각 페이지에서 필요한 데이터는 텍스트 하드코딩으로 채워 넣음.이후 실제 API가 나오면 하드코딩

2025년 8월 28일
·
0개의 댓글
·
post-thumbnail

(AWS) S3 Public Bucket 문제점

누구나 접근 가능: URL만 알면 로그인/권한 검증 없이 모든 사람이 이미지에 접근할 수 있음.데이터 유출: 리뷰 이미지에 개인정보·민감한 데이터가 포함될 경우, 외부 유출 위험이 큼.링크 유출 회수 불가: 한 번 노출된 퍼블릭 URL은 삭제 전까지 계속 유효 → 접근

2025년 8월 18일
·
0개의 댓글
·
post-thumbnail

(NestJs) DTO 폴더 리팩토링

기존 프로젝트에서는 각 도메인별로 하나의 DTO만 두며 사용하고 있었다.하나의 파일에 Query, Path, Body, Response, 내부용 DTO까지 모두 몰아 넣다 보니 변경 사유가 여러 개가 된다. 그 결과 수정 범위가 불필요하게 커지고, 코드 리뷰도 비효율적

2025년 8월 17일
·
0개의 댓글
·
post-thumbnail

(Swagger) NestJS Swagger 수동 작성에서 데코레이터 기반 자동화로 전환하기

https://docs.nestjs.com/openapi/introduction현재 Swagger 문서를 직접 생성해서 수동으로 작성하고 있었음.swagger 문서 생성 및 외부 문서 병합하여 사용 중. swaggerDocs.paths와 기존 document.

2025년 8월 8일
·
0개의 댓글
·
post-thumbnail

(RESTful) RESTful API로 수정하기

소품샵 정보를 제공하고, 리뷰·운영시간·상품 등을 포함한 상세 데이터를 보여주는 서비스https://soso-client-soso-web.vercel.app/DELETE /user/:uuid: 사용자 삭제GET /user/nickname/:nickName: 닉

2025년 8월 8일
·
0개의 댓글
·
post-thumbnail

(AWS) Let's encrypt 인증서 재발급

어느 날 서버 500 에러가 나더니, 위처럼 오류가 발생했다.이유를 찾던 도중 SSL 인증서(HTTPS 인증서)의 유효 기간 또는 날짜 설정에 관련된 문제라는 글을 발견했다.해당 상태는 SSL 인증서의 유효 기간이 만료되어 생기는 문제였다. 처음에 인증서를 어디에 두

2025년 8월 1일
·
0개의 댓글
·

(TypeORM) TypeORM - Repository

https://typeorm.io/working-with-repositoryTypeORM에서 특정 엔티티(User 등) 에 대해 데이터베이스 작업(조회, 저장, 삭제 등)을 수행하는 전용 도구EntityManager와 유사하지만, 하나의 엔티티에만 집중하도록

2025년 5월 11일
·
0개의 댓글
·

(TypeORM) TypeORM - EntityManager

참고 문서 https://typeorm.io/working-with-entity-manager EntityManager란?

2025년 5월 11일
·
0개의 댓글
·

(TypeORM) TypeORM - Relations

https://typeorm.io/relations일대일 (One-to-One)한 엔티티가 다른 엔티티와 1:1로 매핑됩니다. 예를 들어, 한 사용자가 하나의 프로필을 가질 수 있다.일대다 / 다대일 (One-to-Many / Many-to-One)한 엔티티가

2025년 5월 10일
·
0개의 댓글
·

(TypeORM) TypeORM - View Entity

https://typeorm.io/view-entitiesDB View를 표현하는 읽기 전용 엔티티@ViewEntity() 데코레이터로 정의실제 테이블이 아니라 SQL SELECT 문을 기반으로 구성됨또는 QueryBuilder로도 표현 가능:중요: where

2025년 5월 9일
·
0개의 댓글
·

(TypeORM) TypeORM - Embedded Entities

https://typeorm.io/embedded-entities상속(inheritance) 대신 구성(composition)을 활용하여 코드 중복을 줄이는 강력한 방법여러 엔티티(User, Employee, Student 등)가 동일한 속성(firstName

2025년 5월 9일
·
0개의 댓글
·

(TypeORM) TypeORM - Entity

https://typeorm.io/entitiesEntity는 데이터베이스 테이블에 매핑되는 클래스이다.즉, TypeORM에서는 User와 같은 클래스를 만들고 여기에 데코레이터(@Entity, @Column 등)를 붙여주면, 그것이 곧 데이터베이스의 하나의

2025년 5월 8일
·
0개의 댓글
·

(NestJS) Nest JS - Exception Filters

https://docs.nestjs.com/exception-filtersNestJS에서 예외 발생 시 에러 응답의 형식과 처리 방식을 개발자가 직접 제어할 수 있도록 해주는 전용 에러 처리 컴포넌트이다.NestJS 애플리케이션 전반에서 발생하는 예외를 가로채

2025년 5월 8일
·
0개의 댓글
·
post-thumbnail

(AWS) AWS Lightsail Nest Js 인스턴스 CI/CD

https://velog.io/@ckdwns9121/Github-Action을-이용해-AWS-Lightsail-CICD-파이프라인-구축하기-1편https://velog.io/@ckdwns9121/Github-Action을-이용해-AWS-Lightsai

2025년 5월 8일
·
0개의 댓글
·
post-thumbnail

(AWS) AWS Lightsail SSH 접속

SSH key > Create custom key 선택다운 받은 키는 원하는 곳에 위치시키기 (Desktop, ssh 등)아래 예시는 Desktop에 위치시킴권한 문제가 발생할 수 있기 때문에 chmod 400 your-key.pem 로 권한 변경접속된 상태

2025년 5월 8일
·
0개의 댓글
·
post-thumbnail

(NestJs) NestJs - Module

https://docs.nestjs.com/modules@Module() 데코레이터로 정의된 클래스이며, NestJS에서 어플리케이션을 구조화하고 관리하는 기본 단위이다.모든 NestJS 앱은 최소한 하나의 루트 모듈(AppModule) 을 가진다.모듈은 pr

2025년 5월 7일
·
0개의 댓글
·
post-thumbnail

(NestJs) NestJs - Provider

서비스, 리포지토리, 팩토리, 헬퍼와 같은 많은 기본 Nest 클래스이다.Provider는 종속성으로 주입될 수 있어 객체가 서로 다양한 관계를 형성할 수 있다. @Injectable()를 추가하면 NestJS가 해당 클래스를 "의존성 주입 컨테이너(DI)"에서 관리할

2025년 5월 7일
·
0개의 댓글
·

(TypeORM) TypeORM - Getting Start

https://typeorm.io/해당 글은 NestJS 프레임워크를 기반으로 설명합니다.Database는 MySQL을 기준으로 합니다.TypeORM + DB 드라이버 설치TypeORM 설정

2025년 5월 6일
·
0개의 댓글
·
post-thumbnail

(AWS) S3 생성 및 권한 설정

참고 블로그 https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-S3-%EB%B2%84%ED%82%B7-%EC%83%9D%EC%84%B1-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%8B%A4%EC%A0%84-%EA%B5%

2025년 5월 6일
·
0개의 댓글
·