본문 바로가기

WEB의 속삭임

[JAVA][Spring]Factory * Spring은 객체를 bean으로 생성하여 관리 한다. 그래서 컨테이너가 필요한데 그래서 팩토리를 두고 있다. BeanFactory : 빈객체를 관리하고, 각빈 객체간의 의존관계를 설정 구현체 : XmlBeanFactory : 외부 자원으로 부터 설정 정보를 읽어와 빈 객체를 생성한다. ApplicationContext : 빈객체 라이프사이클, 파일과 같은 자원 처리 추상화, 메시지 지원 및 국제화지원, 이벤트 지원, xml스키마 확장을 통한 편리한 설정. 구현체 : ClassPathXmlApplicationContext : 클래스패스에 위치한 xml 파일로부터 설정 정보를 로딩한다. FileSystemXmlApplicationContext : 파일 시스템에 위치한 xml 파일로부터 설정 정보를 로딩.. 더보기
[Spring][기초]DI패턴 * 객체 의존성 표현 1. 클래스에 실제로 의존 객체를 지정 하는 방법.2. 의존성을 주입 하는 법(DI) : 조립기, 팩토리에서 조회 하는 다양한 방법으로 주입하는 방법 * DI 패턴 : 해당 용어는 다른 언어에서는 또 다르게 사용 될수는 있다. 하지만 의존성을 주입하는 방법은 달라도 주입한다는 것은 같다. * 왜하니? : 특정 단위로 테스트 하기위해 흔히 쓴다. 예를들어 객체가 서로 의존하면은 특정 객체를 테스트 하기위해서는 의존된 객체가 모두 준비 되어 있어야 된다. 하지만 의존성을 주입 형태로 변경하게 되면, 더미객체(몽크객체)를 주입하여 테스트를 하겠다는 것이다. 사실 자바를 예를 들면 자바만 사용하여 어플를 만든다면 의미 있다. 하지만 웹에서는 그다지..필요가 없다..난 왜 사람들이 스프링 스.. 더보기
[JavaScript][객체][프로토타입 체인] 자바스크립트의 상속! * JavaScript의 상속을 프로토타입 체인이라고 한다. 이것은 객체가 인스턴스 하는 시점에 맺어 지고, 이후 변경은 안된다.** 아래 예제 소스로 이해 하자.var Animal = function(){} Animal.prototype = { walk : function() { document.writeln('쫑~쫑~');}}; var SuperAnimal = function(){}SuperAnimal .prototype = {walk : function(){ document.writeln('다다다다닷!'); }}; var Dog = function(){};Dog.prototype = new Animal();var d1 = new Dog();d1.walk(); // 쫑~쫑~ Dog.prototype .. 더보기
[Java][성능]Statement 와 PreparedStatement의 차이 * 몰랐던 사실을 하나 배웠다. Statement와 PreparedStatement 차이 * 나는 두개를 그동안 구분 해서 사용했다. 인자가 필요한것은 PreparedStatement를 인자가 없는 것은 Statement을 사용했다.* 하지만 사용하는 이유가 나는 SQL인젝션을 방어 하기 위한 용도로, 또 소스코드를 깔끔하게 위해서(가독성)을 위해 사용 했었다. 하지만 성능상에도 이유가 있었다. * Statement 와 PreparedStatement의 성능상의 차이 Statement 와 PreparedStatement를 사용하게 되면 그냥 디비에 바로 요청 하는 것이 아니라 캐쉬를 확인 한후에 동일한 명령이 있으면 캐쉬에서 꺼내어 DataBase에 접근을 하고, 캐쉬가 없으면 실행 계획을 세우고 JDB.. 더보기
[JavaScript][객체] 자바스크립트의 간단한 객체 * 자바스크립트는 객체 지향 언어로써 객체를 생성 할수 있다. 엄밀 하게 말하면 프로토타입 베이스의 객체지향이라고 한다. * 예제로써 알아보겠다. var Memeber = function(firstName, lastName){ this.firstName = firstName; this.lastName = lastName;this.getName = function(){return this.lastName + ' ' + this.firstName;}}; var mem = new Memeber('요시히로', '야마다');document.writeln(mem.getName()); * 우리가 아는 Java에서는 모든 클래스가 동일하면 동일한 멤머 변수와 동일한 멤머 메소드를 가진다. 하지만 그것은 클래스베이스 객.. 더보기
[JavaScript][클로저]JavaScript의 Closure - 요즘 한번쯤은 다 들어 봤을것이다. 병렬처리가 화두가 되면서 떠올랐는지 모르겠지만, 내주변에 클로저로 되게 유명한 분도 계시더라..아무튼 자바스크립트에서 클로저를 어떻게 사용하는지 한번 봐보겠다~ * 클로저란? 한마디로 말하면은 로컬 변수를 참조하고 있는 함수 내의 함수 또는 일종의 기억 영역을 제공하는 구조 라고 말할수도 있겠다. 그럼 소스를 통해 봐보겠다.function closure(init){var counter = init;return function(){return ++counter;}} var myClosure1 = closure(1);var myClosure2 = closure(100);document.writeln(myClosure1()); //2document.writeln(myCl.. 더보기
[JavaScript][정규식]정규식을 사용하여 URL 체크 * 정규식 공부하면서 만든건데, 나중에 또 만들게 될거 같아 따로 저장한다./** * 문장속에서 URL을 찾아 리턴 해줍니다. * @param {Object} str */function findURL(str){var p = /(http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?)/gi;var result = str.match(p);return result;} /** * 해당 문장이 URL인지 확인한다. * @param {Object} str */function isURL(str){var urlList = findURL(str);var returnValue = false;switch(urlList[0]){case undefined : // url을 포함하는 확인한다. 만.. 더보기