정규표현식은 나에게있어 암호같은 존재였다. 봐도 뭘 의미하는지도 잘 모르겠고... 당장 필요할때만 검색해서 패턴을 갖다쓰는 그런 존재였는데 이번에 정규표현식에 대해 알아봤다.잘 쓰진못해도 내가 갖다쓰는 표현이 무엇을 의미하는지는 해석할 수 있을정도로는 알아야할것 같아서... 참고로 여기서 소개할 의미있는 표현들을 메타표현이라고 일컫는데 이 메타표현을 의미대로 사용하지않고 순수 문자 그 자체로 사용하기위해선 이스케이프(escape)해야한다. 앞에 역슬래쉬(\)를 붙여주면 된다.또한 예제의 System.out.println();에 들어있는 문자열은 해당 패턴에 true임을 보장하는 문자열이다. . : 문자 하나를 의미public static void main(String[] arg) { String patt..
보통 JDK에 기본적으로 내장된 클래스는 완전 무결할 것이라고 믿고 쓰는 경우가 많다. 설령 그 라이브러리에서 문제가 발생하더라도 그건 그걸 잘못활용한 내 잘못이지 JDK내부의 라이브러리가 잘못됐다고 생각하는 경우는 거의 없다. 물론 JDK내의 클래스들은 뛰어난 개발자들이 만든것이니 그럴(완벽할) 확률이 매우 높지만 어쨋든 그 클래스들도 개발자들이 만든지라 문제가 있는 경우도 존재한다. 자바의 날짜 관련 클래스는 그 역사가 참 깊은데 그것들을 모두 묻고 자바8에 다시 새로운 날짜클래스가 추가되었다. 기존에 잘 쓰고있는 클래스들이 있었는데 새로나오게된 이유가 뭔지부터 간단하게 살펴보고 신규 클래스에 대해 알아보자. 1. Date자바에서 가장 역사가 깊은 날짜 클래스다. 객체를 생성하는데 2017년 3월 1..
스프링을 이용하여 개발하다보면 List나 Map같은 컬렉션 프레임워크로 이루어진 빈이 필요할때가 있다.보통은 컬렉션 프레임워크를 필드로 갖고있는 클래스를 생성하고 그 클래스를 빈으로 만들어서 해결하는 경우가 많은데(실제로도 그게 더 바람직한 방법일때가 많은것 같다.) 그런 래퍼클래스(Wrapper Class)가 아닌 컬렉션 클래스 그 자체로 빈을 생성해야하는 경우도 존재한다. 빈 설정파일에 이렇게 등록해주고 주입받으면 된다. 주입받을땐 이유는 모르겠지만 @Qualifier 로는 주입이 되지않았다. 일단 일하느라 바빠서ㅜㅜ 원인은 나중에 찾아보고 @Resources 애노테이션으로 주입받아 사용했다.
어찌보면 되게 당연한건데 기본이 부족해서 내가 실수한걸수도있지만..여튼 하나의 이슈를 해결하고 그에대한 정리를 하려한다. javascript 코드를 짜다보면 일정시간 이후에 실행되었으면..하는 코드가 존재하게된다.가장 먼저 떠오르는건 setTimeout() 함수다.setTimeout(function(){ // 1초 후 작동해야할 코드 alert("hello world"); }, 1000); setTimeout()은 분명 유용한 함수이지만 가끔 의도하는것에 충족하지 못하는 경우가 존재한다.해당 코드가 1초뒤에 실행되길 바란다면 setTimeout() 함수가 제격이지만 스레드 자체가 1초 동안 블록킹 되기를 바랄땐 사용할만한 함수가 되지 못한다.setTimeout()은 비동기 이벤트로 실행되는 함수로서 se..
angularJS에서 필터를 만드는법을 알아보자. 크게 어려운건 없다. angular.module("dateFilter", []) .filter("date", function () { return function (date) { return $.formatDateTime("yy.mm.dd", new Date(date)); } }) .filter("time", function () { return function (time) { return $.formatDateTime("hh:ii:ss", new Date(time)); } });요렇게 필터를 정의해주고 사용하는 부분에서는 이렇게 사용하면 된다.| 좌측에있는 값이 인자로 전달되고, 그 반환값이 노출되게된다. {{round.productDate | date}}
GROUP BY로 그룹핑한 로우들의 합계를 구해주는 기능이있다. ROLLUP인데 사용법은 GROUP BY 절 뒤에 WITH ROLLUP을 사용해주면 된다. SELECT col1, col2 FROM table GROUP BY col1 WITH ROLLUP; 이때 ROLLUP을 사용했음에도 합계가 구해지지않고 마지막 로우의 값이 출력되는 경우가 있다. ROLLUP으로 값을 구하기위해선 SELECT절에 집계함수가 사용되어야하는데 그렇지 않을 경우 나타나는 현상(?) 이다. 오늘의 교훈 : ROLLUP을 사용할땐 집계함수와 같이 쓰자.
1번 포스팅에 이어서 작성한다. 5. possible_keys옵티마이저는 어떤 인덱스를 사용할지 후보들을 정해놓고 그중에 하나를 사용하는데 possible_keys는 후보에서 떨어진 인덱스 키들을 보여준다. 강제로 인덱스를 태우고자할때는 유용할 수도 있을것 같으나 일단 수립된 계획을 확인할때는 상대적으로 비중이 떨어지는 항목이다. 6. keypossible_keys가 탈락한 키들의 집합이라면 key는 뽑힌 인덱스키를 보여준다. index_merge 처럼 다중 인덱스를 활용한 경우가 아니라면 값은 항상 1개를 표현한다. 7. key_len사용된 키의 컬럼크기를 나타낸다. character set에 따라 같은 컬럼이라도 다르게 표현될 수 있으며, null 유무에 따라서도 크기가 달라질 수 있다. 8. ref..
보통 하나의 완성된 쿼리 내에 존재하는 하위 쿼리들을 전부 서브 쿼리라고 총칭하기는 하는데 사용되는 위치에 따라 각각의 이름이 있다. 그냥 서브 쿼리라고만 부르면 큰 문제 없는데 간혹 이 명칭들을 이용해 의사소통이 이루어지는 경우가 있다. 이럴때 이 용어를 모르면 의사소통에 문제가 생기므로 정리해본다. 1. Nested Query (중첩 쿼리) SELECT 절에 사용되는 서브 쿼리 SELECT (SELECT name FROM test) a FROM test; 2. Sub Query (하위 쿼리) 서브 쿼리의 명확한 사용처는 WHERE 절에 사용되었을 때다. SELECT * FROM test WHERE name IN (SELECT name FROM test); 3. Inline View (인라인 뷰) FR..
- Total
- Today
- Yesterday
- JPA
- generics
- MySQL
- Kotlin
- TEST
- frontcode
- Spring
- java8
- programming
- spring cloud
- servlet
- mariadb
- JavaScript Core
- java
- EffectiveJava
- DesignPattern
- 정규표현식
- go-core
- OOP
- clean code
- Design Pattern
- Jackson
- code
- javascript
- backend개발환경
- Git
- db
- toby
- http
- frontend개발환경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |