반응형
var object1 = new Object();
console.log(object1);
// 위와 같은 경우에는 object1에 들어 있는 내용들을 확인 할 수 없다. 
// 안에 내용들을 확인하고 싶을 경우 아래와 같이 사용한다.

console.log(JSON.stringfy(object1));
반응형
반응형

DB에서 작업 중 테이블 하나에서 UPDAT하는 것이 아니라 여러개를 JOIN 해서 UPDATE해야 하는 경우가 종종 발생한다.

MySQL의 JOIN을 이용한 UPDATE 형식은 다음과 같다.

UPDATE [테이블명1] A INNER JOIN [테이블명2] B
ON A.[JOIN할 컬럼명] = B.[JOIN할 컬럼명]
SET [변경할 컬럼명] = 변경할 값
(WHERE 절)

 

예를 들어 학생 테이블(TB_STUDENT)에 학생의 성별(GENDER) 컬럼이 있다고 하고,

학생 정보 테이블(TB_STUDENT_INFO)에 학생의 학년 컬럼(GRADE)이 있다고 하자.

여기서, 남학생(GENDER = 'M') 중에서 4학년(GRADE = 4)인 학생들의 학년을 5학년(GRADE = 5)으로 UPDATE한다고 가정해보자.

UPDATE TB_STUDENT_INFO A INNER JOIN TB_STUDENT B ON
A.STD_ID = B.STD_ID
SET A.GRADE = 5
WHERE A.GRADE = 4 AND B.GENDER = 'M'

이렇게 UPDATE 문을 작성할 수 있다.

반응형
반응형

1. CHAR_LENGTH() 문자열 길이 구하기

SELECT CHAR_LENGTH('HELLO'); //5
SELECT CHAR_LENGTH('안녕'); //2

-> 문자열의 실제 길이를 구함.

 

2. LENGTH() 문자열 byte 수 구하기

SELECT LENGTH('JUNFE'); //5
SELECT LENGTH('준페'); //6
SELECT LENGTH('준페 안녕'); //13

-> 한글은 3bytes, 영어는 1bytes, 공백도 1bytes

반응형
반응형

SampleController 클래스를 생성 후

log4j 어노테이션을 적용하려는데 자꾸 빨갛게 다음과 같은 에러가 나왔다.

 

org.apache.log4j cannot be resolved to a type

org.apache.log4j.Logger cannot be resolved to a type

 

실제 에러 모습

알아보니 이유는 이렇다. Spring Legacy Project로 생성한 프로젝트는 기본적으로 Log4j가 추가되어 있으므로 그 설정과 중복되는 느낌(?)의 이유에서였다.

 

그렇다면 해결책은 두가지인데, 

1. 기본적으로 설정된 Log4j 그대로 사용, @Log4j 어노테이션 지우기.

2. @Log4j 어노테이션을 쓰자!

 

2번의 경우 pom.xml의 Log4j 부분에서

<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.15</version>
	<exclusions>
		<exclusion>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
		</exclusion>
		<exclusion>
			<groupId>javax.jms</groupId>
			<artifactId>jms</artifactId>
		</exclusion>
		<exclusion>
			<groupId>com.sun.jdmk</groupId>
			<artifactId>jmxtools</artifactId>
		</exclusion>
		<exclusion>
			<groupId>com.sun.jmx</groupId>
			<artifactId>jmxri</artifactId>
		</exclusion>
	</exclusions>
	<scope>runtime</scope> 
</dependency>

맨 아래에

<scope>runtime</scope> 을 주석처리 해주면 해결된다.

주석처리 한 모습
에러가 사라진 화면

반응형
반응형

처음 설정을 마치고 tomcat으로 프로젝트를 실행했을 때 나온 에러

스프링 기본 설정 후, 처음 tomcat으로 프로젝트를 실행했는데 다음과 같은 오류가 발생했다.

오류의 이름은 

 

URI$MalformedURIException

 

처음엔 이게 뭔가싶었는데 저기에 invalid character가 웹이라는걸 보고 한글이 문제구나 싶었다.

오류가 발생한 원인은 기본내장된 xml parser로는 한글처리가 부족하여 다른 xml parser를 추가해줘야한단다.

찾아보니 해결법은 간단했다. apache에서 만든 xerces 파서 dependency를 주입해주면 해결된다.

 

<!-- path -->
<dependency>
	<groupId>xerces</groupId>
	<artifactId>xercesImpl</artifactId>
	<version>2.9.1</version>
</dependency>

pom.xml 파일에 위 dependency 하나만 추가해주면 된다.

 

 

Xerces에 대한 정보 : http://en.wikipedia.org/wiki/Xerces

 

반응형
반응형
$(document).ready(function(){
	alert('junfe - reday');
});

$(window).onload(function(){
	alert('junfe - load');
});

 

두 코드의 차이점은 무엇일까?

 

- 호출 시점의 차이 : 한 페이지에 두 함수 모두 있으면 우선 순위는 .ready() -> .onload() 순으로 실행된다.

 

.ready()는 DOM tree 생성 완료 후 호출되고, .onload()는 모든 페이지 구성요소 페인팅 완료 후 호출 되는 것이다.

 

 

 

[html문서 렌더링 과정]

1. 불러오기(Loading)

 - 불러오기는 HTTP 모듈 또는 파일시스템으로 전달받은 리소스 스트림(Resource Stream)을 읽는 과정으로 로더(Loader가 이 역할을 맡음.

- 로더는 단순히 읽는 것이 아니라, 이미 데이터를 읽었는지도 확인, 팝업창을 열지말지, 또는 파일을 다운로드 받을 지를 결정한다.

 

2. 파싱(Parsing)

 - 파싱은 DOM(Document Object Model) 트리를 만드는 과정이다.

 - 웹 엔진이 가지고 있는 HTML/XML 파서가 문서를 파싱해서 DOM Tree를 만든다.

 - DOM Tree : 내용을 저장하는 트리로 javascript에서 접근하는 DOM객체를 쓸 때 이용된다.

 

3. 렌더링 트리 만들기(Rendering Tree)

- 렌더링 트리 : DOM Tree와는 별도로 그리기 위한 트리가 만들어져야 하는데, 그것이 렌더링 트리

(그릴 때 필요없는 head, title, body 태그 등은 없음 + display:none; 처럼 DOM에 있지만 화면에서 걸러내야할 것들은 걸러진 트리

 

4. CSS 결정

 - CSS는 선택자에 따라서 적용되는 태그가 다르기 때문에 모든 CSS 스타일을 분석해 태그에 스타일 규칙이 적용되게 결정.

 

5. 레이아웃(Layout)

 - 렌더링 트리에서 위치나 크기를 가지고 있지 않기 때문에 객체들에게 위치와 크기를 정해주는 과정을 레이아웃이라고 한다.

 

6. 그리기(Parsing)

 - 렌더링 트리를 탐색하면서 페이지를 그려나간다.

 

 



출처: https://hahahoho5915.tistory.com/28 [넌 잘하고 있어]

 

반응형
반응형

forEach를 사용할 때, for문처럼 특정한 범위만 지정해주려면 어떻게 해야할까?

간단하다. begin, end, step으로 범위를 지정해줄 수 있다.

 

// jstl forEach에서 특정 범위 제한 두기
	<c:forEach var="test" begin="0" end="9" step="2">
		<div></div>
	</c:forEach>

위 코드의 의미는 0부터 시작해서 9까지 2씩 올라가는 범위로 나타낸다는 의미이다.

반응형
반응형

회원 가입 작성 시 쓰기 좋은 자바스크립트

공백 체크, 특수문자 체크.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
// 공백체크, 특수문자 체크
<input type="text" name="personName" id="personName"/>
<input type="button" value="특수문자 체크" onClick="check()"/>
</body>
<script>
function check(){

	var str = document.getElementById('personName');

	 

	if( str.value == '' || str.value == null ){
	    alert( '값을 입력해주세요' );
	    return false;
	}

	var blank_pattern = /^\s+|\s+$/g;
	if( str.value.replace( blank_pattern, '' ) == "" ){
	    alert(' 공백만 입력되었습니다 ');
	    return false;
	}

	 

	//공백 금지
	//var blank_pattern = /^\s+|\s+$/g;(/\s/g
	var blank_pattern = /[\s]/g;
	if( blank_pattern.test( str.value) == true){
	    alert(' 공백은 사용할 수 없습니다. ');
	    return false;
	}


	var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi;

	if( special_pattern.test(str.value) == true ){
	    alert('특수문자는 사용할 수 없습니다.');
	    return false;
	}

	alert( '최종 : ' + str.value );

	/*
	if( str.value.search(/\W|\s/g) > -1 ){
	    alert( '특수문자 또는 공백을 입력할 수 없습니다.' );
	    str.focus();
	    return false;
	}*/

	}
</script>
</html>​
반응형

+ Recent posts