전체 글
MAC VSCODE 파일생성 권한 오류
진짜 갸 빡 친 다 맥북 파일 생성이 안돼 폴더에서 권한 설정 다 해도 안돼 터미널에서 sudo chmod -R 777 ~/Desktop/taejijn/development/nest 이런식으로 해주니까 됐다. 어휴 참고 레퍼런스 https://ankitmaheshwariin.medium.com/mac-vs-code-error-permission-denied-writing-to-file-bb112180edeMac VS code error — permission denied writing to fileGive the folder 777 permission.ankitmaheshwariin.medium.com
[NestJs, TypeORM] Error during migration generation: SyntaxError: Cannot use import statement outside a module
TypeORM으로 DB를 마이그레이션 하려고 했다. generation 속성을 이용하는데 자꾸만 해당 오류가 났다. 기본적으로 import와 require로 모듈을 불러오는 차이에서 일어나는 문제인데, 루트폴더에 지정된 웹팩을 reqiure로 바꾸려고, package.json에 type:module 추가하고, 다시 뺴고, tsconfig 설정하고 별별 난리를 다치다가 간신히 해결했다. 참고 레퍼런스 https://newbedev.com/typeorm-entity-in-nestjs-cannot-use-import-statement-outside-a-module Programming tutorials | Newbedev Checkout new tutorials and guides for programming..
[Node.js] express 폴더 구조 변경
Nestjs로 파일을 짜다보니 기존 express 파일 구조에 대해서 다시 한번 생각하게 되었다. express의 자유로움이 오히려 단점으로 느껴졌다. 지금은 관련 개발을 내 혼자 도맡아 하다보니, 크게 문제 되는 부분은 없지만, 좋은 코드는 누가봐도 한 눈에 알 수 있고, 유지보수하기 좋아야 한다고 생각한다. nestjs의 구조를 100% 차용하는 것은 현실적으로 무리가 있을 것이라 판단했다. 이걸 바꾼다고, 현재 회사 비즈니스에 크게 영향을 주는 것도 아니고, 공수에 비해 사업적으로 얻는 이득은 크게 없을 것이라 생각했기 때문이다. 훗날 더 원활한 유지보수를 위해 nest의 방식을 일부분 차용하기로 했다. 기존 기존의 router는 이런 식으로 쪼갰다. index에는 엔드포인트가 있고, control..
AWS RDS AURORA + NODEJS
AWS의 Aurora DB를 선택하고, Node에 붙여 넣었다. Aurora는 프리티어가 없고, 제일 싼게 한달 3만원정도니 이용할 때 주의해야한다. 현재 회사에서 Cafe24에 있는 mySql을 AWS RDS로 환경이전을 하려고 준비 중이다. 개발관련 인력이 별로 없기에 내가 다 의사결정을 하고 있긴 하지만.. AWS RDS가 유지보수나 속도 측면에서 나을거라 판단했다. 다만 가격이 좀 있기에 오버스펙이지 않을까 하는 고민은 아직도 있다. 이건 프로젝트가 정확히 나와봐야 알 것 같고, RDS를 실제 프로젝트에서 처음 써보는거라 어떤 식으로 운용해야 효율적일진 고민해봐야겠다. 모델구성 const mysql = require('mysql2/promise'); require('dotenv').config()..
Deprecation warning: moment().lang() is deprecated. Instead, use moment().locale
moment를 사용하다 또 오류가났다. 빠른 시일내에 dayjs로 갈아 끼워야겠다. deprecated된거 알고도 계속 유지할 수는 없는 노릇이니까..ㅠㅠ 해당 오류는 Deplecated되서 .lang()을 사용하지 말라는 경고문이다. 잘 동작하긴 해도, 경고문이 뜨면 찜찜하니까 수정하기로 했다. Deprecation warning: moment().lang() is deprecated. Instead, use moment().localeDataonfiguration. Use moment().locale() to change languages. Arguments: ko Error 사용하는 모멘트 위에 locale을 지정해서 써주면 된다. moment.locale('ko');
[webpack] Cannot use import statement outside a module
Cannot use import statement outside a module nestjs에서 webpack Hot reload적용하려했는데, 자꾸 아래와 같은 오류가.. 처음엔 src폴더에 webpack config를 만들어놔서 1시간 동안 뻘짓했는데.. 정신을 놓고 있으니까 별거 아닌 거에도 문제가 생긴다. import를 외부에서 사용해서 생긴 문제였다. /* eslint-disable prettier/prettier */ /* eslint-disable @typescript-eslint/no-var-requires */ const nodeExternals = require('webpack-node-externals'); const { RunScriptWebpackPlugin } = require(..
몽고DB 아틀라스 연결
맨처음 DB를 할 때 NoSql을 쓰고, Nosql 찬양을 하다가.. SQL을 제대로 쓰고 나서 NoSql의 한계를 느끼고, 안쓴지 꽤 됐는데, 안쓰다보니까 기억이 가물가물해서 오랜만에 공부겸 테스트겸 몽고db로 구축을 하려한다. 일단 아틀라스 들어가기~ 새로운 프로젝트를 프리티어로 만든다. SECURITY를 설정한다. Database Access, Network Access를 설정해준다. 실제 프로젝트에 쓸게 아니라 그냥 All Access로 모두 허용으로 해줬다. 클러스터에 들어가서 어디에 연결할건지 정한다. 어디에 사용할건지 정한다. 나는 몽고DB compass에서 보려고했기 떄문에 Compass를 선택했다. 그 후 password 자리에 처음에 Database Access에서 설정한 비밀번호를 넣..
AWS 로드밸런스 ACL 적용 EC2 WAF, ACL
이번 프로젝트에서 보안과 악의적 중복 요청 방지에 대해 고민하다 WAF를 선택했다. 물론 악성 쿼리나 중복 방지등등 여러 예외처리도 프론트와 백단에서 처리해야겠지만, 아무리 신경쓴다고 해도, 현재의 상황에선 한계점이 있을 것이라 생각했다. AWS에서 규칙을 제공한다는 이야기를 듣고 도입해보기로 했다. 적용할 때 레퍼런스가 딱히 없어서 AWS 공식 문서를 보고 적용했다. 기본 정의 AWS WAF는 가용성에 영향을 주거나, 보안을 위협하거나, 리소스를 과도하게 사용하는 일반적인 웹 공격으로부터 웹 애플리케이션이나 API를 보호하는 데 도움이 되는 웹 애플리케이션 방화벽입니다. AWS WAF에서는 SQL 주입 또는 사이트 간 스크립팅과 같은 일반적인 공격 패턴을 차단하는 보안 규칙 및 사용자가 정의한 특정 트..