반응형 Programing497 JPA (Java Persistance API) 란? 왜 써야하는가? JPA (Java Persistance API) 란? 왜 써야하는가? Java 개발자라면 JPA에 대해서 한번 쯤 들어봤을 겁니다. 경력자라면 면접 질문에서도 많이 나오기도 합니다. 그렇다면 JPA란 무엇일까요? JPA 는 자바 ORM 기술 표준입니다. 그래서 JPA를 설명하기에 앞서 ORM(Object-Relational Mapping) 이 무엇인지 이해하고 넘어가야 합니다. ORM 은 말 그대로 객체와 관계형 데이터베이를 매핑해주는 기술입니다. 쉽게 말해 SQL문을 ORM 프레임워크에서 대신 생성해주는 것 입니다. 개발자는 비슷한 SQL문을 반복해서 작성해 주는 것이 아니라 객체, Entity Object만 모델링 해주면 되는 것 입니다. 조금만 개발을 해본 개발자라면 위 설명만 봐도 '좋겠는데?' .. Programing/JPA 2021. 3. 24. openLayers 2.x 좌표값으로 left, top 구하는 방법 openLayers 2.x 좌표값으로 left, top 구하는 방법 WGS84 좌표계를 OpenLayers에서 사용하는 Postion 으로 변환 var transLatLng = function(x, y, epsg,transFlag){ Proj4js.defs["EPSG:5181"] = "+proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs"; var src = "EPSG:4326"; var trg = "EPSG:5181"; if(transFlag==true){ tag = "EPSG:4326"; src = "EPSG:5181"; } if(epsg != null) src = epsg; var pos.. Programing/OpenLayers 2021. 3. 16. iframe contentDocument contentWindow 차이 iframe contentDocument contentWindow 차이 오늘의 iframe 요소에 접근하는 contentDocument와 contentWindow의 차이를 알아보겠습니다. contentDocument, contentWindow 둘 다 iframe 하위 오소에 접근 할 수 있는 방법입니다. contentWindow 는 iframe의 window (전역)을 의미하고, contentWindow.document 는 contentDocument와 같습니다. contentWindow가 contentDocument의 상위 요소 라고 할수 도 있겠네요. IE에서는 contentWindow는 5.5 버전부터, contentDocument는 8버전부터 지원을 합니다. 추가적으로 iframe간 포커스 이동을.. Programing/JavaScript 2021. 3. 8. javascript nextSibling nextElementSibling 차이 javascript nextSibling nextElementSibling 차이 nextSibling, nextElementSibling 모두 같은 노드 레벨의 다음 값을 가져옵니다. 둘의 차이는 nextSibling은 공백이든, 텍스트든 가리지 않고 다음에 있는 것을 가져오게 되고, nextElementSibling 은 Element(요소)만 가져오게 됩니다. 예를들어 아래와 같은 HTML 코드가 있을 경우 nextSibling테스트 nextSibling과 nextElementSibling 의 결과를 보겠습니다. var aDiv = document.getElementById("a"); console.log(aDiv.nextSibling); //nextSibling테스트 console.log(aDiv.n.. Programing/JavaScript 2021. 1. 21. SVG 파일 읽어 DOM 객체로 변환, SVG 내용변경 후 다운로드 SVG 파일 읽어 DOM 객체로 변환, SVG 내용변경 후 다운로드 몇 백개되는 SVG 파일에 공통된 내용을 변경해 달라는 요청을 받았을 때 작성한 코드입니다. 우선 복수의 파일을 읽을 element 가 필요하겠죠? 몇 백개 되는 파일을 일일히 넣을 수 없으니 multiple로 설정합니다. 그리고 file에 change event를 등록해줍니다. var file = document.getElementById("file"); file.addEventListener("change", function(){ var files = e.target.files; for(var i in files){ (function(file, index){ setTimeout(function(){ var reader = new Fi.. Programing/JavaScript 2020. 11. 13. prototype chain 에 대하여, 상속의 개념, 중복을 줄이자! prototype chain 에 대하여, 상속의 개념, 중복을 줄이자! prototype의 개념과 활용에 대해서는 아래의 Link를 참고하세요! Link : aljjabaegi.tistory.com/295 Javascript prototype 프로토타입 이란? prototype을 사용하는 방법을 알아보자. Javascript prototype 프로토타입 이란? prototype을 사용하는 방법을 알아보자. 자바스크립트의 모든 객체 들은 부모 역할을 하는 객체와 연결 되어 있습니다. 이런 부모 역할을 하는 객체를 Prototype이 aljjabaegi.tistory.com link : aljjabaegi.tistory.com/542 javascript 의 상속 첫번째 prototype 기반의 상속 java.. Programing/JavaScript 2020. 11. 4. javascript 의 상속 첫번째 prototype 기반의 상속 javascript 의 상속 첫번째 prototype 기반의 상속 javascript에서 상속을 구현할 수 있는 2가지 방식 중에 prototype을 이용한 상속에 대해 알아보겠습니다. javascript prototype에 대한 내용은 아래의 Link로 대체합니다. Link : aljjabaegi.tistory.com/295 Javascript prototype 프로토타입 이란? prototype을 사용하는 방법을 알아보자. Javascript prototype 프로토타입 이란? prototype을 사용하는 방법을 알아보자. 자바스크립트의 모든 객체 들은 부모 역할을 하는 객체와 연결 되어 있습니다. 이런 부모 역할을 하는 객체를 Prototype이 aljjabaegi.tistory.com 일단 상속에.. Programing/JavaScript 2020. 10. 27. vanila javascript 개선된 초성검색 기능 구현 vanila javascript 개선된 초성검색 기능 구현 이전에 포스팅한 초성검색은, 단순 한글 초성 검색을 했을 경우 값을 조회하는 기능였습니다. Link : aljjabaegi.tistory.com/219 Oracle 오라클 자음 초성 추출 함수, 자음으로 검색, 초성 검색 Oracle 오라클 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보면 자음으로만 검색할 수 있게 해달라는 요청이 들어오곤 한다. 그럴때마다 유용하게 사용하는 것이 아래의 함수이다 aljjabaegi.tistory.com Link : aljjabaegi.tistory.com/220 Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색 Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보.. Programing/JavaScript 2020. 10. 26. javascript 요소(Element)의 이동 추가 삽입 insertBefore() javascript 요소(Element)의 이동 추가 삽입 insertBefore() javascript의 insertBefore 함수는 특정 노드에 요소를 삽입할때 사용합니다. 테이블의 열의 순서를 변경할 때 유용하게 사용되죠 구분을 보시죠. 부모노드.insertbefore(삽입할 노드, 삽입할 노드의 다음 노드) 예를들어 아래와 같이 하나의 tr 태그에 6개의 td가 있다고 합시다. 이때 컬럼1을 컬럼3 앞에 삽입하고 싶다면, tr.insertBefore(td[0], td[2]); m가 됩니다. td[0] 은 컬럼1이 될 것이고, 컬럼3의 인텍스가 td[2]이니 td[0]이 td[2]앞에 삽입되게 됩니다. 좀더 자세하게 보도록 하죠. var tableHeaderTr = document.getEleme.. Programing/JavaScript 2020. 9. 28. Java BlockingQueue 활용 로그 출력 Producer-Consumer 패턴 Java BlockingQueue 활용 로그 출력Java BlockingQueue 활용 로그 출력 Producer-Consumer 패턴 Producer-Consumer 패턴은 말 그대로 생산, 소비 패턴입니다. Producer가 Task 또는 Data를 생산해서 Queue 로 전달을 하고, 전달받은 Queue는 FIFO(First In First Out) 형태로 동시성을 관리하게 됩니다. Consumer는 Queue의 Task나 Data를 전달 받아 소비하는 것이죠. 이번 포스팅에서는 BlockingQueue를 사용해서 P-C 패턴을 구현해 보겠습니다. CmmnVar이라는 클래스에 static 으로 선언된 size 가 10인 BlockingQueue가 있습니다. [CmmnVar.java] public c.. Programing/Design Patterns 2020. 8. 21. Java Properties load, store example 읽고 수정 Java Properties load, store example 읽고 수정 Spring boot 의 설정파일인 .properties 파일에 접근하여 내용을 읽고 수정하고 저장하는 방법을 알아보도록 하겠습니다. 샘플 코드를 보시죠. import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Properties; import org.springframework.context.annotation.Bean; import org.spring.. Programing/Springboot 2020. 8. 21. Java 병렬처리를 위한 RecursiveAction Java 병렬처리를 위한 RecursiveAction 데이터양이 많을 경우 병렬로 처리를 할때 사용하는 클래스가 RecursiveAction 입니다. 같은 기능을 하지만 리턴값이 있을 때는 RecursiveTask 클래스를 활용합니다. RecursiveTask의 sample code는 다음 포스팅에서 알아보도록 하고, 이번 포스팅에서는 RecursiveAction에 대해서 알아보도록 하겠습니다. 병렬처리를 위한 클래스에서 RecursiveAction 을 extends 받습니다. 그럼 compute 메소드가 Override되는데 이 메소드 내에서 병렬처리를 하도록 task를 특정 조건에 따라 구분하여 줍니다. 샘플 코드를 보시죠. [실행코드] RecursiveTest task = new RecursiveT.. Programing/JAVA 2020. 8. 13. java.util.ConcurrentModificationException 원인 및 처리 방법 java.util.ConcurrentModificationException 원인 및 처리방법 java.util.ConcurrentModificationException 이 발생하는 원인과 처리방법에 대해 알아보겠습니다. 해당 Exception 은 대부분 Collection 객체에 remove 메소드 호출 시 발생을 합니다. List 의 경우 List list = new ArrayList(); list.add(1); list.add(2); list.add(3); for(Integer i : list){ list.remove(i); } Set 의 경우 Set set = new HashSet(); set.add(1); set.add(2); set.add(3); for(Iterator itr = set.iter.. Programing/JAVA 2020. 7. 24. spring boot 2.x interceptor setting 스프링부트 인터셉터 등록 방법 spring boot 2.x interceptor setting 스프링부트 인터셉터 등록 방법 이번 포스팅에서는 spring boot 프로젝트에 인터셉터를 등록하는 방법을 알아보겠습니다. 간단히 순서만 우선 말씀드리면, 1. HandlerInterceptorAdapter extends 받은 실제 interceptor 구현 class 생성. 2. WebMvcConfigurer을 implements 받은 WebMvcConfig class 생성 후 1의 interceptor 등록. 의 순 입니다. ※ 2021.12.15 추가 Spring 버전 때문에 HandlerInterceptorAdaptor 가 deprecated 되었다면 (취소선) HandlerInterceptor 를 implements 하도록 합니다... Programing/Springboot 2020. 7. 14. elasticSearch + Kibana 연동 방법 이전 포스팅에서 elasticSearch 설치 실행 방법을 알아보았습니다. https://aljjabaegi.tistory.com/529 Apache ElasticSearch window 설치 실행 방법 일레스틱서치(ElasticSearch) 는 아파치에서 만든 루씬(Lucene) 기반의 검색 엔진 입니다. HTTP REST 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테너트 지원 전문 검색 엔진을 제공� aljjabaegi.tistory.com Kibana 는 ElasticSearch를 위한 오픈 소스 데이터 시각화 대시 보드입니다. 쉽게 말해 데이터를 보다 쉽게 확인할 수 있는 라이브러리이죠. 다운로드는 아래의 Link에서 가능합니다. https://www.elastic.co/k.. Programing/ElasticSearch 2020. 6. 18. 이전 1 ··· 7 8 9 10 11 12 13 ··· 34 다음 💲 추천 글 반응형