본문 바로가기
반응형

전체 글171

윈도우 블루스크린 자동 재시작 & 에러로그 보기 1. 개요  블루스크린 발생시에는 오류 코드명과 함께 QR코드를 보여준다.이때, 컴퓨터 성능에 따라 미처 확인하지도 못했는데 시스템을 재시작하는 경우가 있다.이는 설정에서 바꿀 수 있다.이 글에서는 블루스크린이 발생하였을때의 다시 시작 동작 설정,제어판에서 오류코드를 확인하는 법을 알아보고자 한다. 2. 블루스크린 설정  시스템 > 정보로 들어간다.   '고급 시스템 설정'을 클릭한다.  '시작 및 복구' 항목의 '설정(T)'을 클릭한다.   '자동으로 다시 시작' 항목 선택 여부에 따라 블루스크린이 발생했을 때 오류 정보 수집 후 자동으로 다시 시작할지 여부를 선택할 수 있다.  왼쪽 화면은 자동으로 다시 시작 항목을 선택했을 때, 오른쪽은 선택하지 않았을 때의 화면이다. (Win 8 기준)   해당 .. 2024. 11. 14.
Oracle 조건 in 쿼리 1000개 제한 피하기. 1. 개요얼마 전 주소록을 일괄삭제해주는 기능이 동작하지 않는다는 사용자 문의를 받았다. 이를 확인해보니 특정 쿼리가 수행되지 않고 예외를 발생시키고 있었는데 오늘은 이에 대해 이야기를 해보려고 한다.해당 이슈는 ORA-01795: maximum number of expressions in a list is 1000으로 in절의 파라미터가 1000개를 초과할 때 발생하는 오류이다.2. 왜 발생할까???해당 예외는 Oracle에서 의도적으로 발생시키는 예외로, 이유가 분명해보였다. 그렇다면 왜 이런 예외를 발생시킬까??당연히 성능때문이다. 이러한 제한은 Oracle이 메모리를 효율적으로 사용하기 위한 것인데 IN절의 파라미터를 처리하기 위해 Oracle은 메모리 내에 일시적인 테이블을 생성한다. 하지만 이.. 2024. 10. 21.
nexacro 소수점 계산시 값이 틀리게 나오느경우. function Button00_onclick(obj:Button, e:ClickEventInfo){    trace(10.95+1.95);     trace(roundDight(10.95+1.95, 1));} //부동소수점 오차제거 함수.function roundDight(n, digits){     if (digits >= 0)     {          return parseFloat(n.toFixed(digits));     } else {          digits = Math.pow(10, digits);          var t = Math.round(n * digits); // digits;          return parseFloat(t.toFixed(0));     }} ====.. 2024. 10. 8.
Edge 브라우저 IE호환모드에서 디버깅(개발자도구) 사용하기 Edge 브라우저에서 (자동으로 또는 일부로) IE호환모드로 열린 경우 개발자도구를 열면 활성화 되지 않은 상태로 열린다.=> 호환모드로 열리는 경우 주소창 앞에 옛날 IE 아이콘이 표시되고 아이콘 눌러 보면     호환모드 버전을 알려준다.  Edge IE 모드에서 ctrl + shift + i 를 눌렀을 경우, 다음 사진과 같이 디버깅 모드가 제대로 활성화 되지 않음    해결 방법 1.window + r 누름 2.%systemroot%\system32\f12\IEChooser.exe 입력 3.확인 버튼 누름  4.다음과 같이 디버그할 대상을 선택하는 창이 열리고 여기서 원하는 페이지를 선택하면 됨    결과 다음과 같은 IE의 개발자 도구 창이 새로 뜸   원본사이트Edge IE 모드에서 디버깅 방.. 2024. 8. 28.
Nexacro 화면 (작업 페이지)새로 고침 개발 후 화면 새로고침을 하려고 하면 사이트 전체를 새로 고침해야만 하도록개발된 사이트 들이 있다. 그럴때는 workDiv만 새로 고침해서 화면만 새로고침하도록 버튼이나 단축키를 만들어 주는게 편하다. 넥사크로 대부분이 메뉴 클릭시 workFrame DIV에 해당 *.js 화면을 url에 로드시켜가져온다. workFrame에 호출되는 workForm.xfdl에 버튼이나 단축키 설정 후 this.reload(); 실행하면 된다. 간혹 캐쉬 방지를 위해 버전이나 변수에 random 값을 던지는 경우가 있다. 그러면 F12 디버그 모드에서 소스(페이지)가 계속 새로 잡히기 때문에 디버그가 어려운 경우가 있는데.  그럴때는  if(this.div_work.url.indexOf('debug')>0){      t.. 2024. 8. 22.
mybatis 동적 쿼리 만들기 - trim 문법 속성prefix : 실행될 쿼리의  문 안에 쿼리 가장 앞에 붙여준다.UPDATE board username=#{username},password=#{password} prefixOverrides : 실행될 쿼리의 문 안에 쿼리 가장 앞에 해당하는 문자들이 있으면 자동으로 지워준다.SELECT * FROM board WHERE id = #{id} OR TT LIKE '%' || #{searchContent} || '%'  suffix : 실행 될 쿼리의  문 안에 쿼리 가장 뒤에 붙여준다. suffixOverrides : 실행될 쿼리의  문 안에 쿼리 가장 뒤에 해당하는 문자들이 있으면 자동으로 지워준다.  문법SELECT * FROM user WHERE id = #{id} .. 2024. 8. 2.
서버에서만 발생하는 오라클 Literal 오류 literal does not match format string  문자와 데이트형식을 비교 및 대입했을 때 발생한다.  TO_CHAR 와 TO_DATE를 이용해서 서로 같은 형식으로 비교 및 대입해주면 된다.함수 두번째 인자 값을 생략하지 말고 꼭 기입해준다. ex> to_char(sysdate , 'yyyymmdd') 이렇게 개발 하지 않으면 로컬에서는 오류없이 실행되던게 서버에서는 오류가 날수도있다.지금 내피시에서 오류가 안난다고 약식으로 자동 형변환을 유도하는건 좋지 않다.그래서 개발시 꼭 습관화를하는게 좋다. 리터럴 오류는OS의 LANG 설정이 달라서 문자열을 묵시적으로 날짜로 변환을 못해서 발생하는 에러기때문에 - 리눅스 명령어echo @LANGlocale - 윈도우 같은경우 설정에서 확인 가.. 2024. 7. 15.
decode 와 case 사용 시 차이와 주의할점 오라클에서 조건문으로 사용할수 있는 수식이 decode와 case가 있는데.주의해야 할점이decode(strA ,3 ,FN_GETB() ,FN_GETC() )strA가 3이면 FN_GETB()함수 값을 같지 않으면  FN_GETC() 함수를 값을 리턴해주는건 맞지만내부적으로는 두개다 호출(실행)된다. 그래서 두함수가 모두 단순 select 리턴 함수면 상관없지만 (채번등) 함수 안쪽에서 update,insert, 시퀀스 등을 사용하는 함수라면 문제가 될수 있다. 만약 위와 같은 경우라면 반드시 case문을 사용해야 한다.case문은 보통 우리가 아는대로 조건이 거짓일 경우 실행되지 않는다. 그래서 왠만하면 decode를 사용할때는 안에 함수들어가는 수식은 사용하지 않는것이 좋다. 2024. 7. 10.
expr 에서 함수 경로 찾기 & expr 이용한 Filter (Dataset Distinct예제) - 데이테셋 EXPR 사용시 함수 찾기   this.ds_list.findRow("dataset.parent.gfn_isNull(COL_ID)"); - 그리드 EXPR인경우 함수 찾기   comp.parent.(그리드위치에따라parent계속붙임).gfn_isNull(COL_ID) - 참고 EXPR   - 데이터셋 데이터 수정 여부 확인       this.ds_List.findRowExprNF("(dataset.getRowType(currow)==4)||(dataset.getRowType(currow)==2)");    - 데이터셋 특정 COL_ID로 DISTINCT하기 (고정값이 아닌 현재로우의 값과 비교하기)      var colId = 'IF_COL';      var sExpr= 'rowidx=.. 2024. 6. 21.
대용량 insert 출처 : https://velog.io/@aszxvcb/Bulk-InsertUpdate-%EB%B0%B0%EC%B9%98%EC%9E%91%EC%97%85%EC%97%90%EC%84%9C%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%B2%98%EB%A6%AC-%EB%A6%AC%ED%84%B4%EA%B0%92returnValue [Bulk Insert/Update] Mybatis 배치작업과 리턴값(returnValue)들어가며, 주문/재고 관리시스템에서 배치작업을 개발/개선하는 업무를 맡게되었습니다. 배치작업 특성상 많은 데이터를 한번에 처리하면서 겪게되었던 경험을 정리해봅니다. 글의 순서 다건velog.io   들어가며,주문/재고 관리시스템에서 배치작업을 개발/개선하는 업무를 맡.. 2024. 6. 20.
이클립스에서 git Pull / Commit / Push 하는 방법 Push 하기 전에는 Pull을 받드시 먼져하고 그 다음 Push 해야한다.Git은 SVN과 달리 파일을 선택적으로 Update할수 없고 Git서버에 있는 모든 최신파일을Pull을 받아야만 내 소스를 올릴 수 있다.   pull 받는 법 프로젝트 우클릭 후 Team → Synchronize Workspace를 클릭한다.여기서  상단 3번쨰 녹색화살표 버튼이 Pull 버튼이다.충돌난 소스나 목록을 확인 후 Pull 하면 된다.   push 하는 법  Synchronize Workspace화면에서 Window → Show View → Other…을 클릭한다. Git Staging을 클릭한다. Git Staging 1. Unstaged Changes : 소스가 변경된 파일 목록, 여기서 반영할 목록을 Add .. 2024. 4. 26.
이클립스 git ignore 파일 적용이 안될때. 원격 저장소와 연결된 로컬 저장소 내 프로젝트 폴더 최상단에 .gitignore 파일에 리스트를 만들면Git Staging에 안보여야 하는데. 이런 식으로. classpath나 class 파일들이 그대로 track 된다.  답은 이클립스 세팅에 있었다. Window - Preferences - Team - Git - Projects에 3번째 항목에 체크해주고 이클립스를 재시작해주면 적용이 된다.  깔끔해졌다. 위에 처럼해도 나오는 파일들이 있다. 이미 한번 commit완료 된 파일들은 . gitignore파일에 등록해도 계속나온다.(이경우 synchronize 창에는 안나오지만 Git Staging창에는 계속 보일수도 있다.) 위와 같은경우 보기 싫다면 파일선택후 Assume unchanged실행하면 되.. 2024. 4. 26.
이클립스 GIT 프로젝트 Import하기 (git Clone) svn에서는 레파지토리에서 checkout 받으면 되지만 git에서는 밑에와 같이 clone을 사용한다. 1. 프로젝트 가져오기 File에서 Import를 누른다.  그림 1. 프로젝트 가져오기(1) Git의 Projects from git을 선택하고 "Next(다음)"을 누른다.  그림 2. 프로젝트 가져오기(2) Clone URI를 선택하고 "Next"를 누른다.   그림 3. 프로젝트 가져오기(3) 가져오고 싶은 프로젝트의 git 사이트 URL을 찾아야 한다.프로젝트에서 Code를 클릭한 후 URL 주소를 복사한다.   그림 4. 프로젝트 가져오기(4) 이클립스 화면으로 가서 "Import Projects from Git" 창을 활성화 한다.그리고 URI에 복사했던 URL주소를 붙여넣는다.그리고 ".. 2024. 4. 26.
이클립스에서 git 충돌시 해결방법 방법 0 : merged 방법 1 : merge toll 사용 방법 2 : overwrite방법 3 : Replace With HEAD Revision 방법 4 : Reset (Head의 위치를 조정한다. 이건 정확한 정의를 이해하기전에는 쓰지마라                    Commit된 위치가 조정 취소 될수 있다.)        Git Respositories > 프로젝트명 > Branches > Local > master 에서 마우스 오른쪽        'reset' 클릭 후 hard 선택 =>  프로젝트명에서 마우스 오른쪽 누르고 Pull 선택  방법0 :  merged 사용(왠만하면 비추)  - 나와 다른개발자가 개발한 부분이 몇 라인 안되고 명확히           다르면  편리하지만 .. 2024. 4. 26.
부팅시 바이오스 진입이 안될때, 윈도우에서 바로 USB부팅하기 * (OS 설치들을 위해) USB 부팅이 필요한 경우에는 [전원] -> [다시시작] +[Shift] 클릭 하면 밑에 화면이 뜨고 장치사용으로 들어가 USB 드라이브를 선택하면 USB로 부팅된다. USB부팅이 아니라 BIOS 접근이 필요한경우 밑에 참고.... 메인보드 바이오스 옵션에는 Fast Boot Mode(빠른 부팅)이라는 옵션이 있습니다. 메인보드가 장치를 검사하지 않고 부팅에 성공한 과거 정보로 부팅하는 옵션으로 부팅시간이 비약적으로 빨라져 많이 사용하고 있는데요. 단점으로는 빠른 부팅 옵션을 활성화하면 바로 윈도우 진입이 되어 DEL키를 눌러도 바이오스 진입이 안됩니다. 메인보드 바이오스 들어갈 일이 없어서 빠른 부팅을 사용해도 지금까지 문제가 없었는데요 최근 윈도우11을 사용하기 위해 바이오.. 2023. 10. 10.
오라클 인덱스가 타지 않는 경우 1. 인덱스 컬럼 절을 변형한 경우 - 수식이나 함수 등으로 인덱스 컬럼 절을 변형하였을 경우 - 반드시 함수나 수식을 사용해야 하는 경우에는 인덱스 컬럼 부분에 적용하지 말고, 여기에 대입되는 컬럼이나 상수부분에 적용해야 한다. BAD SELECT column_name FROM table_name WHERE TO_CHAR(column_name, 'YYYYMMDD') = '20130909'; 추천 SELECT column_name FROM table_name WHERE column_name = TO_DATE('20130909', 'YYYYMMDD'); BAD SELECT column_name FROM table_name WHERE column_name * 100 > 10000; 추천 > SELECT co.. 2023. 9. 8.
텃밭 가꾸기. https://m.blog.naver.com/agrix2015/221284024051 베란다 텃밭 무작정 키우세요? 비료 사용부터 농약, 병해충관리까지 알고 키워봐요! 베란다 텃밭이란? 베란다라고 하는 아파트 발코니는 건축물의 내부와 외부를 연결하는 완충공간으로 ... blog.naver.com 2023. 8. 14.
DBeaver 엑셀 붙여넣기. DBeaver의 Advanced Paste 기능으로 엑셀 데이터를 복사해서 DB에 그대로 붙여넣기가 가능합니다. 1. 엑셀 셀을 드래그하여 복사 2. dbeaver에서 데이터 조회 후, 붙여넣을 대상에 마우스 오른쪽 클릭 -> Advanced Paste 클릭 3. 옵션 선택 - insert multiple rows : 여러 행 삽입 옵션 (체크 해지 시, 데이터가 열로 입력) - insert NULLs : null 입력 옵션 (체크 해지 시, 데이터가 빈값 ''으로 입력) - NULL value mark : 특정 문자열을 null로 치환(빈값 기본 설정) 4. 입력된 데이터 확인 - 변경된 데이터는 옅은 주황색으로 마킹됨을 확인(붙여넣기를 하더라도 변경된 데이터가 없으면 마킹되지 않음) - 좌측 하단 C.. 2023. 8. 9.
오라클 프로시저 컴파일 오류 확인하는 법 프로시저 컴파했을때 오류메시지가 정확히 안나오고 스키마 브라우저(Schema Browser)에서 X 표시가 나올때가 있다. 프로시저가 컴파일 오류날때 등록되는 테이블이있다. 몇번째 라인에서 어떤 오류가 발생하는지 정확하게 확인이 가능하다. SELECT * FROM ALL_ERRORS WHERE name = 'SP_AFCR_ORD_PROC'; 2023. 7. 26.
오라클 프로시저 생성 및 호출 IN, OUT 사용법 ----------------------------------------------------------------------( DBEAVER 기준) 간단한 호출 방법-아웃파라메터를 ?로 해서 실행하면 된다. CALL 프로시저명('in파라메터',' in파라메터', ?, ?); 위에 구문을 실행하면 아웃파라메터 내용이 Result 창에 찍힌다. 프로시저에서 찍은 로그들은 ctrl + shift + o 를 하면 로그들을 확인할수 있는 Output 창이 보인다. (주의 : 실행시 구문 상단에 주석이 있으면 오류가 발생한다. 블럭잡고 실행하거나  상단에 주석을 제거해야한다.)----------------------------------------------------------------------    #파라.. 2023. 7. 26.
오라클 PL/SQL 기본 구문, 프로시저 디버깅 PL/SQL 블록 구조 DECLARE -- 선언부(옵션) -- 변수나 상수를 정의 BEGIN -- 실행부(필수, BEGIN-END) -- 로직 수행(일반 SQL문, 조건문, 반복문 등) EXCEPTION -- 예외처리부(옵션) -- 로직 수행중 에러 발생 시 예외 사항 처리 END; 오라클 PL/SQL 작성시 기본 구문정리, 프로시저등을 바로 생성하지 않고 다음과 같이 테스트 후 생성하면 된다. DECLARE M_NAME VARCHAR2(50) := '투케이'; --초기 변수 선언 --특정테이블의 컬럼타입을 변수에 지정하기. --V_ENAME 테이블명.컬럼명%TYPE; OUT_MSG VARCHAR2(50); NUM NUMBER:=11; v_num NUMBER:=0; -- 사용자정의 EXCEPTION 선언.. 2023. 7. 26.
반응형