Joyful Project/java 3

객체지향을 넘어 관점지향으로 AOP

전 세계 자바 EE 개발 프로젝트의 80%가 원래 계획했던 목표를 다 이루지 못하고 실패로 끝나고 만다는 사실은 한편으로는 충격적이지만 어쩌면 당연한 결과라고 받아들여지고 있다. 개발자들은 좀 더 단순한 방법을 찾아야하고 그에 따라 더욱 효과적으로 명확한 결과를 얻어낼 수 있어야 한다. 소프트웨어 개발의 단순함의 핵심에 바로 관점지향 프로그래밍, AOP가 존재한다. 최근 몇 년 간 자바 개발자들이 경험하고 있는 새로운 기술의 흐름과 방향을 한마디로 말해보자면‘단순함(simplicity)의 추구’라고 할 수 있다. 아무리 정교하고 잘 설계된 프로그래밍 기술과 개발 방법론, 분석설계 기술을 사용한다고 하더라도 개발자들이 이해하고 구현해야 하는 애플리케이션의 구조와 구현 내용은 갈수록 복잡하고 다차원적이 되어..

Joyful Project/java 2010.05.17

synchronized

method 앞에 붙는 synchonized 는 예약어로써 실제적인 의미는 this를 sync 잡고 내용을 수행하는 것과 동일합니다. 즉, synchronized void method() { ... } 는 void method() { sychronized(this) { ... } } 로 사용합니다. 대부분 synchronized 에서는 함수명쪽에다가 적어주는 경우도 있긴 한데, 함수가 좀 길다든지 혹은 sync 때문에 생기는 지연시간등을 더 줄이고 싶은 경우 아래의 경우를 사용하기도 합니다. 하지만 스케줄링에 관련된 내용으로 인해 첫번째 메쏘드의 수행속도가 조금 빠릅니다. (instruction code 상으로 좀더 간단합니다) 기능은 현재 실행중인 객체 중 client 를 먼저 lock 한 객체 또는 ..

Joyful Project/java 2010.05.17

sandbox - java

요약 보호된 영역 안에서 프로그램을 작동시키는 보안 소프트웨어. 본문 샌드박스는 미국의 가정집 뒤뜰에서 어린이가 다치는 것을 방지하기 위해 만든 모래통(Sandbox)에서 유래하였다. 자바(Java)가 지원하는 기본 보안 소프트웨어로, 1996년 1월 발표된 JDK(Java development kit:자바개발도구)1.0부터 제공되고 있다. 외부에서 받은 프로그램을 JVM(Java Virtual Machine)이라는 보호된 영역 안에 가둔 뒤 작동시키는 방법으로 프로그램이 폭주하거나 악성 바이러스의 침투를 막는다. 자바가 제공하는 샌드박스는 네트워크를 통해 전송받은 애플릿의 시스템 자원에 대한 접근을 제한한다. 샌드박스에서 접근을 허용한 애플릿은 작업이 가능하지만 그렇지 않은 경우는 로컬파일을 읽거나 바..

Joyful Project/java 2010.04.09