문제점Cart에 갯수가 담기지 않는 현상이 발생했다.시도해본 것model/cart-item에 들어가서 sequelize.define을 확인해결중간 테이블인 CartItem에 quantity가 빠져있었다.알게된 점Cart와 Product의 중간 테이블인 CartItem을
문제점form-select의 값을 가져와야함시도해본것console.log값을 class로 뽑아보려했음, form-select의 값들이 리스트 값이라고 생각해서 인덱스로 값을 찾아보려고 했음해결₩₩₩javascript// console.log $('₩₩₩알게된점 form
문제점라벨명이 운동명인 아코디언이 삭제되지 않음시도해본것db.user.delete_one({'label':'운동명'})사용해결POST요청을 따로 분리해서 보내야했다. 같은 ajax안에서 제거 요청을 보냈던 것이 잘못알게된점api를 만들때 사용 용도에따라 적절하게 나누자
문제점깃사용시 non-fast-forward오류 및 commit 실패 오류가 발생함시도해본것새로운 프로젝트 생성해서 처음부터 다시해보기, git init, git remote add origin, git push origin main, 커밋 불가능한 로컬 브랜치, 원격
문제점mongodb에 저장되어있는 특정 쿼리를 사용하기위해 \_ id를 꺼내야 하는데 value값이 ObjectId로 감싸져있어서 json방식으로 꺼낼 수 없다.시도해본것list(db.user.find({},{ id : False}))일 때 id가 ObjectId를
문제점for문으로 생성되는 accodion안에 <input ... id="Input_comment${i}"> id에 i를 주었음에도 불구하고 값이 고정되어 있어서 입력 버튼을 눌렀을때 0번째 버튼만 작동한다.시도해본것을 주고 hidden input의 id를 가져와
git initgit clone 주소git remote add origin 주소내가 생각하는 깃 오류 없이 사용하기생각이 안나면 무조건 git branch -a 해서 로컬 branch와 원격 branch를 본다가급적 하나의 파일을 두 명 이상이 같이 수정하는일은 피한다
git checkout 과 git checkout -b는 쓰임이 다르다.원격에 feature/desk가 존재하지만, 로컬에는 feature/desk라는 이름의 브랜치가 존재하지 않을 때 git checkout을 사용하면 원격을 추적하는 feature/desk가 바로 생
문제mongodb ObjectId 활용과 git 사용법에 관해서 어려움이 있었다. mongodb는 OBjectId를 활용하려고 할 때 쿼리 안에 자동으로 생성되는 ObjectId가 json 문법으로 디코딩되지 않아서 어려움이 있었고 git은 협업하려고 할 때 머리속에
문제카트에 담은 물건들을 Orders로 넘길때 original: Error: Unknown column 'products->orderItem.quantity' in 'field list' 오류가 발생함시도해본것Orders에 관련된 모델과 app.js view/shop/
문제 설명명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를
매개변수 기본값을 설정해보자 함수 호출 시 매개변수에 인수를 전달하지 않으면 그 값은 undefined가 된다. 매개변수에 값을 전달하지 않아도 그 값이 undefined가 되지 않게 하려면 함수를 선언할 때 =를 사용해 '기본값(default value)'을 설정해
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(\*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.row는 b의 숫자만큼 생성되기 때문에 for문의 반복 횟수를 b로 줬고 star.repeat(a)를 통해서 별을
호이스팅(hoisting)인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미한다while 루프는 지정된 조건이 참인 동안 코드 블록을 반복적으로 실행할 수 있게 해주는 제어 구조다.break 문이 루프 내에서 실행되면 루프가 종료되고 프로그램은
Sequelize에서 사용하는 OpOp.eq : 같음 (=)Op.ne : 같지 않음 (!=)Op.gt : 큰 값 (>)Op.gte : 크거나 같은 값 (>=)Op.lt : 작은 값 (<)Op.lte : 작거나 같은 값 (<=)Op.between : 범위 안에
sequelize migrate 진행시 pk 설정을 잘 해두지 않으면 오류 발생함페이지 네이션 구현삼항조건 연산자 다중사용스프레드를 이용한 joi message 사용법
VPC10.0.0.0/24 2a 퍼블릭 CIDR 블록10.0.1.0/24 2a 퍼블릭 CIDR 블록10.0.2.0/24 2b 프라이빗 CIDR 블록10.0.3.0/24 2b 프라이빗 CIDR 블록외부에서 VPC 내부에 있는 EC2 접근 세팅인바운드 규칙HTTP 0.0.
쿼리스트링으로 카카오에서 인증받은 code를 받고, post로 카카오에 요청을 보낸다.
모든 url앞에 api를 붙이기 위해서 전역으로 선언한 api, ValidationPipe를 전역에서 선언해서 사용하게 편하게 만들었다.데코레이터 Global을 module에 붙이면 import 하지 않아도 providers를 사용 가능하게 해준다.Middleware는
아래와같이 클래스로 정의된 Dto <"Data Transfer Object"> 가 존재코드 실행시 Dto로 정의 된 값만 가져오기를 기대함.그러나 모든 BODY를 가져오는 문제 발생함.Dto가 존재하는데 모든 BODY를 가져오면 지정한 프로퍼티만 가져온다는 Dto
IAM을 만든다액세스 키와 비밀 액세스 키가 필요하다. IAM을 만든 후에 보안 자격 증명 ⇒ 액세스 키에서 키를 생성 해야 한다.액세스 키와 비밀 액세스 키를 만든다키들은 필수적으로 저장을 해야하며 IAM가 1개 이상일 경우 어느 쪽에 연결 되어있는지 확인해야 한다.
참고 :https://not-to-be-reset.tistory.com/428Jenkins 서버 1대, 배포 서버 1대를 준비한다.Jenkins server는 사용자 서버 8080포트를 열어준다배포 서버는 SSH 22포트를 준비해 준다, 나중에 변경여부를 직접
우선 플러그인 관리에 들어가서 SSH Agent 플러그인을 설치 후 젠킨스를 재부팅 해줍니다.여러분 EC2 인스턴스 생성 시 key pair 지정하셨죠?젠킨스 관리 -> Manage Credencials -> Add Credencial을 눌러 해당 key pair에 대
출처 : https://velog.io/@zayson/Jenkins-CICD-1.-GitHub-Repository-Clone하기GitHub 오른쪽 상단 프로필을 클릭해 Settings > Developer Settings > Personal Access Tok
문제점 정상적인 세팅을 다 했음에도 젠킨스가 webhook를 인식하지 못했다.알아본 것 Freestyle project는 webhook가 정상적으로 작동해서 세팅에 문제가 없다는걸 다시 확인했고. 스크립트상 문제가 있나 싶어서 Groove언어를 조금이나마 공부하며 틀린
구성express 2ea (EC2 Ubuntu)nginx 1ea (EC2 Ubuntu)환경OS : ubuntu20.04Nginx : 1.18.0조건express 2ea, nginx 1 같은 VPC가비아에서 도메인 구입 후 nginx IP와 매칭시나리오client 호출을
예시로 위 이미지와 같은 위치에 seed.ts 파일을 생성한다. userIdx , level , status ,createdAt , updatedAt 이 다섯개의 컬럼은 디폴트 벨류가 존재한다. 그런데 level , status는 지정해 주지 않아도 되지만 userId
라운드 로빈(Round Robin)은 여러 대상 사이를 순환하며 균등하게 분산하는 로드 밸런싱 알고리즘 중 하나입니다. 라운드 로빈 알고리즘은 각 대상에게 균등한 처리량을 보장하며, 구현이 간단하고 효율적이라는 장점이 있습니다.라운드 로빈 알고리즘은 각 대상에게 요청을
시작하기 해당 경로에 config 폴더와 파일을 생성 entities 폴더 생성 및 각각 Entity 작성한다. 그리고 migration:generate시에 생성되는 파일을 담기위해 폴더 생성한다. typeorm-cli.config.ts에 내용 작성 아래 설정으
express sequelize로 개발시작개발 과정에서 sequelize의 리미트와 오프셋 설정을 쿼리스트링으로 가져올 시에 타입이 맞지 않아서 페이지 네이션을 정상작동하지 않는 문제 발생했다.타입 체크의 중요성을 깨닫고 취업시장에서도 타입스크립트를 반 필수적으로 요구
Server2가 CD 과정중에 용량 부족으로 실패하는 에러가 발생했다.우리팀 서버는 EC2 프리티어를 사용하고있다.EC2 프리티어의 용량이 8GB 밖에 되지 않기 때문에 백업 버전관리를 서버에서 직접하지 않고 도커 허브를 통해서 하고 있었다.jenkins를 통해서 CI
express sequelize로 개발시작sequelize의 리미트와 오프셋 설정을 쿼리스트링으로 가져올 시 문제 발생했다.문제점 타입이 맞지 않아서 페이지 네이션이 정상작동하지 않았다.문제점 타입 체크의 중요성을 깨닫고 취업시장에서도 타입스크립트를 반 필수적으로 요구
Jenkins vs GitHub Actions?express sequelize를 CI/CD하기 위해서 Jenkins vs GitHub Actions 중에서 선택해야했다.쉬운 방법으로 GitHub Actions를 선택 할 수있었지만 현재 디펙토에 가까운 프로그램이 Jen
개요데이터베이스에서 발생하는 메모리 누수(또는 메모리 릭)는 프로그램이 필요하지 않은 메모리를 계속해서 점유하게 되는 현상을 말합니다.주로 프로그램이 메모리를 할당 받아 사용하고, 그 사용이 끝난 후에 적절하게 해제하지 않아서 발생합니다.예상되는 문제점메모리 누수는 시
테스트 커버리지는 코드의 어느 부분이 테스트에 의해 실행되었는지를 측정하는 지표다.명령어를 실행하면 주로 아래와 같은 요소들을 측정하는데Statement coverage코드의 각 구문이 얼마나 테스트되었는지Branch coverageif/else, switch 등의 분
코드 예제로 테스트 코드 연습해보기위의 postPollResult 메서드는 DTO를 작성하지 않아서 Promise를 타입을 반환 받는다.postPollResult 메서드에서 시도해 볼 만한 유닛테스트 두 가지를 연습해보자.if (!exeistPost) 해당 포스트가 존
코드 예제로 테스트 코드 연습해보기createPostPoll 메서드에서 시도해 볼 만한 유닛테스트를 연습해보자.이미 찬성에 투표했는데 반대에 투표하는 경우이미 반대에 투표했는데 찬에 투표하는 경우투표에 반대표를 던진 유저가 반대표를 취소하는 경우투표에 찬성표를 던진 유
문제점 : 테스트 코드의 일부분 중 API를 호출 하는 부분에서 401 오류가 발생했다시도해본 것 : 환경변수를 BeforeEach로 테스트 코드에 집어 넣고 실행시키면 작동했다. 하지만 이렇게 하는것은 mock 데이터를 사용하는 유닛테스트에서 옳지 않다고 생각했고 어
문제점 : e2e테스트 코드를 테스트 하는 중 아래의 오류가 발생했다.해결 : 절대경로로 import 되어있어서 문제가 발생한 것이었다. 일반적으로 다른 하위 디렉토리를 기준으로 절대경로를 사용하는 것은 허용되지 않는다고한다.상대 경로상대 경로는 현재 파일의 위치에 기
문제점 : Multer 라이브러리를 사용해서 이미지를 S3에 올리는 API를 e2e테스트 할 때, superagent: double callback bug라는 오류 메세지가 발생함시도해본 것 : 테스트의 타임아웃을 10000ms로 늘려봤지만 소용없었음, const mo
문제점 : 게시글을 작성하는 API의 Jest e2e 테스트에서 ` expected 201 "Created", got 401 "Unauthorized"` 오류가 발생함 시도해본 것 : `.set('Authorization', Bearer ${payload.sub})
Web 1.0: 읽기 전용 (1990-2004) 1989년 당시, 제네바에 위치한 CERN에서 근무하는 Tim Berners-Lee는 현재 WWW라고 하는 프로토콜 개발에 몰두하고 있었습니다. 그의 아이디어는 무엇이었을까요? 바로, 전 세계에서 정보를 공유할 수 있는
\-60%까지 떨어졌던 주식이 부활하고 쏠쏠한 수익을 냈다. 그래서 주식을 다시 시작했고, 효율적으로 관리하기 위해서 개인적인 웹 페이지를 만들고 싶다는 욕심이 생겼다. 그 첫단계로 주식 데이터를 크롤링 해야겠다.현재 SOXL, TNA, TQQQ 총 3가지 종목을 크롤
MongoDB Starter
Nest.js는 Microservices 아키텍처를 지원하며, TCP, Redis, MQTT, NATS, RabbitMQ, gRPC와 같은 다양한 메시지 전송 전략을 사용할 수 있습니다.설치하려는 @nestjs/microservices버전이 @nestjs/common
HTTP 메서드의 멱등성 HTTP 메서드의 멱등성(idempotence)이란 해당 메서드를 한 번 실행하든 여러 번 실행하든 결과가 동일하게 유지되는 특성을 말합니다. 다시 말해, 서버의 상태는 요청을 한 번만 수행한 경우와 여러 번 수행한 경우가 동일하게 보장됩니다
특정 열(column) 또는 필드(field)의 데이터에서 고유한 값들의 개수를 의미합니다. 카디널리티는 고유한 값들이 얼마나 많이 있는지, 즉 데이터의 분포가 어떠한지를 나타내는 중요한 척도입니다.예를 들어, "성별"이라는 열이 있을 때 이 열의 카디널리티는 2일 수
jsonEncode, jsonDecode