본문 바로가기

스프링

제이쿼리(jQuery) - Selector (선택기 / 선택자) 전반적인 내용 더보기
제이쿼리(jQuery) - 선택기(Selector)로 자식요소 선택 selector를 이용해서 스타일을 바꿔보자. 우선 아래예제를 보자 위의 예제를 브라우저로 보면 아래와 같은 결과가 나온다. jQuery로 코딩된 부분을 설명하자면 li태그 에 있는 u태그의 배경색을 노란색으로 바꾸는 예제이다.JAVA항목에 태그로 감싸져 있고 jQuery에서 Q가 감싸져 있다 그래서 이들의 바탕색은 노란색이다. 다른 예를 보자 위의 예제는 myfavorites라는 id속성에 스타일을 적용하는것이다. 가 코딩이 되어 있다. jquery에서 이 아이디 안에 있는 li에다가 스타일을 적용하는것이다. 적용될 스타일은 float:left;list-style:none;margin:10px;을 주었다. 결과는 아래와 같다. id, class속성만 이해하면 어렵지 않는것 같다. 그럼 조금 더 나아가서.. 더보기
jquery 란? (정의) - 가장 많이 사용되며 잘 만들어진 오픈소스 자바스크립트 라이브러리 - 웹 개발자에게 유행이 아니라 필수 - CSS에서 사용되는 선택기/선택자(selector)개념으로 DOM의 멤버에 접근 가능 - 플러그인 개념을 도입해서 기본 기능에서 쉽게 확장 기능으로 업그레이드 가능 - 웹에서 자주 사용하는 기능의 간편화 - 메서드 체인 방식에 따른 효율적인 코딩 가능 - 크로스 브라우저 지원 - 사용하기 편한 Ajax프로그래밍 가능 - 공식 사이트 : jQuery 소스 및 문서 제공 http://jquery.com - jQuery UI사이트 : 화려한 UI관련 플러그인 제공 http://jqueryui.com 더보기
자바 쓰레드(Thread) - Atomic 예제 동기화를 배울때 synchronized와 volatile을 공부했다. synchronized는 메소드 시그니쳐나 블럭(?)을 지정할때 volatile은 변수에 대한 동기화였다. 아래 예제를 보자. 예제는 백만까지 for루프를 돌면서 합계를 구하는 것이다. 위의 예제를 돌려보면 결과값이 499999500000 나온다(백만의 합계이다) 걸린 시간은 대략 컴퓨터에 따라 다르지만 내 컴퓨터 기준으로는 32ms 다.(내 컴이 꾸리다) 그럼 쓰레드를 두개 생성후 돌리면 어떻게 될까? 499999500000 * 2 = 999999000000 가 나와야 하지 않을까? 근데 아니다. 가끔씩 값이 다르게 나온다.(아래처럼) 이유는 아무리 변수에 대한 volatile처리를 했어도 add메소드에서 동시에 두개가 작업이 들어가.. 더보기
자바 쓰레드(Thread) - Volatile 예제 요즘은 64비트 컴퓨터가 많이 보급됐지만 불과 몇년해도 32비트였다. 물론 지금도 엄청 많다. Volatile이라는것은 변수에 동기화(?)를 거는 것이라고 한다. 자바에서 int는 32비트 연산을 수행하지만 long이나 double은 64비트 연산을 한다. 그래서 int는 원자연산이라고 한다(더이상 쪼갤수 없는..) 이와 달리 long은 아니다. 쓰레드에서 long형으로 연산을 하다 보면 값이 엉뚱하게 나올 수 있다. 아래예제가 그 예이다. long형 두개를가지고 비교하는 것이다. 무한 반복을 해서 첫번째 long을 꺼내서 while문에서 똑같은 0번째 를 꺼내와서 비교하는것이다. (말이 좀 이상한가 아무튼 같은 값을 비교 하는것이다.) 메인에서 쓰레드 한개를 생성해서 돌리면 오류없이 잘 돌아간다. 왜냐.. 더보기
자바 쓰레드(Thread) - Volatile 더보기
자바 쓰레드(Thread) - 쓰레드(Thread) 생성자/소비자패턴 생성자/소비자 패턴이다. 예제를 보자 전에 했던 자판기나 은행예제와 다를께 없다. 아래는 컴퓨터로 프린터를 사용할때를 생각해서 만든 예제이다. 컴퓨터 3대로 프린터를 동작하는것이다. 총 클래스 4개와 인터페이스 1개로 구성되어 있다. 더보기
자바 쓰레드(Thread) - 쓰레드로컬(ThreadLocal) 쓰레드 로컬이란걸 정말 몰랐었다. 지금도 잘 모르지만 일단 정의를 보자 ThreadLocal이란? 일반 변수의 수명은 특정 코드 블록(예, 메서드 범위, for 블록 범위 등) 범위 내에서만 유효하다. { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영역에 변수를 설정할 수 있기 때문에, 특정 쓰레드가 실행하는 모든 코드에서 그 쓰레드에 설정된 변수 값을 사용할 수 있게 된다. 아래 그림은 쓰레드 로컬 변수가 어떻게 동작하는 지를 간단하게 보여주고 있다.(출처 : 자바캔) 이라고 되어 있다. 아래 설명도 보자 ThreadLocal의 기본 사용법 .. 더보기
자바 쓰레드(Thread) - 쓰레드(Thread)의 동기화 (synchronized) 자판기 예제 자판기를 보자. 자판기안에는 음료수들이 차례차례로 들어 있다 그리고 공급자가 있고 사람들이 돈을 넣고 음료수를 빼먹는다. 공급자 - 음료수 공급자 소비자 - 돈을 넣고 음료수를 빼먹는 사람 만약 자판기에 음료수가 없으면 소비자가 돈을 넣고 음료수를 뽑을 수 있을까? 없다. 공급자가 음료수를 넣기 전까지는 소비자가 사용하면 안된다. 예제로 네개의 클래스를 만들어 보자 메인 클래스, 공급자 클래스, 자판기 클래스, 소비자 클래스를 아래와 같이 만들었다. 자판기에서는 자바 stack 을 사용하였다. 처음 넣은 음료수는 나중에 나온다고 설정해서 사용. getDrink()는 소비자가 뽑아 먹는 것을 구현한것인데.. while조건문에 스택이 비워져있으면 안에서 스레드 wait을 걸었다. 왜냐면 음료수도 없는데 뽑아.. 더보기
자바 쓰레드(Thread) - 쓰레드(Thread)의 동기화 (synchronized) 더보기