본문 바로가기

프로그래밍언어

(49)
Java - ThreadLocal 이란? 쓰레드로컬 사용법! Java - ThreadLocal 이란? 쓰레드로컬 사용법! ThreadLocal(쓰레드로컬)이란? 쓰레드로컬이란 간단히 얘기하면 하나의 스레드의 작업 흐름동안에 전역변수처럼 무엇인가를 저장하여 사용할수 있다. 일반 변수의 수명은 특정 코드 블록(예, 메서드 범위, for 블록 범위 등) 범위 내에서만 유효하다. { int a = 10; ... // 블록 내에서 a 변수 사용 가능 } // 변수 a는 위 코드 블록이 끝나면 더 이상 유효하지 않다. (즉, 수명을 다한다.) 반면에 ThreadLocal을 이용하면 쓰레드 영역에 변수를 설정할 수 있기 때문에, 특정 쓰레드가 실행하는 모든 코드에서 그 쓰레드에 설정된 변수 값을 사용할 수 있게 된다. 아래 그림은 쓰레드 로컬 변수가 어떻게 동작하는 지를 간단..
Java - You need to run build with JDK or have tools.jar on the classpath 오류 Java - You need to run build with JDK or have tools.jar on the classpath 오류 You need to run build with JDK or have tools.jar on the classpath. If this occures during eclipse build make sure you run eclipse under JDK as well (com.myseam.maven:apt-maven-plugin:1.1.3:process:default:generate-sources) 만약 위와 같은 에러가 pom.xml에 났다면? project folder 우클릭 > Properties > Java Build Path > Libraries Tab 에서 JRE..
Java - ConnectionTimeout,ReadTimeout,SocketTimeout 차이점? Java - ConnectionTimeout,ReadTimeout,SocketTimeout 차이점? 사실 지금까지 웹개발을 해오면서 ConnectionTimeout,ReadTimeout,SocketTimeout에 대해 대략적으로만 알고있었지 사실 정확히 설명해봐라 혹은 차이점을 설명해봐라하면 대답하기 힘든 부분이 있었다. 이번 포스팅으로 정확한 타임아웃 개념을 잡아보려고한다. ConnectionTimeout이란? ConnectionTimeout이라는 개념을 설명하기 전에 URL로 HTTP호출을 할 때 어떤 방식으로 수행되는지 이해가 필요하다.웹 브라우저가 네이버 서버에 접속하기 위해서 서버와 연결된 상태가 되어야한다. 보통 연결을 구성하기위해TCP Connection과 동일하게 3-way-HandShak..
Java - JDK1.7(JAVA 7) 특징 try-with-resource 등 Java - JDK1.7 특징 try-with-resource 등 JAVA 10버전 이상 나온 시점에 자바 7의 특징을 설명하자니 많이 뒤쳐진 느낌이 들지만 저처럼 아직도 자바 5,6 세대에 머무르고 있는 분들이 있어서는 안되지만 혹시라도 계시는 분들이 있을 것이기에 간단하게 정리해보았습니다. 자바7도 안되있는 상태에서 자바8,9,10 등을 공부하는게 뭔가 순리에 어긋나는 것같습니다. 부족하지만 하나하나 천천히 공부해 나가야 할것 같습니다. 간단히 대략 몇 가지정도만 정리하려고 합니다. Type Interface Java 7 이전에는 제너릭 타입 파라미터를 선언과 생성시 중복해서 써주어야했습니다. 사실 저는 현재 생성자 쪽은 제네릭타입을 따로 넣지 않고 사용했었는데, 이게 당연히 원래 되는 건줄 알고 있..
Mac OS - Eclipse & Lombok(롬복 사용방법) 해당 환경은 모두 Mac OS환경에서 진행되었습니다. Lombok(jar) 설치 https://projectlombok.org/download에서 최신버전 혹은 원하는 버젼의 Lombok을 다운로드 받아 줍니다. Lombok jar 실행lombok이 설치된 경로로 들어가서 jar파일을 실행시켜줍니다. java -jar $LOMBOK_DOWNLOAD_PATH/lombok.jar 만약 첫번째 이미지처럼 떴다면 로컬의 IDE를 찾을 수 없다는 alert창입니다. 그렇다면 2,3번째 이미지처럼 IDE의 ini파일의 경로를 적용시켜서 install/Update 버튼을 눌러준 후에 인스톨러를 종료시켜줍니다. 여기까지 따라왔다면 이클립스를 재시작해줍니다. 마지막 이클립스의 ini파일을 열어보면 아래와 같이 javaa..
JAVA - Hashtable, HashMap, ConcurrentHashMap 비교 Hashtable, HashMap, ConcurrentHashMap 비교 1. Hashtable, HashMap, ConcurrentHashMap위에 나열된 클래스들은 Map 인터페이스를 구현한 콜렉션들입니다. 이 콜렉션들은 비슷한 역할을 하는것 같으면서도 다르게 구현되어 있습니다. 기본적으로 Map 인터페이스를 구축한다면 구조를 가지게 됩니다. 하나씩 살펴봅시다. 2. HashtableHashtable은 put, get과 같은 주요 메소드에 synchronized 키워드가 선언 되어 있습니다. 또한 key, value에 null을 허용하지 않습니다. 3. HashMapHashMap은 주요 메소드에 synchronized 키워드가 없습니다. 또한 Hashtable과 다르게 key, value에 null을..
객체지향 design pattern - composite pattern 예제 https://plposer.tistory.com/29위의 포스트된 글 일부에 컴포지트 패턴이 설명되어있으며, 예제코드도 나와있음.
객체지향 design pattern - strategy pattern 예제 https://tourspace.tistory.com/3?category=788398 위의 포스트된 글 일부에 스트레티지 패턴이 설명되어있으며, 예제코드도 나와있음.