반응형

- 오라클 JOB 등록하기

DECLARE X NUMBER; 
BEGIN SYS.DBMS_JOB.SUBMIT 

JOB => X,  //자동입력됨 JOB넘버
WHAT => 'USER_ID.PROCEDURE_ID;' ,  //오라클 프로시져 이름
NEXT_DATE => SYSDATE + 1/24/60,  //1분뒤에 JOB실행 시작
INTERVAL => 'SYSDATE + 1/24',   //1시간마다 JOB 실행
NO_PARSE => FALSE 

); 
END;
COMMIT;

 

- JOB 목록 조회

select * from user_jobs;

 

 

반응형
반응형

<a href="#" onClick="">

버튼

</a>

 

클릭시 상단으로 스크롤 업되는현상이있다

 

<a href="#a" onClick="">

버튼

</a>

이런식으로 "#" 뒤에 알파뱃을 붙이면된다.

반응형
반응형

Sub 매크로1()
'
' 매크로1 매크로
'

'

    
    Cells.Find(What:="보통소계", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
        
    Set rowNum = Range(ActiveCell.Address)
    rowNum.Offset(-1, 0).Select ' 위로한칸이동
    Dim adrSave As String
    adrSave = ActiveCell.Address
    ' MsgBox adrSave
    
    Range("A7").Select
    ActiveCell.FormulaR1C1 = "=ROW()-6"
    ' Selection.AutoFill Destination:=Range("A7:A20")
    
    Selection.AutoFill Destination:=Range("A7:" & adrSave)   ' Range("A7:rowNum")
    
        Cells.Find(What:="우1-00001", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
        
        ActiveCell.Range(Cells(1, 1), (Cells(5, 5))).Select
        
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(ActiveCell.Address), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange ActiveCell.Range(Cells(1, 1), (Cells(5, 5)))
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    
End Sub

반응형
반응형

created

  • 타입: Function
  • 상세:
  • 인스턴스가 생성된 후 동기적으로 호출됩니다. 이 단계에서 인스턴스는 data 관찰, computed 속성, methods, watch/이벤트 콜백 등의 설정이 준비되었음을 의미하는 옵션 처리를 완료합니다. 그러나 마운트 단계가 시작되지 않았으며, $el 속성을 사용할 수 없습니다.

beforeMount

  • 타입: Function
  • 상세:이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • 마운트가 시작되기 직전에 호출됩니다. render 함수가 처음으로 호출됩니다..

mounted

  • 타입: Function
  • 상세:mounted는 모든 자식 컴포넌트가 마운트되었음을 보장하지 않습니다. 전체 화면내용이 렌더링될 때까지 기다리려면, mounted 내에서 vm.$nextTick를 사용합니다:
  • 인스턴스가 마운트된 후 호출되며, 여기서 Vue.createApp({}).mount()로 전달된 엘리먼트는 새로 생성된 vm.$el로 대체됩니다. 루트 인스턴스가 문서 내의 엘리먼트에 마운트되어 있으면, mounted가 호출될 때 vm.$el도 문서에 포함(in-document)됩니다.

mounted() { this.$nextTick(function () { // 전체 화면내용이 렌더링된 후에 아래의 코드가 실행됩니다. }) }

 

beforeUpdate

  • 타입: Function
  • 상세:초기 렌더링만 서버측에서 수행되기 때문에, 이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • DOM이 패치되기 전에 데이터가 변경될 때 호출됩니다. 이 훅은 업데이트 전에 기존 DOM에 접근 (예: 수동으로 추가된 이벤트 리스너를 제거)할 수 있는 좋습니다.

updated

  • 타입: Function
  • 상세:updated가 호출될 때 컴포넌트의 DOM이 업데이트되므로, 여기에서 DOM의 종속적인 연산(DOM-dependent operations)을 할 수 있습니다. 그러나 대부분의 경우 훅 내부에서 상태를 변경하지 않아야 합니다. 상태 변경에 반응하기 위해, 일반적으로 computed property 속성이나 watcher를 사용하는 것이 더 좋습니다.
  • updated는 모든 하위 컴포넌트가 다시 렌더링되었음을 보장하지 않습니다. 전체 화면이 재렌더링 될 때까지 기다리려면, updated 내부에서 vm.$nextTick를 사용합니다
  • 데이터가 변경되어 가상 DOM이 다시 렌더링되고 패치된 후에 호출됩니다.

updated() { this.$nextTick(function () { // 전체 화면내용이 다시 렌더링된 후에 아래의 코드가 실행됩니다. }) }

 

이 훅은 서버측 렌더링 중 호출되지 않습니다

 

activated

  • 타입: Function
  • 상세:이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • keep-alive 컴포넌트가 활성화될 때 호출됩니다.

deactivated

  • 타입: Function
  • 상세:이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • keep-alive 컴포넌트가 비활성화될 때 호출됩니다.

beforeUnmount

  • 타입: Function
  • 상세:이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • 컴포넌트 인스턴스가 마운트 해제(unmounted) 되기 직전에 호출됩니다. 이 단계에서 인스턴스는 여전히 완전하게 작동합니다.

unmounted

  • 타입: Function
  • 상세:이 훅은 서버측 렌더링 중 호출되지 않습니다.
  • 컴포넌트 인스턴스가 마운트 해제(unmounted)된 후 호출됩니다. 이 훅이 호출되면, 컴포넌트 인스턴스의 모든 디렉티브가 바인딩 해제되고, 모든 이벤트 리스너가 제거되며, 모든 자식 컴포넌트 컴포넌트도 마운트 해제(unmounted)됩니다.

errorCaptured

  • 타입: (err: Error, instance: Component, info: string) => ?boolean
  • 상세:TIP
    • 기본적으로, 모든 에러는 정의된 경우에 전역 config.errorHandler로 보내지므로, 에러들은 계속 한 곳에서 분석 서비스에 보고될 수 있습니다.
    • 여러 개의 errorCaptured 훅들이 컴포넌트의 상속 체인이나 부모 체인에 존재하면, 모두 동일한 에러로 호출됩니다.
    • errorCaptured 훅 자체에서 에러가 발생하면, 이 에러와 원래 포착된 에러가 모두 전역 config.errorHandler로 보내집니다.
    • errorCaptured 훅은 에러가 더 전파되지 않도록 false를 반환할 수 있습니다. 이는 본질적으로 "이 에러는 처리되었으므로 무시해야 합니다."라는 의미입니다. 이 에러에 대해 어떠한 추가적인 errorCaptured 훅이나 전역 config.errorHandler가 호출되지 않도록 합니다
  • 이 훅에서 컴포넌트 상태를 수정할 수 있습니다. 하지만 에러가 포착되었을 때, 템플릿이나 렌더 함수 안에서 다른 내용을 더 이상 실행시키지 않는 조건을 가지는 것이 중요합니다. 그렇지 않다면, 컴포넌트가 무한루프에 빠질 것입니다.
  • 에러 전파 규칙
  • 자손 컴포넌트의 에러가 포착(capture)될 때 호출됩니다. 이 훅은 세 가지 전달인자(에러 자체(err), 에러를 발생시킨 컴포넌트 인스턴스(instance), 그리고 에러가 포착된 위치에 대한 정보가 들어있는 문자열(info))를 받습니다. 이 훅은 false를 반환하여 에러가 더 전파되지 않도록 할 수 있습니다.

renderTracked

  • 타입: (e: DebuggerEvent) => void
  • 상세:
  • 가상 DOM의 재렌더링이 추적될 때 호출됩니다. 이 훅은 debugger event를 전달인자로 받습니다. 이 이벤트는 어떤 작업이 컴포넌트를 추적했는지와 해당 작업의 대상 객체 및 키를 알려줍니다.
  • 사용법:

HTML-

<div id="app"> <button v-on:click="addToCart">Add to cart</button> <p>Cart({{ cart }})</p> </div>

JS - 

const app = Vue.createApp({ data() { return { cart: 0 } }, renderTracked({ key, target, type }) { console.log({ key, target, type }) /* 컴포넌트가 최초로 렌더링될 때 출력됩니다: { key: "cart", target: { cart: 0 }, type: "get" } */ }, methods: { addToCart() { this.cart += 1 } } }) app.mount('#app')

 

renderTriggered

  • 타입: (e: DebuggerEvent) => void
  • 상세:
  • 가상 돔의 재렌더링이 트리거 될 때 호출됩니다. renderTracked와 유사하게 debugger event를 전달인자로 받습니다. 이 이벤트는 어떤 작업이 재렌더링을 트리거한 작업과 해당 작업의 대상 객체 및 키를 알려줍니다.
  • 사용법:

HTML-<div id="app"> <button v-on:click="addToCart">Add to cart</button> <p>Cart({{ cart }})</p> </div>

JS -

const app = Vue.createApp({ data() { return { cart: 0 } }, renderTriggered({ key, target, type }) { console.log({ key, target, type }) }, methods: { addToCart() { this.cart += 1 /* renderTriggered 호출이 발생합니다 { key: "cart", target: { cart: 1 }, type: "set" } */ } } }) app.mount('#app')

 

공식홈페이지 펌 https://v3.ko.vuejs.org/

반응형
반응형

에러 라인

error Delete '.....' prettier/prettier

  1 error and 0 warnings potentially fixable with the `--fix` option.

 

해결방법 

npm run lint -- --fix

 

 

반응형
반응형

app.post("주소" , function(req,res) {

     for(var i= req.body.length; i++)

     {

//추가할 data

          req.body[i].c1 = "c5"

          req.body[i].c2 = "c4"

          req.body[i].c3 = "c3"

          req.body[i].c4 = "c2"

          req.body[i].c5 = "c1"

      }

});

반응형

'프로그램 관련 > Node js' 카테고리의 다른 글

warnings potentially fixable with the --fix Error  (0) 2021.11.04
node bit 변경시 주의사항  (0) 2021.09.30
반응형

db.collection.renameCollection("collectionName")

   (컬렉션이름)                      (변경할컬렉션이름)

 

db.collection.updateMany({_id: 1234}, {$rename : {"g1", "g2"}} )

                                    (조건)                    (변경전: 변경할값)

 

반응형

'프로그램 관련 > 몽고DB' 카테고리의 다른 글

mongodb index 정리  (0) 2021.10.19
반응형

Sub 특정단어검색()

     Cells.Find(What : = "특정단어", After : = ActiveCell, LookIn :=xFormulas, _

     LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirectin:=xlNext, _

     MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate

Selection.EntireRow.Insert, CopyOrigin:=xlFormatFromLeftOrAbove

ActiveCell.FormulaR1C1 = "합계"

Set Rng = Range(ActiveCell.Address)

Rng.Offset(0,1).Select '//오른쪽으로이동

ActiveCell.FormulaR1C1 = "=SUM(B2:R[-1]C)" '//합계

ActiveWindow.SmallScroll Down:=-1

Cells.Replace What:="'B2'", Replacement:="B2", LookAt:=xlPart, _

      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _

      ReplaceFormat:=False

'// B2에 "" 가붙으므로 제거

End Sub

반응형
반응형

Index 란

DB의 검색을 빠르게 하기 위해 미리 데이터의 순서를 정리해두는 과정

Index는 MongoDB에서 데이터 쿼리를 더욱 효율적으로 할 수 있게 해준다.

인덱스가 없이는, MongoDB는 collection scan – 컬렉션의 데이터를 하나하나 조회 – 방식으로 스캔을 하게 된다.

모든 도큐먼트를 스캔해야되는 비효율성을 줄임

 

한 쿼리당 하나의 index 만 유효하다.

두개의 index가 필요하다면 복합 index를 사용하면 된다.

 

* B트리

: 내부적으로 B-Tree 알고리즘을 이용하여 인덱스를 구성한다.

 

사용시 주의할 점

: 모든 인덱스를 갱신해야 하기 떄문에 모든 쓰기 작업은 인덱스 때문에 더 오래 걸림

: Collection 당 최대 64개까지 인덱스를 지닐수있지만, 2~3개만 지니는게 좋다.

: 몽고디비의 인덱스는 RDBMS와 유사하게 작동함

: 인덱스 구축시 background 옵션을 사용하면, 비동기로 작업이 가능하긴하지만 느리다.

 

 

Index 종류 

기본 인덱스 _id

모든 MongoDB의 컬렉션은 기본적으로 _id 필드에 인덱스가 존재합니다. 만약에 컬렉션을 만들 때  _id 필드를 따로 지정하지 않으면 mongod드라이버가 자동으로 _id 필드 값을 ObjectId로 설정해준다.

Single(단일) 필드 인덱스

사용자가 지정 할 수 있는 단일 필드 인덱스가 있다.

Compound (복합)  필드 인덱스,

두개 이상의 필드를 사용하는 인덱스를 복합 인덱스라고 부른다. 다음 이미지와 같이 첫번째 필드 (userid)는 오름차순으로, 두번째 필드 (score)는 내림차순으로 정렬 해야 하는 상황이 있을때 사용한다.

Multikey 인덱스

필드 타입이 배열인 필드에 인덱스를 적용 할 때는 Multikey 인덱스가 사용됩니다. 이 인덱스를 통하여 배열에 특정 값이 포함되어 있는 document를 효율적으로 스캔

Geospatial(공간적) Index

지도의 좌표와 같은 데이터를 효율적으로 쿼리하기 위해서 (예: 특정 좌표 반경 x 에 해당되는 데이터를 찾을 때) 사용되는 인덱스

Text 인덱스

텍스트 관련 데이터를 효율적으로 쿼리하기 위한 인덱스

해쉬 (hashed) 인덱스

이 인덱스를 사용하면 B Tree가아닌 Hash 자료구조를 사용합니다. Hash는 검색 효율이 B Tree보다 좋지만, 정렬을 하지 않습니다.

 

인덱스 사용

인덱스 확인

> db.[컬렉션명].getIndexes()    //    Collection의 인덱스 확인

인덱스 생성

> db.[컬렉션명].ensureIndex({name:1})    //    1이면 오름차순, -1 이면 내림차순

인덱스 생성(백그라운드에서 생성, 비동기방식)

 

> db.[컬렉션명].ensureIndex({name:1},{background:true})
인덱스 생성시 오래걸리면 백그라운드에서 생산해야함.

 

인덱스 생성( 고유인덱스 

> db.[컬렉션명].ensureIndex({name:1},{unique:true})    //    unique 속성을 지정해서 중복데이터가 저장되지 못하게 하여, 데이터 저장과 검색속도를 늘린다.

 

* 인덱스 생성( 중복데이터 삭제 )

> db.[컬렉션명].ensureIndex({name:1},{unique:true, dropDups:true})    //    Unique 하게 했을 때 이미 중복된 데이터가 있을 경우 중복되는 데이터는 삭제하고 인덱스를 저장한다

 

* Partial (부분적) 속성

> partial 속성은 document의 조건을 정하여 일부 document에만 인덱스를 적용 할 때 사용된다,.

partial 속성을 사용하면, 필요한 부분에만 인덱싱을 사용하여 저장공간도 아끼고 속도를 더 높일수 있다.

visitors 값이 1000 보다 높은 document에만 name 필드에 인덱스 적용

db.[컬렉션명].createIndex( { name: 1 }, { partialFilterExpression: { visitors: { $gt: 1000 } } } )

 

* ttl 속성 인덱스 생성

db.[컬렉션명].createIndex( { "notifiedDate": 1 }, { expireAfterSeconds: 3600 } )

예제: notifiedDate 가 현재 시각과 1시간 이상 차이나면 제거

document가 만료되어 제거 될 때, 시간이 아주 정확하지는 않다. 만료되는 document를 제거하는 thread는 매 60초마다 실행된다.

 

인덱스 삭제 

> db.[컬렉션명].dropIndex({name:1})    //    해당 인덱스 제거

 

* 인덱스 삭제( 모든 인덱스)

> db.[컬렉션명].dropIndexes()    //    _id를 제외한 모든 인덱스 제거

 

 

몽고디비 공식 문서 (인덱스 가이드)

docs.mongodb.com/manual/indexes/



출처: https://juntcom.tistory.com/104 [쥬니의 개발블로그]

반응형
반응형

만약 node 32bit 에서 64bit로 변경시에

프로젝트 node_modules 폴더를 제거 후 

새로 npm install 명령으로 설치해야합니다.

 

필자는 32비트에서 64비트로 변경후 npm 명령어가 안먹어  다시설치하게 되었습니다.

반응형

+ Recent posts