profile
초보 개발자의 블로그입니다
post-thumbnail

인프라 아키텍처 소개

ECS 배포 방식에 대해 설명하기 전에 프로젝트의 인프라 아키텍처를 살펴보겠습니다. 프로젝트는 React로 구현된 FrontEnd와 NestJS로 구현된 BackEnd로 구성되어 있으며, 두 애플리케이션 모두 AWS ECS를 통해 컨테이너화하여 배포하였습니다.ECS:

2024년 10월 30일
·
0개의 댓글
·
post-thumbnail

ECS(Elastic Container Service)란?

ECS는 컨테이너화된 애플리케이션을 쉽게 배포, 관리 및 확장할 수 있게 해주는 완전관리형 컨테이너 오케스트레이션 서비스입니다.쉽게 말하자면, 개발자는 애플리케이션 코드를 Docker 이미지로 만들어서 ECS에 올리기만 하면 컨테이너 운영에 필요한 복잡한 작업들(컨테이

2024년 10월 25일
·
0개의 댓글
·
post-thumbnail

[Axios] RefreshToken 만료 시 에러 처리 개선하기

이전 글에서 토큰 재발급 중복 요청 문제를 해결했지만, 새로운 문제가 발생했습니다. RefreshToken이 만료되었을 때 예상했던 것과 달리 에러 처리가 되지 않았습니다.예상했던 동작은 아래와 같습니다:RefreshToken으로 새로운 AccessToken을 요청할

2024년 9월 30일
·
0개의 댓글
·
post-thumbnail

[Axios] 토큰 재발급 중복 요청 문제 해결

클라이언트는 Axios Interceptors를 이용하여 모든 요청을 가로채 AccessToken을 Header에 추가합니다. AccessToken이 만료된다면, Cookie에 저장된 RefreshToken을 이용하여 새로운 AccessToken을 발급 받습니다.이러한

2024년 9월 27일
·
0개의 댓글
·
post-thumbnail

[Docker] No space left on device 에러 해결

MariaDB 컨테이너를 Docker COmpose로 실행하려 했으나, 아래와 같은 에러 메시지와 함께 실행되지 않았습니다.우선 Docker VM에 할당된 디스크 공간이 어떻게 사용중인지 확인해보겠습니다.확인해보니 Docker VM에 할당된 디스크 공간이 모두 사용 중

2024년 9월 4일
·
0개의 댓글
·
post-thumbnail

TypeORM 엔티티 업데이트 시 발생한 id 타입 불일치 문제 해결

프로젝트 진행 중 메인 퀘스트 업데이트 시, 1:N 관계로 설정된 사이드 퀘스트도 함께 업데이트해야만 한다그러나 위와 같은 SQL문을 통해 사이드 퀘스트에서 quest_id값이 null로 업데이트되는 문제가 발생했다디버깅을 통해 원인을 파악한 결과, id값의 타입을 b

2024년 7월 29일
·
0개의 댓글
·
post-thumbnail

문자열을 Date 객체로 변환하기

클라이언트로부터 퀘스트 시작 날짜와 종료 날짜를 2024-07-25와 같은 문자열 형태로 받을 때, 이를 데이터베이스에 저장하기 위해 Date 객체로 변환해줄 필요가 있었다. 이 과정에서 class-transformer의 @Transform 데코레이터를 사용하여 데이터

2024년 7월 25일
·
0개의 댓글
·
post-thumbnail

가상 머신과 도커

가상 머신이란, 컴퓨터 안에서 소프트웨어로 만들어진 가상의 컴퓨터이다. 이런 가상의 컴퓨터가 필요한 이유는 뭘까?예를 들어, 호스트 컴퓨터의 운영 체제(Host OS)는 Linux 기반인데, Windows에서만 동작하는 게임이 존재한다고 해보자이 게임을 실행하기 위해

2024년 7월 21일
·
0개의 댓글
·
post-thumbnail

NestJS에서 AOP를 활용하여 트랜잭션 관리 개선하기

기존에 TypeORM 라이브러리에서 트랜잭션을 적용하던 방식은 아래와 같다위 코드처럼 기존의 트랜잭션 사용 방식은 해당 메서드의 크기가 커질 수 있었고, try-catch 절의 비즈니스 로직을 한 눈에 파악하기 어려웠다.그래서 AOP를 이용하여 트랜잭션과 관련된 로직을

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

TypeORM 마이그레이션

마이그레이션이 필요한 이유 기존 프로젝트에서는 synchronize: true 설정을 통해서 데이터베이스 스키마를 설정하였다. 문제는 위와 같은 설정을 한다면 애플리케이션이 시작될 때 TypeORM이 엔티티를 검사하고, 현재 데이터베이스 스키마와 비교한 후, 변경된

2024년 6월 18일
·
0개의 댓글
·
post-thumbnail

[프로그래머스] 최종 프로젝트 6~7주차 회고

앞으로 최종 프로젝트를 진행하면서 겪었던 일들을 기록하고자 한다기존의 트랜잭션 방식은 트랜잭션이 필요한 메서드마다 QueryRunner를 이용하여 하나의 데이터베이스의 연결을 생성하고 컨트롤하였다. 그러다보니, 트랜잭션이 필요한 메서드마다 QueryRunner를 이용해

2024년 6월 10일
·
0개의 댓글
·
post-thumbnail

[프로그래머스] 최종 프로젝트 5주차 회고

앞으로 최종 프로젝트를 진행하면서 겪었던 일들을 기록하고자 한다위의 코드는 생성된 Kubernetes pod의 정보인데, image를 보면 정상적으로 ECR의 이미지가 적용된 것을 확인할 수 있다.즉, ECR의 도커 이미지를 제대로 가져와서 배포했다는 소리다. 그러나

2024년 5월 25일
·
0개의 댓글
·
post-thumbnail

[프로그래머스]최종 프로젝트 3~4주차 회고

앞으로 최종 프로젝트를 진행하면서 겪었던 일들을 기록하고자 한다백엔드 개발자가 나 포함 2명이다 보니, 생각보다 담당해야 할 작업들이 많았다. 3~4주차에 그 작업들을 진행함에 있어서, 각 기술을 선택한 배경과 기술들에 대해서 설명해보고자 한다.개발을 진행하다 보니,

2024년 5월 16일
·
0개의 댓글
·
post-thumbnail

[프로그래머스]최종 프로젝트 2주차

앞으로 최종 프로젝트를 진행하면서 겪었던 일들을 기록하여 회고하고자 한다드디어 업무를 분담하여 기능 구현을 시작하게 되었다. 우리팀의 백엔드 개발자는 총 3명이었는데, 그 중 한명이 취직을 하게되어 이제 2명이 백엔드 서버를 개발하게 되었다. 팀 인원이 줄어든 만큼,

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

[프로그래머스]최종 프로젝트 1주차

앞으로 최종 프로젝트를 진행하면서 겪었던 일들을 기록하여 회고하고자 한다"만약 인생이 게임처럼 내 성장을 수치로 확인할 수 있다면 어떨까?" 라는 생각을 오랫동안 해왔다. 이러한 주제에 대해서 팀원들에게 제안했을 때, 팀원 모두 흥미를 느꼈고, 긍정적인 반응을 보여주었

2024년 4월 28일
·
0개의 댓글
·
post-thumbnail

[TypeScript-Express]MySQL2 Connection Pool 사용하기

이전에는 JavaScript를 이용하여 Express 기반의 백엔드 서버를 개발하였다. 이번 프로젝트에서는 TypeScript를 도입하여 서버를 만들어보려한다. 그 중 데이터베이스와의 연결을 최적화하기 위해 커넥션 풀(Connection Pool)을 사용한 경험에 대해

2024년 3월 25일
·
0개의 댓글
·
post-thumbnail

2024.03.21 TIL

이 문서는 데브코스 교육 과정 중 학습한 주요 주제들에 대해 이해를 돕고 복습용도로 사용하기 위해 질문과 답변 형식으로 정리되었습니다.Q-1) 아키텍쳐란 무엇인가?Q-2) 아키텍쳐가 중요한 이유는?Q-1) 서비스(Service)란 무엇인가?Q-2) 서비스의 종류 어떤

2024년 3월 21일
·
0개의 댓글
·
post-thumbnail

2024.03.20 TIL

이 문서는 데브코스 교육 과정 중 학습한 주요 주제들에 대해 이해를 돕고 복습용도로 사용하기 위해 질문과 답변 형식으로 정리되었습니다.Q-1) 폭포수 방법론이란 무엇이고 장단점은?Q-2) 애자일 방법론이란 무엇이고 장단점은?Q-3) 폭포수 방법론과 애자일 방법론을 각각

2024년 3월 20일
·
0개의 댓글
·
post-thumbnail

Express TypeScript로 환경 설정

Node.js 프로젝트를 초기화하는 데 사용package.json 파일을 자동으로 생성한다이 파일은 프로젝트의 설정과 의존성 관리에 중요한 역할을 한다\-y flag를 사용하여 사용자의 추가적인 입력 없이 기본값을 사용하여 pakage.json 파일을 생성한다ts-no

2024년 3월 17일
·
0개의 댓글
·
post-thumbnail

2024.03.13 TIL

Q-1) 외부에서 컨테이너에 접속할 때, 접속되지 않는 이유는?Q-2) 외부에서 컨테이너에 접속하기 위해서 어떻게 해야하나?Q-3) 바인드 마운트란 무엇인가?Q-4) 볼륨이란 무엇인가?Q-5) 바인드 마운트와 볼륨의 차이는 무엇인가?Q-6) 쿠버네티스란 무엇인가?Q-7

2024년 3월 13일
·
0개의 댓글
·