개발 일기장
-
having a better day than yesterday
having a better day than yesterday
velog 로 이사갑니다! (클릭하면 이동)
Post For Me
-
Javascript Json key와 value 가져오기
Javascript Json key와 value 가져오기
2020.10.07출처 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys Object.keys() The Object.keys() method returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would. developer.mozilla.org json에서 key와 value 꺼내오는 예제 var json = { id : "test", pwd : "1234" }; var keys = Object.keys(json); //키를 가져옵니다. 이때, keys 는 반복가능한.. -
Java I/O (Input/Output)란?
Java I/O (Input/Output)란?
2022.03.05IO 장치들은 여러 문제가 있음. 다양한 주변 장치가 존재 서로 다른 포멧의 데이터를 전송 서로 다른 속도로 동작 CPU 와 RAM 보다 I/O 작업이 느림 입출력 모듈을 필요로 한다. 여기서 입출력 모듈이란 CPU 와 메모리의 인터페이스이고 하나 또는 그 이상의 주변 장치에 대한 인터페이스를 의미 Programmed I/O (프로그램 입출력) 입출력 모듈 중에 프로그램 입출력은 IO 로 부터 제어권을 CPU 가 가져와서 작업을 진행하는 것으로 CPU 는 입출력 모듈이 명령어의 수행을 완료할 때까지 기다립니다. 따라서 이 방식은 CPU 의 시간을 소모합니다. Java I/O 는 이런 문제점 때문에 파일 입출력이 느리다는 인상을 많이 주었음. 이런 문제점을 Non-blocking IO(nio, New IO.. -
자바 int array, integer list 정렬하기 (내림차순, 오름차순)
자바 int array, integer list 정렬하기 (내림차순, 오름차순)
2021.05.04public class Test { public static void main(String[] args) { int[] arr = {1,7,4,6,8,9,2,5,3}; List list = new ArrayList(); for (int a : arr) { list.add(a); } // 배열 출력 System.out.println("배열 정렬 전 : " + Arrays.toString(arr)); // 오름 차순 정렬 Arrays.sort(arr); System.out.println("배열 오름 차순 정렬 : " + Arrays.toString(arr)); // 내림 차순으로 정렬 => Integer로 변경해서 정렬하는 방법 Integer[] arr_integer = Arrays.stream(arr).b.. -
자바스크립트(javaScript) undefined, null, '' 체크하기 && 함수나 변수 존재 여부 확인
자바스크립트(javaScript) undefined, null, '' 체크하기 && 함수나 변수 존재 여부 확인
2020.08.13자바스크립트 빈값, null, undefined 체크하기 //typeof가 타입을 검사해줍니다. if (typeof undefinedValue === 'undefined' ) { console.log("1. undefined"); } // => 변수가 존재하지 않은 경우 채크 가능 //에러 //if (!undefinedValue) { // console.log("2. undefined"); //} var emptyValue = ''; if (emptyValue === '') { console.log('3. empty'); } // 빈 값은 기본적으로 false를 리턴합니다. if (!emptyValue) { console.log('4. emptyValue'); } var nullValue = null; .. -
전자정부 프레임워크 Mybatis 사용하기
전자정부 프레임워크 Mybatis 사용하기
2020.08.10=> xml 설정 context-datasource.xml DB에 접근할 수 있는 connection 마련 context-datasource.xml은 별도의 설정 파일입니다. web.xml 부분에 contextConfigLocation classpath*:spring/context-*.xml 이런식으로 외부에 설정 파일을 사용하겠다는 명시가 있으면 사용이 가능한 외부의 설정파일입니다. context-sqlMap.xml (원래 context-sqlMap.xml는 ibatis에 사용. context-mapper.xml 에 설정해줘야하는데 기본 설정이 context-mapper대신 sqlMap을 바라보고 있었고, 그대로 사용했음) context-sqlMap.xml 도 마찬가지로 외부 설정파일입니다. 보시면 s.. -
datadog 로그 검색 문법
datadog 로그 검색 문법
2021.12.14( datadog에서는 검색될 값을 용어라고도 부르고 태그라고도 부르는 것 같음 ) 데이타독의 로그 검색은 용어와 연산자를 통해서 진행 그리고, 용어에는 두가지 유형이 존재 single term ( 단일 용어 ) sequence ( 시퀀스, 연속 용어 ) single term 띄어 쓰기 단위로 구분된 모든 단어. 예를 들어서 test hello 는 test와 hello 로 이루어진 single term. 다음과 같은 연산자를 사용해 조건을 추가할 수 있다. 연산자 설명 예시 AND 두 용어 모두 포함한 로그 검색 test AND hello OR 둘 중 하나 용어 포함한 로그 검색 test OR hello - 이 연산자 다음에 오는 용어는 이벤트에 포함되지 않습니다. (test 는 포함하되, hello 는.. -
mac ( + intellij ) 명령어 & 단축키
mac ( + intellij ) 명령어 & 단축키
2021.10.03원래 계속 윈도우 환경에서 개발을 했었다. 그런데 회사에서 맥을 사용하고 있어서 기존에 윈도우에서 사용하던 유용한 단축키들을 사용하지 못하게 되었는데, 이 때 문에 업무를 하면서 답답함을 느꼈고, 시간을 내어 단축키를 공부해야겠다고 마음 먹었다. 여기 나오는 단축키는 커스텀 된 단축키도 있다. mac 터미널 명령어 cp from 을 into 에 복사 mv from 을 into 로 이동 rm target 을 삭제 rm -r target 폴더를 통째로 삭제 mkdir name 폴더 생성 rmdir name 폴더 삭제 mac 단축키 control + ← : 이전 윈도우로 control + → : 다음 윈도우로 intellij 단축키 모음 네비게이션 단축키 command + B : 선언부로 이동 option +.. -
Javascript Key event 처리 (KeyCode deprecated 대체 코드)
Javascript Key event 처리 (KeyCode deprecated 대체 코드)
2021.07.25더 이상 사용하면 안되는 이벤트 처리 방식 인터넷 익스플로러가 한창이던 시절.. 우리는 자바스크립트로 어떤 키가 눌렸는지 확인하기 위해서 event 라는 키워드를 사용했습니다. event 라는 키워드를 사용하면 발생한 이벤트를 자동으로 event 라는 키워드로 할당 해줍니다. 이것은 Internet Explorer용으로 Microsoft에 의해 구현되었으며 이런 방식을 사용하는 사이트가 아직도 많습니다. 아직 동작하는 코드이긴 하나 이는 브라우저 표준이 아닌 코드입니다. 이 코드를 사용하면 아래와 같이 권장하지 않는다는 문구가 뜹니다. 더 나은 이벤트 처리의 방법 더 나은 이벤트 처리는 다음과 같이 이벤트 리스너를 사용하는 방법입니다. 이벤트 리스너가 감지한 이벤트를 넘겨 받아서 처리하는 방법입니다. k..
Post Recently
-
Reactive Programing
Reactive Programing
2022.03.05Reactive Programming 데이터 흐름과 전달에 관한 프로그래밍 패러다임 리액티브 스트림을 사용하는 프로그래밍 리액티브 스트림 잠재적으로 무한정 들어올 수 있는 비동기 데이터를 순서대로, 그리고 블록하지 않고 (non-blocking) 역압력(backpressure, 배압, 메세지를 받는 쪽에서 보내는 쪽으로 지속적으로 메세지를 처리할 수 있는지 알려 요청의 양을 조절하는 기술)으로 처리하는 표준 기술 엽압력 (배압, Backpressure) 발행 - 구독 프로토콜에서 이벤트 스트림(발행쪽)의 구독자가 발행된 이벤트를 처리하는 속도보다 느린 속도로 이벤트를 소비하면서 문제가 발생하지 않도록 보장하는 장치이다. 왜 이런 패러다임이 생겼나? 빅데이터/모바일부터 클라우드 기반 클러스터에 이르는 다양.. -
Reactive Stream 이란?, backPressure 이란?
Reactive Stream 이란?, backPressure 이란?
2022.03.05정의 non-blocking, backPressure 를 이용해서 비용기 서비스를 할 때 기본이 되는 스팩이다. Java RxJava, Spring5 Webflux의 Core 에 있는 ProjectReactor 프로젝트 모두 해당 스팩을 사용하고 있습니다. 따라서 비동기 프로젝트를 잘 이해하기 위해서 기본 스펙이 되는 Reactive Stream 에 대한 이해가 필요하다. 개요 non-blocking backpressure 를 이용하여 비동기 스트림 처리의 표준을 제공하는 것 목적, 설계, 범위 지속적으로 들어오는 스트림 데이터를 효율적으로 처리하기 위해서는 비동기 시스템이 효과적이다. 비동기 처리를 하면서 가장 중요한 문제는 데이터 처리가 목적지의 리소스 소비를 예측가능한 범위에서 신중하게 제어할 수 .. -
Java I/O (Input/Output)란?
Java I/O (Input/Output)란?
2022.03.05IO 장치들은 여러 문제가 있음. 다양한 주변 장치가 존재 서로 다른 포멧의 데이터를 전송 서로 다른 속도로 동작 CPU 와 RAM 보다 I/O 작업이 느림 입출력 모듈을 필요로 한다. 여기서 입출력 모듈이란 CPU 와 메모리의 인터페이스이고 하나 또는 그 이상의 주변 장치에 대한 인터페이스를 의미 Programmed I/O (프로그램 입출력) 입출력 모듈 중에 프로그램 입출력은 IO 로 부터 제어권을 CPU 가 가져와서 작업을 진행하는 것으로 CPU 는 입출력 모듈이 명령어의 수행을 완료할 때까지 기다립니다. 따라서 이 방식은 CPU 의 시간을 소모합니다. Java I/O 는 이런 문제점 때문에 파일 입출력이 느리다는 인상을 많이 주었음. 이런 문제점을 Non-blocking IO(nio, New IO.. -
자바 가비지컬렉터. 강한참조 (String Reference), 약한참조 (Weak Reference)
자바 가비지컬렉터. 강한참조 (String Reference), 약한참조 (Weak Reference)
2022.03.03가비지컬렉터 Java의 가비지 컬렉터는 많은 종류가 있지만 크게 두가지 작업을 공통적으로 수행합니다. 힙 메모리 내의 객체 중 가비지를 찾아낸다. 찾아낸 가비지를 처리해서 힙 메모리를 회수한다. 최초의 Java 에서는 이들 가비지 컬렉션 작업에 사용자 코드가 관여 하지 않도록 구현되어 있었습니다. 좀 더 다양한 방법으로 객체를 처리하려는 요구가 있었고 이에 따라 JDK 1.2 부터 java.lang.ref 패키지를 추가해서 제한적이나마 사용자 코드와 GC가 상호작용 할 수 있게 했습니다. java.lang.ref 패키지는 객체를 new로 생성했을 때 생기는 string reference 이외에도 soft, weak, phantom 3가지의 새로운 참조 방식을 각각의 Reference 클래스로 제공합니다... -
spring framework - @Value 가 동작하지 않는다면
spring framework - @Value 가 동작하지 않는다면
2022.02.13환경 : java, springframework 코드 @Component public class TestBean { @Value("${test}") private String test; private String defaultTestValue = getTest(); public TestBean() { System.out.println("Constructor test = " + test); System.out.println("Constructor defaultTestValue = " + defaultTestValue); } @PostConstruct public void init() { System.out.println("PostConstruct test = " + test); System.out.prin.. -
JPA & Mysql 환경에서 데드락 관련 이슈
JPA & Mysql 환경에서 데드락 관련 이슈
2022.02.05참고 https://techblog.woowahan.com/2664/ HikariCP Dead lock에서 벗어나기 (이론편) | 우아한형제들 기술블로그 {{item.name}} 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로 HikariCP에서 Dead lock이 발생할 수 있는 case와 Dead lock을 회피할 techblog.woowahan.com https://techblog.woowahan.com/2664/ HikariCP Dead lock에서 벗어나기 (이론편) | 우아한형제들 기술블로그 {{item.name}} 안녕하세요! 공통시스템개발팀에서 메세지 플랫폼 개발을 하고 있는 이재훈입니다. 메세지 플랫폼 운영 장애를 바탕으로..