본문 바로가기

프로그래밍 언어

(83)
Javascript) Element 여러개의 스크롤바 동시에 움직이는 방법 요소 두개 중 하나만 스크롤 해도 두개 다 같이 스크롤 하는 방법이 필요했다. 아래 방법이 핵심! 내가 테스트한 방법을 첨부하겠다. var $divs = $('#items, #items2'); var sync = function(e){ var $other = $divs.not(this).off('scroll'), other = $other.get(0); var percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight); other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight); setTimeout( function(){ $other.on('scroll', sync )..
Java) Comparable과 Comparator comparable과 comparator는 별도의 처리 없이 정렬이 가능한 primitive 타입 값들이 아닌 객체를 정렬할 때 사용한다. 구글에 객체 정렬하는 방법 같은걸 검색해서 사용 예제만 보고 사용했기 때문에 정확히는 '비교' 라는 의미가 담긴 이 객체가 왜 정렬할 때 사용되는지 잘 알지 못한 채 사용하고 있었다. 그러다 Stranger's LAB 에서 좋은 글을 발견해서 공부하면서 그 내용을 정리해본다. Comparable과 Comparator Comparable과 Comparator는 모두 인터페이스(interface)이다. 즉, 인터페이스에 선언된 메소드를 반드시 구현해야 한다. Comparable 인터페이스에는 compareTo(T o) 메소드를, Comparator 인터페이스에는 comp..
Java) java.util.regex.Matcher method 정리 java.util.regex.Matcher XML을 조작해서 문서 작성을 자동화하는 프로젝트를 하다보니 정규식을 사용할 일이 아주 많아졌다. 기본적으로 Matcher 클래스의 find, group, start, end 등의 메소드만 활용하고 있었는데 편리한 메소드들이 많은 것 같아 이번 기회에 공부해보고 넘어가려 한다. 기본 사용 방법 Pattenrn PATTERN_EX = Pattern.compile('정규식'); Matcher MATCHER_EX = PATTERN_EX.matcher('검사할 문자열'); while(MATCHER_EX.find()){ System.out.println("문자열에서 정규식 패턴과 일치한 부분: " + MATCHER_EX.group()); } System.out.print..
Java) 정규식과 StringBuffer를 이용하여 문자열 특정 위치만 치환하기 눈으로 확인하기에는 방대한 양의 XML에서 특정 범위를 다른 형식으로 만들어 치환하는 일이 필요했는데 그냥 replace를 하려니 특정 범위가 XML 내에서 중복되는 경우 마지막에 replace 되는 형태로 일괄 변경되었다. 처음에는 그냥 docx로 열리지 않아서 뭐가 문젠지 한참 살펴봤다. 문제는 유니크해야 하는 아이디가 중복되어 오류가 발생하는 것! array와 set에 각각 담아 확인해 보았더니 둘의 개수가 다른 것으로 보아 특정 범위가 중복되는 것들이 있었다!! 그래서 치환하기 전에 특정 범위에 사용되는 rsid를 모두 유니크 하게 만들어주기로 했다. 뽑아서 유니크하게 만들어 주어야 하는 부분의 형식이 정해져있기 때문에 정규식으로 뽑고, 뽑힌 결과의 정확한 위치를 알아내서 String buffer..
Javascript) ES6 기본 개념과 문법 정리 ES6 란? ES6는 ECMAScript 표준의 최신 버전으로 2009년도에 표준화된 ES5 이후 언어 기능에 대한 첫 업데이트입니다. 여기서 ECMAScript(ES) 란 ecma international이라는 정보 통신 시스템을 위한 국제 표준 기구가 표준화한 스크립트 프로그래밍 언어를 말합니다. 즉, 국제 표준화 기구가 자바 스크립트를 표준화하기 위해 만든 기술 규격이라고 할 수 있습니다. 최근 트랜드로 대두되고 있는 프레임워크 (react, vue등)이 개발 환경을 es6으로 맞춰가고 있기 때문에 es6에 주목할 필요가 있습니다. ES5 이하에서 문제 되었던 많은 부분들이 해결되었고, 가독성 및 유지보수성을 향상시키는 문법들이 새롭게 생겼기 때문에 지금부터 새로운 기본 문법에 대해 알아보겠습니다...
Java) 랜덤 아이디 만들기 - n자리수 16진수 문자열 만들기 docx 내 ooxml 코드를 직접 만져서 요소를 추가 및 제거하는 과정에서 ooxml에서 사용하는 아이디 형태가 8자리 16진수 문자열이길래 랜덤함수로 만들어 쓰기 ! 랜덤 n자리수 16진수 문자열 만드는 메소드 private String getRandom8BitHexString(n) { String hexString = ""; for (int i=0; i
Java) 자바로 shell script 실행하기 1. ShRunner class 만들기 package ...; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; public class ShRunner { public Map execCommand(String... str) { Map map = new HashMap(); ProcessBuilder pb = new ProcessBuilder(str); pb.redirectErrorStream(true); Process process = null; try { process = pb.start(); } catc..
Java) JSON body와 함께 HTTP POST 요청 보내기 1. json body 만들기 import org.json.simple.JSONObject; ... public JSONObject createRequestBody(){ JSONObject body = new JSONObject(); body.put("key", "value"); ... return body; } 2. api 콜하기 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.P..