728x90
반응형
728x90
반응형
728x90
반응형

# 링크 생성 쿼리 (to 원격)

create database link LinkNaming
  connect to idname identified by "password"
  using '(DESCRIPTION =

    (ADDRESS =

      (PROTOCOL = TCP)

      (HOST = 111.111.111.111)

      (PORT = 1521))

    (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';

# link 사용방법
select * from APP_AUTH@LinkNaming;
select max(LOG_DT) from APP_LOG@LinkNaming;

 

 

# 출처

계정리스트 및 권한 : https://aileen93.tistory.com/17
원격 오라클 링크DB : https://mikyung.net/479  

728x90
반응형

'코딩 삽질' 카테고리의 다른 글

[java] java.lang.NumberFormatException  (0) 2019.11.17
[oracle] GRANT (권한)  (0) 2019.11.17
[git] remote 추가  (0) 2019.11.17
[javascript] 동적 태그 추가  (0) 2019.11.06
[javascript] ckeditor 유효성 체크  (0) 2019.11.06
728x90
반응형

1. git remote add [단축이름] [url]

단축이름은 origin가 기본이므로 다른 remote를 추가한다면 다른 단축이름으로 지정 (예 : addremote)

 

2. git remote -v

현재 해당 폴더에 설정된 git 정보

 

3. git config http.sslVerify false

ssl 오류 해결

 

4. git push -u [단축이름] master

 

5. git remote set-url [단축이름] [url]

remote URL 변경하기

출처 : http://minsone.github.io/git/github-managing-remotes-changing-a-remotes-url

728x90
반응형

'코딩 삽질' 카테고리의 다른 글

[oracle] GRANT (권한)  (0) 2019.11.17
[oracle] link db  (0) 2019.11.17
[javascript] 동적 태그 추가  (0) 2019.11.06
[javascript] ckeditor 유효성 체크  (0) 2019.11.06
[메모] 네이버 클라우드 서버 - 윈도우 서버 세팅  (0) 2019.11.06
728x90
반응형

기존에 썼던 코드를 그대로 가져와서 적은거라 좀 장황한데

 

# 셈플1

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
function AddCareerLine(){
    var cnt = $('.career').length;
 
    // textarea 추가
    var nCareer = document.createElement("textarea");
    var sName = 'careerList['+ cnt +'].career';
    var sId = 'career'+cnt;
    nCareer.setAttribute("rows"3);
    nCareer.setAttribute("cols"120);
    nCareer.setAttribute("name", sName);
    nCareer.setAttribute("id", sId);
    nCareer.setAttribute("class""career");
    document.getElementById("tchrCreear").appendChild(nCareer);
 
    // 줄바꿈
    var tagBr = document.createElement("br");
    document.getElementById("tchrCreear").appendChild(tagBr);
}
 
function DeleteCareerLine(){
    var cnt = $('.career').length;
 
    // textarea가 2개 이상인 경우 마지막 textarea를 삭제
    if (cnt > 1) {
        var sId = 'career' + (cnt-1);
        $('#'+sId).remove();
    }else {
        console.log('textarea count : 1');
    }
}
cs

 

javascript로 만드는 건데

태그를 만들고 var nCareer = document.createElement("textarea");

태그의 속성을 지정한다 nCareer.setAttribute("rows"3);

마지막으로 특정 태그 하위에 자식으로 넣어준다. document.getElementById("tchrCreear").appendChild(nCareer);

삭제는 jquery를 썼는데 이렇게 삭제한다. $('#'+sId).remove();

 

 

# 셈플2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 재료 입력 div 추가
function addMaterialfrm(){
    
    var addIndex = $("#main_nextIndex").val();
    $("#main_nextIndex").val(Number(addIndex) + 1 );
 
    var addDivTag = "<div id='main_div_" + addIndex + "' style='margin-bottom: 5px;'>";
    addDivTag += "<input type='text' name='main[" + addIndex + "].mtrlNm' id='main[" + addIndex + "].mtrlNm' placeholder='재료명' style='width:250px;margin-right: 22px;'>";
    addDivTag += "<input type='text' name='main[" +addIndex + "].qty' id='main[" + addIndex + "].qty' placeholder='수랑' style='width:250px;margin-right:5px;'>";
    addDivTag += "<input type='hidden' name='main[" +addIndex + "].mtrlSeq' id='main[" + addIndex + "].mtrlSeq' value='0'/>";
    addDivTag += "<input type='hidden' name='main[" +addIndex + "].mtrlTp' id='main[" + addIndex + "].mtrlTp' value='main'/>";
    addDivTag += "<button type='button' class='btn btn-danger btn-sm' onclick='delMaterialfrm(`main`, " + addIndex +")'><i class='glyphicon glyphicon-minus'></i></button>";
    addDivTag += "</div>";
 
    $("#main_span").append(addDivTag);
 
}
// 재료 입력 div 삭제
function delMaterialfrm(id){
 
    var delDivId = "main_div_" + id;
    $("#"+delDivId).remove();
 
}
cs

 

이건 그냥 스트링으로 하나하나 써서 만든 경우.

복잡해 보이지만 사실 간단한 내용으로 스트링으로 태그를 모두 작성하고

마지막에 jquery로 특정 태그 하위에 추가한다. $("#main_span").append(addDivTag);

 

* 관련글

[javascript, jquery] 동적 tag 추가시 이벤트 : https://deonggi.tistory.com/119

 

 

728x90
반응형

'코딩 삽질' 카테고리의 다른 글

[oracle] link db  (0) 2019.11.17
[git] remote 추가  (0) 2019.11.17
[javascript] ckeditor 유효성 체크  (0) 2019.11.06
[메모] 네이버 클라우드 서버 - 윈도우 서버 세팅  (0) 2019.11.06
[tomcat] memory leak 에러  (0) 2019.11.05
728x90
반응형
1
2
3
4
5
6
7
// 입력 내용 받기 = CKEDITOR.instances.textarea태그의id.getData();
if(CKEDITOR.instances.cntnt.getData() =='' 
        || CKEDITOR.instances.cntnt.getData().length ==0){
    alert("내용을 입력해주세요.");
    $("#cntnt").focus();
    return false;
}
cs

 

출처 : https://stackoverrun.com/ko/q/11691633

 

728x90
반응형
728x90
반응형

네이버 클라우드 서버를 사용할 기회가 생겨서 메모해둠.

 

# 생성부터 접속, 반납

https://www.ncloud.com/guideCenter/guide/3

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

# 공인 IP 란 ~ 반납 (월 4,032원, 시간당 5.6원, vat 별도)

https://docs.ncloud.com/ko/compute/compute-2-1-v2.html

 

설명서

사용하기 전에 Q. 공인 IP는 어떤 상품인가요? 공인 IP가 필요한 경우 고객이 지정한 서버에 공인 IP를 할당해 주는 서비스입니다. Q. 공인 IP는 어떻게 할당되나요? 공인 IP를 신청하여 서버에 적용하면 고객이 요청한 서버에 할당됩니다. Q. 공인 IP는 최대 몇 개 제공되나요? 공인 IP는 리전별로 리전 내 생성된 서버 수와 동일하게 제공됩니다. 공인 IP의 생성 가능 개수가 리전별로 관리되어, 필요한 Zone에 공인 IP를 생성할 수 없는 경우

docs.ncloud.com

 

# 방화벽 설정 (ACG)

https://docs.ncloud.com/ko/compute/compute-2-3.html

 

설명서

사용하기 전에 Q. ACG란 무엇인가요? ACG는 Access Control Group의 약자로, 서버 간 네트워크 접근 제어 및 관리를 할 수 있는 IP/Port 기반 필터링 방화벽 서비스입니다. 고객은 기존 방화벽 (iptables, ufw, 윈도우 방화벽)을 개별적으로 관리할 필요 없이 서버 그룹에 대한 ACG Rule을 손쉽게 설정하고 관리할 수 있습니다. Q. ACG 주요 특징에는 어떤 것이 있나요? VM에 일괄 적용 및 수정, 재사용이 가능하여

docs.ncloud.com

 

 

역시 구글 검색이 잘 되네...

728x90
반응형
728x90
반응형

tomcat 8.5.41

gradle 프로젝트

 

The web application [projectName] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

 

tomcat에서 war 배포시 위와 같은 오류 메시지와 함께 창이 사라졌다.

다른 사람들은 무시해도 된다고 했든데 난 tomcat 창이 죽어버리니 미쳐버릴 노릇.

해결방법으로 제시된 것은 프로젝트의 lib 폴더에서 드라이버.jar 파일을 제거 후 war를 만들고,

tomat설치폴더/lib/ 에 드라이버.jar 파일을 넣으라는 것이다.

 

 

그래서 아래와 같이 해결

 

1. gradle의 mysql driver에 해당되는 것을 아래와 같이 변경한다.

compile("mysql:mysql-connector-java:5.1.13") => providedCompile("mysql:mysql-connector-java:5.1.13")

providedCompile 은 컴파일할때는 포함하고 war 생성시는 제외한다는 의미

 

2. gradle을 사용하고 있다면 아마도 드라이버.jar 파일이 없을테니 검색해서 다운로드 한다.

https://dev.mysql.com/downloads/connector/j/5.1.html

 

3. 다운로드 받은 드라이버.jar 파일을 tomcat 설치 폴더의 lib에 복사해 준다.

tomcat설치 폴더가 C:\apache-tomcat-8.5.41 라면 C:\apache-tomcat-8.5.41\lib 여기에

 

 

이렇게 해서 해결.

아.. 모르면 손발이 고생한다더니... ㅜ_ㅜ

 

 

 

Tip1 : tomcat 설치에 대한 정보는 아래 url 참조

https://zetawiki.com/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%ED%86%B0%EC%BA%A38_%EC%84%A4%EC%B9%98

 

Tip2 : tomcat 실행 후 창이 사라질 때

1. cmd 명령어로 창을 연다.

2. 1번창에서 tomcat 설치폴더의 startup.bat와 동일한 폴더로 이동한다.

tomcat설치 폴더가 C:\apache-tomcat-8.5.41 라면 C:\apache-tomcat-8.5.41\bin 여기

3. 2번 위치에서 catalina run 이라고 입력하고 엔터

4. tomcat 창이 사라질 에러까지 표시하고 다시 명령어를 입력하라는 커서가 깜빡이는 상태로 돌아간다.

5. 4번 상태에서 마지막에 표시되는 에러를 확인

 

 

* 관련글

[Tomcat] 실행에러 : https://deonggi.tistory.com/76
[Tomcat] java.lang.IllegalArgumentException: The main resource set specified [FOLDER_NAME] ... : https://deonggi.tistory.com/77
[tomcat] war 배포하기, 가상 디렉토리 : https://deonggi.tistory.com/126

 

728x90
반응형
728x90
반응형

thymeleaf 3.0.10 이상을 사용하는 html에서 javascript 함수에 인수를 전달할때

 

기존에는 이렇게 작성했다.

1
<a href="#" th:onclick="${'writeProc('+ detailVO.itemSeq+')'}">Delete</a>
cs

 

하지만 아래와 같은 에러 메시지가 나온다.

 

org.thymeleaf.exceptions.TemplateProcessingException: Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in the context of this expression, including Strings or any other object that could be rendered as a text literal. A typical case is HTML attributes for event handlers (e.g. "onload"), in which textual data from variables should better be output to "data-*" attributes and then read from the event handler.

 

그래서 thymeleaf 3.0.10 이상에서는 이렇게 바꿔야 한다.

1
<a href="#" th:onclick="writeProc( [[${detailVO.itemSeq]] )">Delete</a>
cs

 

함수 호출 부분이 보기에 좀더 직관적이라 좋다.

 

 

 

출처 : https://codeday.me/ko/qa/20190702/944892.html

728x90
반응형
728x90
반응형

난 숫자를 입력한 적없는데?

해당 변수는 문자였고 난 분명 문자를 입력했다.

 

java.lang.NumberFormatException: For input string: "N"

 

보라! 어디가 숫자냐! .....

 

요점은 N 한글자를 'N'로 입력한 아래와 같은 케이스다.

1
2
3
<if test="checkingKey != 'N'">
    AND CHECKING_KEY = #{checkingKey}
</if>
cs

 

아무래도 Java에서 char값을 'N' 같이 사용하기 때문인데,

char형은 결론적으로 숫자형이기 때문에 NumberFormatException이 나는것 같다.

 

해결책은 "checkingKey != 'N'"'checkingKey != "N"' 와 같이 따옴표 사용을 바꿔 주거나

"checkingKey != 'N'.toString()"처럼 .toString() 함수를 써주는 것이다.

 

 

 

출처 : https://yeo-eunny.tistory.com/74

 

 

728x90
반응형

+ Recent posts