본문 바로가기

HashMap VS HashTable VS ConcurrentHashMap 자바는 지원하는 Collection이 상당히 많다. 그리고 비슷한 컬렉션이 많다. 그 중 HashMap 과 HashTable 그리고 자바 1.7 버전이 나오면서 ConcurrentHashMap라는 새로나온 컬렉션이 있다. 이 컬렉션들은 모두 로 데이터를 처리한다. 그럼 이 Collection들은 무슨 차이가 있을까?? 1. HashMap VS HashTable - 두 컬렉션 모두 Map을 Implement하고 있어서 많은 차이는 없지만, 가장 큰 차이는 동기화의 문제이다. HashTable은 모든 Data변경 메소드에 syncronized가 선언 되어있다. 즉, 멀티스레드 환경에서 데이터 무결성을 보장 해주는 것이다. 이 때문에 HashTable은 데이터의 변동시 락을 걸기 때문에 느리다. 반면 Hash.. 더보기
나의 프레임워크 설계 ref 스프링 - 2 - - 자주사용하는 라이브러리를 간단히 사용하기 위한 설계를 구성했다. 예시로 Json을 사용할 때 이다. 보통은 Json을 통해 Resonse를 할 때 다음과 같은 방법을 많이 사용한다. - Jackson을 사용해서 bean등록 을 해준후 Model&View 에 담아 사용하는 방식으로 다음과 같다. 하지만 나는 이 방식보다 조금 더 직관적으로 만들고 싶었다. 나의 목표는 조금 더 보기에 쉬운 코드를 만드는것이기 때문이다. 그리고 한 가지더 나는 Json같이 수시로 사용되는 라이브러리는 Static으로 사용 하는 것이 좋다는 생각이다 1. 자주 사용되기 때문에 한번 생성하여 Static으로 가지고 있는 것이 GC에 부담을 줄 일 수 있을 것 이라는 생각2. 전역적으로 공유하여 어디서든 쉽게 가져다 사용할 수.. 더보기
나의 프레임워크 설계 ref 스프링 - 1 - - 지난번에 MVC 구조를 기초로 개발을 시작했다. 이번엔 기본 MVC 구조에 의존성을 주입 해보겠다. 1. 의존성 주입을 하자!! 학부때 소프트웨어 공학수업때 교수님이 한가지만 알고 가면 된다고 하셨다. 그것은 "의존성을 줄이고 응집도를 높여라!" 이거였다. 그때는 무슨말인지 몰랐는데, 개발을 하면서 서로 영향을 주지않는 설계가 중요하다는 것을 알게 되었다. 그래서 스프링의 DI를 이용하여 의존성 주입을 하였다. 하지만 이렇게 일일이 컨트롤러에 주입을 하면 BusinessLogic이 많아 지면 많아질수록 선언되는 Biz가 많아질 것이다. 조금더 코드를 줄이기위해 하나의 클래스에 모든 Biz의 의존성을 주고 getListBiz 를 만들어 가지고올 수 있게 바꾸었다. IocContainer 라고 클래스이름.. 더보기