programming
[mongodb] mongoose Index 관련
몽고디비의 index는 dropIndex로 지워주지 않으면 계속 남아 있다. index는 db.collection.getIndexes()메소드로 확인 할 수 있는데 확인 후 사용하지 않느 index는 지워줘야 한다. 그리고 mongoose를 사용해서 index를 정해줄 떄, mySchema.index({ name: 1, age: 1 }, { unique: true }); 이런 식으로 복합인덱스가 필요해서 사용함 콘솔창(터미널)에도 createIndex라는 명령어가 mongodb에서 사용된것이 나타남 하지만 mongodb들어가서 db.collection.getIndexes() 이걸로 인덱스를 확인 했을때는 index가 생성 되어 있지 않음 이유 새로 생성하려는 index와 어긋나는 문서가 이미 존재하면 i..
[docker] docker sudo 없이 실행하는법
docker 사용하려면 root 권한이 필요함 그래서 매번 sudo docker ps 이런식으로 사용함 여기서 sudo를 빼기 위해서 현재 사용자 ( 나는 ubuntu ec2를 사용하고 있어서 사용자가 ubuntu이다)를 docker 그룹에 넣어주면된다 넣어주고 도커 다시시작하고 root계정으로 바꿨다가 다시 ubuntu 계정으로 바꾸면 된다 *reboot 시키거나 하면 안됨 ec2 주소 바껴서 실제 운영중이면 좀 안좋은 상황이 올 꺼같다 $ sudo usermod -aG docker ubuntu // docker 그룹에 unbuntu 유저를 추가 $ sudo service docker restart // 도커 재시작 $ sudo su - //root계정으로 변경 $ su - ubuntu // 다시 ub..
[mongodb] 간단한 사용법,로그인, 컬랙션,디비관련 명령어
db.auth(아이디,비번)을 사용해서 로그인할 때, 로그인 안되면 use admin을 통해 admin 데이터베이스로 옮겨가서 로그인해보면 될 수도 있음 use admin db.auth("아이디","비번") //컬랙션 삭제 //해당 데이터베이스 접속 use example_database db.example_collection.drop() //데이터베이스 삭제 //삭제하고자 하는 데이터베이스 접속후 db.dropDatabase() 컬랙션생성 db.createCollection(user) //인서트로 다큐먼트를 넣으면 자동으로 컬랙션 생김 db.car.insert**({"name": "그랜져"}) //컬랙션 확인 show collections

스테이징 이란
스테이징 환경 운영 환경과 거의 동일한 환경을 만들어 놓고, 운영환경으로 이전하기 전에, 여러 가지 비 기능적인 부분 (Security, 성능, 장애등)을 검증하는 환경이다. 아래는 위키에서 설명하는 내용인데 위의 스테이징을 더 세분화한것같다 스테이지(Stage)에 따라 각 단계를 구분하여 프로젝트가 진행되는 것을 스테이징(Staging)이라고 한다. 스테이지에는 무엇이 있는가 초기화 스테이지(Project initiation stage) 프로젝트 계획 또는 설계 스테이지(Project planning or design stage) 프로젝트 실행 또는 제품화 스테이지(Project execution or production stage) 프로젝트 모니터링과 제어 시스템(Project monitoring a..
[nextjs] 환경변수
기본적으로 env파일을 통해 로드된 모든 환경변수는 Nodejs환경에서만 사용 가능한데 그걸 브라우져 환경에서 사용하기 위해서 환경변수 앞에 NEXT_PUBLIC이란느 접두사를 붙이면 NEXT_PUBLIC_KEY=abcdefghijk nextjs에서 브라우져로 js파일을 보낼때 같이보내는것같다 NEXT_PUBLIC 말고도 ENV_LOCAL ( 로컬 즉 nodejs환경에서만 해당 변수를 읽을수있다. 브라우져에서는 undefined로뜰것임) PRODUCTION_ENV 등 몇가지 더 있으니 필요하면 알아보면 된다
URL에서 쿼리문자열과 parameter
쿼리문자열 : 주로 부가적인 정보전달, 선택적 매개변수 Parameter : 필수적인 정보, 필수적 매개변수
[typescript] typeof, keyof
1.typeof 객체를 객체형태의 타입으로 만들어 주는 키워드 const obj = { red : "apple", blue : "sky", yellow : "flower", } 이런 객체가 있을 때 obj에 typeof를 사용하면 아래처럼 타입에 할당이 가능하다 type A = typeof obj type A = { red : "apple"; blue : "sky"; yellow : "flower"; } 2.keyof 객체형태의 type의 key들 로 union type을 만들어줌 type A = { red : "apple"; blue : "sky"; yellow : "flower"; } type union = keyof A //type union = "red" | "blue" | "yellow" key..
[rxjs 용어 정리] hot, cold Observable
Hot Observable : 뜨거워서 데이터를 바로 흘려 보내는 Observable Cold Observable : 꽁꽁 얼어 붙어 있어 subscribe을 해야만 흘려 보내는 Observable Hot Observable 특징 구독자의 존재 여부와 상관없이 데이터를 배출하는 Observable 이다. 그래서 여러 구독자에 선택적으로 고려가 가능하다. 구독 시점으로부터 발행하는 값을 받는 걸 기본으로 한다. 마우스 이벤트, 키보드 이벤트, 시스템 이벤트 등이 주로 사용된다. 멀티캐스팅도 포함된다. Cold Observable 특징 일반적인 옵저버 형태를 말한다. 누가 구독해주지 않으면 데이터를 배출해주지 않는다. 일반적인 웹 요청, 데이터베이스 쿼리 등이 사용되며 내가 요청하면 결과를 받는 과정을 거친..