본문 바로가기

전체 글

DB 에 있어야하는 데이터인데 없는 경우, 에러 코드는 무엇을 써야 할까? (지하철에서 폰으로 막 끄적이는거라 얘 뭐라는거지? 할 수 있음 주의)개발자로써 항상 고민되는 사항.. 에러 코드, 에러 메세지를 어떻게 쓸 것인가...?  에러의 책임이 명확한 경우는 에러 코드 처리가 쉽다.클라 잘못인 경우 400,404쿼리에서 오류난 경우 500..  그런데 기본적으로 있어야 하는 필수 데이터가 없는 경우 어떻게 응답을 줘야 할까 ?_?  뭐 예를 들어..요금제 플랜 데이터가 비어 있거나 삭제된 경우임.// 기본적으로 DB 에 저장되어 있어야함Plan: { id: "premium", price: 15000 }이 에러케이스의 경우 api 응답 코드는 심플하게INTERNAL_SERVER_ERROR 라고만 보내줌클라 입장에선 DB 값이 무결하지 않아서 에러가 났든~ 서버 코드 로직 단에서.. 더보기
[에러] Cannot find module 'ts-node/register' 해결법 문제 상황WebStorm 에서 단일 TypeScript 파일을 디버그 모드 실행시키려 하는데,Uncaught Error: Cannot find module 'ts-node/register' 오류가 발생했습니다.(디버그 모드 세팅 시, 참고한 WebStorm 공식 문서)  해결 방법ts-node 가 apps/api/node_modules 아래에 설치되어 있으므로,Node parameters 에서 ts-node/register 을 프로젝트 구조에 맞게 상대 경로 사용합니다. 더보기
AWS Lightsail 을 이용하여 서버 배포해보기 - (2) 로드밸런서, SSL인증서 생성, 도메인 사기 로드 밸런서를 써야하는 이유 이유 1. https 처리 (인증서)로드 밸런서도 결국 내부적으로는 EC2 인데요. 로드 밸런서가 http(80), https(443) 으로 들어오는 요청을 리스닝하게 설정해줄겁니다. (* 참고로 443 포트는 그냥 열어준다고 되는게 아니라 인증서가 필요합니다) 참고로 로드 밸런서와 lightsail 을 통해 만든 VM 의 통신은 내부망에서 이루어집니다.같은 망을 사용하기 때문에, 로드 밸런서 -> VM 으로의 요청은 443 포트로 처리할 필요 없고, 80 포트로 처리하면 됩니다. 이유 2. VM 에 부여된 public ip 는 dynamic 하므로 언제든 바뀔 수 있음이 public ip 는 평생 저 ip 인게 아니라, 서버를 중단했다가 다시 재시작하면 ip 가 변경됩니다... 더보기
AWS Lightsail 을 이용하여 서버 배포해보기 - (1) VM 생성, 소스 배포 AWS lightsail 선택 이유AWS lightsail 의 좋은 점은 원하는 사양을 선택하면 한 달에 딱 이만큼의 돈이 나간다 하는게 정해져 있다는 것입니다. (다만, AWS lightsail 을 이용해서 가상머신을 생성하고 단 30분만에 없애더라도 똑같이 한 달치 비용이 나갑니다)  aws lightsail 이 ec2 보다 좋은 점은 초기 세팅 시 비교적 쉽다라는 것입니다. 저도 이번 실습을 통해 직접 해봤는데, 더 쉬웠던 것 같아요. route53, loadbalancer 까지 한 콘솔에 더 모여있는 점도 좋았습니다.  Pre-requisite (사전 준비물)본 실습을 따라오기 위해서는 아래 사항이 준비되어 있어야 합니다. 프로젝트 소스코드소스코드가 올라가 있는 GitHub 레포지토리  소스코드에.. 더보기
[leetcode] 221. Maximal Square 문제 링크: https://leetcode.com/problems/maximal-square/description/ 1로만 채워진 가장 큰 정사각형을 구하는 문제이다. Approach 1: Brute Force 가장 단순한 방법은 matrix 의 모든 cell 을 순회하며, 각 cell 이 형성할 수 있는 가장 큰 정사각형을 구하는 방식이다. 방법은 아래와 같다. 1. matrix 를 순회하며, 각 cell 을 left uppermost 로 하는 가장 큰 정사각형을 구한다. 2. cell 이 1이면 다음 계산을 수행한다. - 일시적으로 row, col 을 1씩 증가 시켜 해당 row 와 col 에 속한 cell 들이 전부 1인지 확인한다. - 전부 1이면, 대각선 아래방향으로 이동한다. - 0이 하나라도.. 더보기
[leetcode] 815. Bus Routes 문제 링크 LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 최소 버스 수를 구하는 문제입니다. Tip > 문제에 "최소" 라는 말이 있다면, BFS 나 Heap 을 후보군으로 떠올려 봅시다. Approach : BFS 사용할 샘플 예제는 아래와 같습니다. Input: routes = [[1,2,7],[3,6,7]], source = 1, target = 6 A.. 더보기
[leetcode] 873. Length of Longest Fibonacci Subsequence 문제 링크 LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 배열의 Subsequence 중 Fibonacci 한 배열의 최장 길이를 구하는 문제이다. Fibonacci 라 하면, 3개의 수를 가지고 규칙이 성립되는 지 확인해야 하니까 어떻게 코드를 짜야할 지 막막할 수 있다. (3개의 수라고 말한 이유는 a+b=c 가 성립되면, a,b,c 이 3개의 수.. 더보기
[leetcode] 870. Advantage Shuffle https://leetcode.com/problems/advantage-shuffle/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 nums1 배열에서 조건에 맞는 permutation 을 찾아 반환하는 문제이다. 사용할 샘플 예제는 아래와 같다. nums1 = [12, 24, 8, 32], nums2 = [13, 25, 32,.. 더보기