본문 바로가기
반응형

분류 전체보기175

MSSQL WITH(NOLOCK) , SELECT시 잠금무시 MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committed 이기 때문이다. 즉, DML(INSERT, UPDATE, DELETE) 작업중인 ROW 또는 TABLE 에 SELECT 할 경우, 해당 작업이 끝나야 SELECT 할 수 있다는 의미이다. 만일 이렇게 수행된다면 DB의 성능은 떨어지고, 데드락(Deadlock) 이 발생될 수 있다. 이를 방지하기 위해 WITH(NOLOCK) 을 사용할 수 있다. WITH(NOLOCK) 의 격리수준(Isolation Level)은 Read Uncommitted 와 같다고 보면 된다. 즉, SELECT 할 ROW 또는 TABLE 이 잠겨있어도(작업중이여도).. 2022. 7. 21.
MSSQL 형변환 방법 CONVERT와 CAST MSSQL에서 사용되는 데이터 타입 변환 함수는 CONVERT함수와 CAST함수입니다. 두 함수 다 하나의 유형에서 다른 유형으로 데이터를 변환하는 데 사용합니다. 쓰는 방식만 조금 다르고 하는 일은 같습니다. 자세한 설명은 해당 사이트에 있으니 참조하시기 바랍니다. Conver함수와 Cast함수 사용링크 Convert 개인적으로 가장 많이 사용하는 데이터 변환 함수라고 생각합니다. 날짜 변환하는데도 유용하게 사용 가능합니다. 참고로 부동 소수점 또는 숫자에서 정수로 변환할 때 CONVERT() 함수는 결과를 자르고 다른 변환일 경우에는 반올림합니다. 사용법 --문법-- CONVERT(data_type[(length)], expression[style]) --예시-- SELECT CONVERT(NVARC.. 2022. 7. 21.
MS SQL CRUD 자동 생성 프로시저 쿼리 프로그램을 개발하다보면, 반복적으로 CRUD SQL문을 작성하는 경우가 많다. 시간을 어느정도 절약 할 수 있도록 공유된 프로시저를 이용하면 기본 SELECT, INSERT, UPDATE, DELETE 문을 만들어주기에 개발속도 및 개발 효율성을 증가 시킬 수 있다. -- EXEC [dbo].ZZZ.PROCEDURE_CREATOR '첫번째파라미터','두번째파라미터','세번째파라미터' 첫번째파라미터 => Database 테이블명 두번째파라미터 => 프로시저 생성자이름 세번째파라미터 => 프로시저에 대한 설명 공통문 CRUD 자동 스크립트 -- ============================================= -- AUTHOR: ProSungsiler -- CREATE DATE: 2019-0.. 2022. 7. 21.
xPlatform Static에서 개행하기 Static에서 값 넣을때 개행하고 싶으면 밑에와 같이 하면된다. Static00.text = "가" + String.fromCharCode(13) + String.fromCharCode(10) + "나"; 2022. 7. 20.
xPlatform 데이터셋 updatecontrol setRowType 주의 사항 개발하다보면 데이터셋의 rowtype을 수동으로 고쳐야만하는 상황이 생긴다. 그럴때는 updatecontrol 을 false로 하고 setRowType을 이용해서 rowType을 고쳐주면 된다. 하지만 맘대로 updatecontrol 을 false, true로 왔다갔다해버리면 데이터셋이 비정상적으로 동작할수 있으니 주의해야 한다. 고치고 싶다면 updatecontrol의 변경은 true에서 false로만 변경해서 사용해야 한다. 예를들어 Dataset01.deleteRow(0); Dataset01.deleteRow(3); this.Dataset01.updatecontrol = false; for(var i = 0 ; i < this.Dataset01.rowcount ; i++) { this.Dataset.. 2022. 7. 20.
nexacro showcase 넥사크로 쇼케이스입니다. http://support.tobesoft.co.kr/Next_JSP/nexacro17_deploy/Showcase/launch.html 2022. 7. 20.
넥사크로 현재 화면에서 사용 중인 데이터셋 목록 가져오기 넥사크로 개발하다면도 현재 화면에서 개발중인 데이터셋들에 실제 값이 궁금할 때가 있다. 매번 trace할수는 없기 때문에 이 팝업을 사용하면 싶게 알수 있다. 사용법은 단순하게 사용하고 싶은 화면에서 이화면을 호출해주면 되는데. 공통으로 단축키를 만들어 넣어도 되고. 아니면 화면에서 직접 호출해서 써도 된다. ex> application.open("callVd","위치::vd.xfdl",this,"", "showtitlebar=true resizable=true border=1",50,50,1024,800); 참고로 알아둬야할 사항은 위에 edtWorkDiv가 중요한데. 보통 main Frame안에 Left, Top, Work Frame(명칭다를수 있음)을 만들고 메뉴를 누르면 Wokr Frame 안에 .. 2022. 7. 20.
nexacro에서 객체, 폼, 프레임 간 접근방법 출처 : http://tobetong.com/?p=4934 nexacro에서 객체, 폼, 프레임 간 접근방법 – TOBETONG 업무 기능(화면 간 데이터 전달, 화면 제어 등) 구현 시에 많이 사용되는 팝업창, 폼, 프레임에 접근하는 방법을 nexacro에서 사용되는 실제 예제를 통해 알아보겠습니다. 이 같은 방법은 간단한 내 tobetong.com 업무 기능(화면 간 데이터 전달, 화면 제어 등) 구현 시에 많이 사용되는 팝업창, 폼, 프레임에 접근하는 방법을 nexacro에서 사용되는 실제 예제를 통해 알아보겠습니다. 이 같은 방법은 간단한 내용이지만 실제 업무를 할 때 많은 고객들이 혼동하는 기능이기도 합니다. 프로젝트 구조에(프레임 설정) 따라 접근을 해야 하는 방법이 달라질 수 있으므로 미리 .. 2022. 7. 19.
nexacro 기본세팅 및 엑스플랫폼 차이 Gernerate Path : Nexacro 파일을 웹화면(.xfdl.js) 파일로 Gernerate(build) 할 때 파일이 생성되는 경로를 지정해준다. Base Lib Path : 공통라이브러리(.js)가 있는 경로를 잡아준다. 외부컴포넌트 경로지정 : *.dll파일들이 있는 경로를 지정해준다. 넥사크로와 엑스플랫폼 가장큰 차이는 보통 xPlatform은 자체 브라우저를 사용해서 구동하지만 넥사크로는 파일을 Generate(Build)해서 *.xfdl.js 파일로 변환해 (웹표준에 맞춰) 웹에 뛰울수 있도록 해준다. (물론 자체 전용 브라우저를 실행도 가능) 따라서 넥사크로에 경우는 *.xfdl 파일과 *.xfdl.js파일 둘다 커밋 및 서버에 적용이 필요하다. Generate는 특수한 경우 아니면.. 2022. 7. 19.
대용량 insert 출처 : 어디선가 복사해둔 글인데 사이트를 잊어버렸는네요..;; ㅠㅠ 몇가지 방안이 있습니다. 그런데 명심하실 건, DBMS 에서 다량의 insert 쿼리는 매우 좋지 않다는 것입니다. 가장 좋지 않는 방법에서 좋은 방법 순으로 나열하겠습니다. 1. insert into ~ values ~; insert ~ values ~; ... 2-1. insert all into ~ values ~ into ~ values ~ ...; (Oracle) 2-2. insert into ~ select ~ union all select ~ ...; (MS SQL Server) 2-3. insert into ~ values ~, ~, ... (MySQL) 3. Bulk Insert Bulk insert 가 효율이 가장 좋.. 2022. 7. 6.
코틀린 Kotlin https://www.youtube.com/watch?v=SEPgoMZut6s&list=PLzkhjlqMgxvBil2PsIy23LGJ4NVZmDlRX 이 동영상 참고한 내용입니다. -- 필수세팅 1. file>setting -> editor > general > Auto Import -> java, kotlin 에 auto import 모두 체크 2. build.gradle(Module...) > plugins에 id 'kotlin-android-extensions' 구문추가. (현재 최신 버전에서는 kotlin-parcelize라고 기술해야한다.) -- 프로젝트 복사 / 새로열기 / 프로젝트 이름 바꾸기 https://www.youtube.com/watch?v=GH29nCukxd8&list=PLzkhj.. 2022. 7. 1.
REST API 간단정리 ///////////////////////// ///// Rest API //// ///////////////////////// - REST API란 데이터 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. REST API라는게 크게 어렵게 생각할 필요 없이 그냥 보통 웹서비스 인데. 일반 웹처럼 view를 리턴해주는게 아니고 요청에 따른 정보를 Json이나 XML등으로 데이터값을 리턴해주거나 요청에 따라 데이터를 저장, 삭제해주는 서비스이다. 그리고 그역활을 @RestController을 사용한다(@Controller 와 @ResponseBody를 합쳐놓은 어노테이션이다) ( 일반 웹에서도 Ajax로 요청하고 데이터 받을때 @ResponseBody를쓰면 .. 2022. 7. 1.
Spring Boot 프로젝트 생성 출처: https://daslyee.tistory.com/80 [Daslyee:티스토리] 1. 다운로드 : https://spring.io/tools 2. 여기서는 윈도우용으로 다운로드 후 jar 파일을 설치(더블클릭) 그렇다면 해당 폴더가 보일 것이고, 들어가서 SpringToolSuite4 실행 (한글이 없는 경로에 압축을 풀고, 실행하길 권장) 3. 프로젝트 생성(file > New > Spring StarterProject) 4. name과 group, package 등 이름을 정하고 취향에 맞게 java, war 설정 후 Next 5. 대중적인 Spring Web 선택 후 Next. 이게 뭔지 확인해보는 것도 개발 이론에 도움이 될듯 (boot 버전에 따라 보이는 것이 다름. 당황하지 말고 Sp.. 2022. 7. 1.
기초 문법(NEXACRO 17.1 기준) NEXACRO 17.1 기준 동영상 강좌 https://www.youtube.com/playlist?list=PLgoHUQa-ZzHAbNjKAl1DyWDrseM_NxxAG 투비소프트 넥사크로플랫폼 17(온라인 교육 녹화본) www.youtube.com - 로그출력 nexacro.getApplication().trace("log"); this.alert('log'); - 컴포넌트 속성 this.btn.text; // 속성값 this.btn.set_text("속성값"); // 꼭 set을 써줘야함. - 변수선언 var str1 = ""; // 자신의 현스크립트 영역에서만 사용가능. (자신에 폼에서 또는 다른 폼에 스크립트에서도 이건 접근못함) this.str2 = ""; // 자신의 폼이나 다른폼에서도 접근.. 2022. 3. 21.
쿠키의 보안 취약점 출처사이트 : https://uoonleen.tistory.com/m/65 쿠키의 보안 취약점 1) XSS(Cross-Site Scripting) 공격 XSS 공격은 자바스크립트가 사용자의 컴퓨터에서 실행된다는 점을 이용한 공격입니다. 자바스크립트에서 "document.cookie"라는 명령어는 사이트에서 쿠키 값을 활용할 수 있게 하는 역할을 하지만 공격자들은 쿠키 값을 탈취하기 위해서 사용하기도 합니다. 2) 스니핑(Sniffing) 공격 스니핑이란 단어의 사전적 의미는 '코를 훌쩍이는, 킁킁거리며 냄새를 맡는' 입니다. 사전적 의미와 같이 스니핑 공격은 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나입니다. 수동적 공격에 해당하며, 도청할 수 있도록 설치되는 도구를 스니퍼(Sniff.. 2022. 2. 18.
쿠키 사용하기. 출처사이트 : https://uoonleen.tistory.com/m/65 ■ 쿠키(Cookie)란? ───── ▶ 웹서버가 웹브라우저에게 보내는 데이터 중의 하나입니다. 웹브라우저는 웹서버로부터 받은 쿠키 데이터를 내부 메모리 또는 별도의 폴더에 저장합니다. 그리고 그 웹서버를 방문할 때마다 쿠키를 요청 헤더(Request Header)에 담아 다시 전달합니다. ▶ 쿠키 생성 - 쿠키의 이름은 'ISO-8859-1'이어야 합니다. 이 말은 한글이 안된다는 것이죠. - 쿠키의 값은 'ISO-8859-1' 문자열이어야 합니다. 만약 한글을 저장하고 싶다면? ▶ URL 인코딩을 하여 저장하면 됩니다. ───── 쿠키의 사용 I : 쿠키 객체 생성 import java.io.IOException; import.. 2022. 2. 18.
쿠키등록 ( 팝업창 하루동안 열지 않기 & 하루에 한번만 띄우기) 출처 : https://ktko.tistory.com/m/109 팝업창 하루동안 열지 않기 & 하루에 한번만 띄우기 구현하기 자바스크립트를 사용해 팝업창을 띄우는 것은 자바스크립트에서 제공하는 window객체를 사용하면 간단하게 만들 수 있습니다. 많은 사이트에서 사이트에서 제공하는 이벤트와 제품홍보를 위해 팝업창을 방문자들에게 수없이 띄우지만 방문자들은 사이트에 방문할 때마다 팝업 닫는 것이 상당히 귀찮다. 그래서 하루동안 팝업을 보지 않기 라는 기능을 제공하고 있습니다. 이 기능을 사용하려면 자바스크립트의 쿠키와 윈도우 객체의 open만 알아야 합니다. main.html 소스 설명 먼저 메인화면 진입 할 때 에서 openPopup 메서드를 실행하게 됩니다. onload()는 모든 콘텐츠(css, 스크.. 2022. 2. 18.
오라클 페이징 쿼리. ------------------------------------------------------------------------------------------------------------------------- ▣ 문제 : 페이징 쿼리가 느리다. ▣ 데이터 건수 : 1억건 ▣ 인덱스 : PK_TB_TABLE ( COL_01, COL_02 ) ------------------------------------------------------------------------------------------------------------------------- 그냥 페이징인데! 속도가 느리다. 페이징 방식은 많이 있다. 그중에 대용량 데이터에서 많이 사용하는 ROWNUM 방식으로 쿼리 했지만 결과가 느.. 2022. 2. 18.
자바단(서비스단)에서 직접 특정 웹사이트 URL호출 하기 출처사이트 : https://nine01223.tistory.com/m/256 HttpURLConnection을 이용해서 POST 호출을 하려면 다소 복잡한 과정이 필요하다. 하지만 다음과 같은 심플한 과정을 통해서(정형화된 과정을 통해) 쉽게 호출할 수 있다! 자주 사용하는 코드이므로 유용하게 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.io.*; import java.net.*; import java.util.*; class Test { public static void main(String[] args) throw.. 2022. 2. 17.
webSocket 웹 채팅 만들기 출처사이트 : https://devmg.tistory.com/m/127 File > New > Spring Lagacy Project > Templates목록에서 맨 아레 Spring MVC Project 클릭 하고 생성 ※만약에 Spring Lagacy Project가 보이지 않는다면 마켓플레이스에서 STS를 입력후 STS3 Add-On 설치한다. org.springframework spring-websocket ${org.springframework-version} javax.websocket javax.websocket-api 1.1 기본 pom.xml에 2개의 의존성을 추가한다. 위 대로 디폴트 스프링mvc프로젝트를 생성하면 버전이 낮다. 그래서 웹소켓 인터페이스를 지원하는데 오류가 많이 났다 (.. 2022. 2. 17.
자바 static Map 사용과 초기화 출처사이트 : https://trudger.tistory.com/m/entry/static-map-%EC%82%AC%EC%9A%A9-%EA%B4%80%EB%A0%A8static-field-initialzation 맵핑정보를 static map 에 선언해 놓고 쓰고 싶다. 우선 static field를 선언했다. public class Test{ static private final Map mappingFileds = new HashMap(); } 초기화를 어떻게 할까?? 구글링 하니 몇가지 방법이 나왔다. 1. static initializer block private static final Map myMap; static { Map aMap = ....; aMap.put(1, "one"); aMap.p.. 2022. 2. 17.
반응형