Java(자바)
-
자바 POJOJava(자바) 2017. 3. 17. 14:34
Plain Old Java Object 앞자만 따 와서 POJO 라고 한다. 정의를 해보자면 Plain Old Java Object의 두문자어이다. 이 용어는 2000년 9월 Martin Fowler, Rebecca Parsons, Josh Meckenzie에 의해 이름지어졌는데.... 마틴 파울러는 이런말을 했다고 한다. " 왜 사람들이 간단한 보통 자바객체를 사용하지 않을까 생각했는데 그건 심플한 객체에 멋진 이름이 없어서라고 생각한다. 그래서 사람들에게 이름을 주려고 한다." 라고 해서 탄생한 이름이 POJO이다. 특정 클래스를 상속하지 않는다. 특정 인터페이스를 구현한 concrete 객체가 아니다. 특정 어노테이션을 이용한 객체가 아니다. 주의할 점은 상족 혹은 구현등이 안된다고 해서 Runab..
-
자바 FAIL-FAST 방식이란?Java(자바) 2017. 3. 6. 14:46
개발은 참 재미있는게 어느정도의 자기개발로 실력이 향상되었다고 느껴질때 더 하이레벨의 문제와 모르는 이론을 찾다보면 겸손하지 못했다는것을 느끼게 된다. 마치..드래곤볼의 손오공과 닮았다는 생각이들정도다.. 손오공은 싸움을 즐긴다. 어렵고 강한 상대를 만나도 두려워하지 않는다..... (잡소리 그만하고 본론으로 넘어가보도록 하자) 컬렉션 클래스들은 저장된 객체들에 대한 순차적 접근을 제공한다. 그러나, 순차적 접근이 모두 끝나기 전에 콜렉션 객체에 변경이 일어날 경우 순차적 접근이 실패되면서 ConcurrentModificationException 예외를 return하게 되는데 이를 fail-fast 방식이라고 부른다. Enumeration은 순차적 접근 시 콜렉션 객체에 변경이 일어나도 이를 무시하고, ..
-
자바 enum을 활용하여 if문 줄이기Java(자바) 2016. 5. 14. 18:36
이글은 enum에 대해 설명하기 위해 작성하는 것이 아니다.단지 리팩토링에 관심이 있거나 성능 및 가독성에 신경을 많이 쓰는 사람만 보도록하자.그렇다고 대단한걸 설명할려는 것이 아니다.(예전에 공부를 하다가 알게된 사항을 시간이 지나 실무에서 사용할려고 하니 까먹어서 정리하는것임을 알아주기 바란다.) 필자는.. 실무에서 특정 테이블의 컬럼의 데이터 구분값이 숫자( ex -> 1,2,3), 알파벳(ex-> p,s)에 따라 쿼리가 달라진다든지 값을 동적으로 바꿀때불편함을 많이 겪었다.. 특히 레거시 코드를 수정할때 가독성도 떨어지고 DBA에게 가서 데이터 구분 값이 무엇을 의미하는지 물어보는 시간이 많아 졌었다. 자.. 말이 길어 졌으니 사용 방법을 보도록 하자 (응용은 항상 여러분 몫임을 잊지말자) 1번을..
-
자바 VO DTO 차이점(사용하는 방식이 같다고 똑같다고 생각하지 말자!!)Java(자바) 2015. 11. 18. 13:59
VO 개념 Value Object는 DTO와 동일한 개념이나 차이 점은 read only 속성을 갖습니다. Value Object는 관계데이터베이스의 레코드에 대응되는 자바클래스입니다. 형태는 db레코드를 구성하는 필드들을 Value Object의 Attribute로 하고 해당 변수에 접근 할 수 있는 Getter Setter 메소드의 조합으로 클래스를 형성되어진 클래스입니다. 특성은 대체로 불변성이고 equals()로 비교할 때 객체의 모든 값을 비교해야 합니다. 필요성 Network traffic을 줄임으로 인해서 효과적입니다. 기대효과 Network traffic이 줄어듭니다. 장 단점 장점으로는 비 서버 측 클라이언트도 네트워크 오버헤드 없이 영속성 데이터에 액세스 할 수 있다는 점입니다. 데이터..
-
EJB 알아가기!!Java(자바) 2015. 10. 17. 17:56
▩ EJB 개발의 특징과 필요성 - 동시접속자수가 10,000이상 이상인 사이트 구축시 사용하는 콤포넌트 기술 입니다. - 동시접속자수가 많은 가운데 안정적인 트랜잭션이 필요한 사이트 구축시 사용합니다. - 접속자수가 많은 공공기관, 기상청, 병무청, 금융, 보험, 포털사이트, 게임사이트, 기업등에서 집중적으로 사용 - EJB 시스템은 속도는 느리지만 개발시에 개발자에게 많은 자동화된 기능을 제공해 분산 시스템 구축을 쉽게 해준다. - EJB는 JSP, Beans를 사용한 시스템보다 속도는 느리지만 안정적인 분산 시스템을 제공한다. - 기초기술(JSP, BEANS, RMI, Servlet, Serialization직렬화, Transaction, Connection Pooling)을 알면 EJB는 배우기 ..
-
자바 SOLID(객체지향 5대원칙)!!Java(자바) 2015. 10. 1. 09:06
SRP(Single Responsibility Principle) 단일책임 원칙 - 책임의 기본 단위는 객체를 지칭한다. 즉, 객체는 단하나의 책임만 가여쟈 한다는 의미이다 (간혹 설계를 하다보면 예측하지 못한 변경사항이 발생하더라도 유연하고 확장성이 있도록 시스템 구조를 설계해야하는데 기존의 기능에 영향을 주는 요소를 적게 해야 한다는 것을 잊지말자) OCP(Open-Closed Principle) 개방-폐쇄 원칙 - 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다. ( 부모 클래스로 부터 상속받은 메서드등을 오버라이드로 수정하지 않고 확장해 나가야 한다) LSP(Liskov Substitution Principle) 리스코프 치환 원칙 - 프로그램에서 부모 클래스의 인스턴..
-
자바 HttpSessionListener 정리Java(자바) 2015. 7. 7. 11:17
우선 HttpSessionListener 인터페이스가 무엇을 의미하는지 알고 시작하자구요. HttpSessionListener 이란 라이프 사이클 변경에 대한 통지를 받기 위한 이벤트 인터페이스 입니다.해당 인터페이스가 계속 하여 세션 생성 및 삭제 되었다는 것을 감지 하기 위해서는 배치 디스크립터에 설정을 하여야 하는데 다음과 같이 적용하면 된다. web.xml) listener 은 설명을 안해줘도 대부분 알거라고 생각이 듭니다만... 혹시 모르는 분들을 위해 간략히 설명을 하자면 listener : 어떠한 이벤트가 발생하였을때 호출되어 처리하는 객체를 의미합니다. 인터페이스를 implements로 기능을 추가 할경우 (extends는 자식클래스가 부모클래스에게 상속받았을때 입니다) SessionMon..