본문 바로가기
반응형

전체 글161

개발자 프로그램 체크리스트 개발이 끝난 후 단위테스트 전 개발자가 기본적으로 해봐야할 테스트 목록 정리.... (제가 개인적으로 보려고 만든 목록입니다. 혹시 보시고 부족한 내용 보이시면 댓글 환영합니다.) - 모든 조건들을 하나씩 넣어보면서 테스트한다.(데이터가 있는 조건 / 데이터가 없는 조건) 변해야하는 값이 계속 같게 나온다면 Mybatis local session cache 문제일수 있다. - 마이바티스 $사용여부(클라이언트 단에서 넘어온 파라미터인경우 사용금지,... 왠만하면 사용금지.) - 필수 조회조건 체크 - 필수 입력항목 체크 - 입력값 최대치 설정 체크 (입력항목은 항상 최대치로 입력해서 테스트한다. ) - 입력값 날짜,숫자등 범위 체크 - 숫자 ,문자등 타입별 입력가능 제한여부 체크 - 저장시 Validati.. 2022. 7. 22.
NULL 처리 시 유의 사항 및 항상 헷갈리는 내용 총정리 출처 : https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=52319 [Oracle] 오라클 NULL 사용시 주의사항 정리 오라클에서 쿼리문을 작성할 때 NULL을 제대로 이해하지 않으면 원하는 결과가 출력되지 않을 때가 많다. 다른 DB나 언어와 다른 부분이 있으니 아래의 예제를 보면서 오라클에서 NULL 사용법을 조 gent.tistory.com 개발자에게 NULL은 쉬우면서도 어려운 존재다. 경험이 많은 개발자라도 NULL의 예상치 못한 결과에 당황하는 경우가 간혹 있다. 또한 NULL은 성능에도 영향을 미치며 잘못된 결과값을 리턴 하기도 한다. 오라클에서 NULL은 길이가 0인 문자열과 동일한 의미를.. 2022. 7. 22.
오라클 LNNVL함수 / nullable 컬럼에 부정 조건을 사용해야하는 경우 출처 : https://gent.tistory.com/387 조건문은 긍정문으로 작성하는게 국룰이지만 가끔은 부정문을 써야할때도 있다. 그런데 문제는 해당 컬럼이 Nullable일때 그냥 where col != '값' 이렇게 해버리면 col의 값이 null이 row는 검색이 안된다. 굉장히 자주 일어날수 있는 오류다. 이걸 해결하려면 nvl로 col을 치환하거나, or문으로 is null까지 비교해야하는데. 오라클에서는 이걸 해결하기 위해 존재하는 함수가 LNNVL이다. 오라클에서 LNNVL 함수는 간단한 함수 같지만, 함수의 기능을 제대로 이해하지 않으면 아주 복잡하게 느껴지는 함수이다. LNNVL 함수는 해당 컬럼에 NULL이 존재할 경우 NULL 처리와 조건문을 한 번에 연산하기 위해서 사용한다. .. 2022. 7. 22.
MSSQL 임시테이블 # ##, 테이블변수 @ 차이와 사용방법 출처:[islove8587님의 블로그] https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=islove8587&logNo=220608680181 [MSSQL] 임시 테이블 vs 테이블 변수 1. 임시 테이블 (1) 설명 - 임시 테이블의 테이블 이름은 숫자 기호(#)로 시작한다. - 사용자가 연결이 끊... blog.naver.com 출처: [금백조의 개발 블로그:티스토리]https://goldswan.tistory.com/10 [MSSQL]SELECT INTO문을 통한 임시테이블 생성(SELECT INTO절) 서론 평소에 임시 테이블을 생성할 시 CREATE DDL문을 직접 작성하여 생성했었습니다. 그런데 다른 분이 작성하신 쿼리를 .. 2022. 7. 21.
MSSQL 프로시저 총정리 출처 : https://gameserverengineer-k.tistory.com/7 저장 프로시저(Stored Procedure)란 무엇인가? SQL Server에서 제공되는 프로그래밍 기능. 즉, 쿼리문의 집합으로써, 어떠한 동작을 일괄 처리하는 용도로 사용된다. 저장 프로시저의 정의 형식 1 2 3 4 5 6 7 8 9 10 11 12 13 14 --Transact-SQL Stored Procedure Syntax CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT .. 2022. 7. 21.
MSSQL 개발시 유의 또는 참고 사항 오라클로 개발하다 가끔 MSSQL을 개발하게 되면 당황스러운 경우가 생겨 몇가지 정리해둔다. 1. WITH(NOLOCK) 개발 프로젝트마다 다를수 있지만 , 내가 투입됐던 모든 프로젝트에서는 의무적으로 SELECT문에 무조건 WITH(NOLOCK)을 걸었다. 아마도 모든 프로젝트가 그러할거 같다. 사용법은 간단하다, SELECT시 그냥 테이블명 옆에 WITH(NOLOCK)을 명시해주면 된다. 자세한 설명은 밑에 참고. https://heavenlake.tistory.com/128 MSSQL WITH(NOLOCK) , SELECT시 잠금무시 MSSQL 은 기본적으로 SELECT 시 공유잠금(S Lock) 이 걸린다. 이는 MSSQL 의 기본 격리수준(Isolation Level) 이 Read Committ.. 2022. 7. 21.
MSSQL 형변환 오류 벗어나기 TRY_CONVERT TRY_CONVERT : CONVERT 시에 나오는 모든 에러를 NULL로 처리하여 반환한다. 가끔 데이터 형변환을 하거나 타입별로 형변환을 처리하는데 기존 데이터가 해당하는 타입에 맞지 않는경우 에러를 뱉어 내며, 해당하는 데이터를 찾는건 매우 힘든 일이다. (ex: convert(date,'1') 과 같이 특정 문제가 되는 데이터를 찾아서 바꿔줘야하는데 데이터가 몇십만건이 될 경우 잡아내기 매우 힘듬..) 고로 TRY_CONVERT를 사용하여 해당하는 데이터는 무시하여 정보를 추출하도록 한다. 단, TRY_CONVERT의 경우 MS SQL 2005버전 부터 지원하며 지금 현재 나의 데이터베이스가 2005 버전 이전에서 만들어졌고, 해당하는 데이터베이스를 2016등의 버전에 IMPORT할 경우 호환성 .. 2022. 7. 21.
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.
반응형