일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Redis
- effectivejava
- you don't know js
- webstorm
- spring security
- 자바
- Effective Java
- Intellij
- javascript native
- 이펙티브자바
- ES6
- javascript value
- requestbody
- javascript 값
- CAS
- javascript
- ECMA2015
- 자바스크립트
- JetBrains
- java.util.LinkedHashMap cannot be cast
- webpack
- Spring
- spring batch #스프링 배치 #스프링 배치 중복 실행
- 이펙티브 자바
- Babel
- java
- javascript 기초
- nodeJS
- Spring Session
- javascript type
- Today
- Total
목록분류 전체보기 (34)
귀찮지만 만들어보자
람다보다는 메서드 참조(method reference)를 사용하라 일반적으로 사용하는 람다보다 더 간결하게 만드는 방법이다 - 예시map.merge(key, 1, (count, inc) -> count + incr); map.merge(key, 1, Integer::sum); 이런식으로 더욱 간결하게 사용할 수 있다. 인텔리제이에서 다 만들어주더라 다른 IDE도 되겠지..? 하지만 무조건적으로 간결해지는 것은 아니다.- 예시service.execute(GoshThisClassNameIsHumongous::action); service.execute(() -> action()); 이럴 경우에는 람다보다 메서드 참조가 더욱 알아먹기 어렵다.. 그러니까 적절하게 선택해서 사용하자. 람다로도는 불가능하지만 메서..
익명 클래스보다 람다를 사용하라 - 자바8에 와서 추상 메서드 하나짜리 인터페이스는 인스턴스를 람다식을 이용해서 짧게 만들수 있게 됐다.이를 이용하면 기존보다 간결하고 읽기 좋은 코드를 만들 수 있다. - 익명 클래스를 사용한 코드 Collections.sort(words, new Comparator() { public int compare(String s1, String s2) { return Integer.compare(s1.length(), s2.length()); } }); - 람다식을 이용한 코드 Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length()); 확실히 더 간결하고 읽기 좋은 코드를 만들 수 있다. * 타..
webpack 공부일지 2 기본 컨셉을 알고하자 - Entry : transpile 되기 이전의 상태 파일주소 - Output : transpile 되고나서의 파일 주소 : 설정하기에 따라 여러개를 둘 수 있다. Entry도 마찬가지 - Loader : 특정 파일의 패턴을 정의한 후, loader를 적용 시킴 bundling 되기 이전에 전처리 된다 : ex) babel, cssloader 등 - Plugins : loader는 특정 유형의 모듈을 변환하는데 사용되지만, plugin은 더 넓은 범위에 영향을 끼친다 : ex) uglify const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm const webpack = ..
웹팩(webpack)은 프로젝트에 산재된 리소스 파일 (css, js)을 번들링(bundling)하는 역할을 한다 이것 말고도 여러가지 기능이 있는데, 이것들은 하나하나 알아 보자 우선 웹팩을 공부하기 이전에 선행해야할 일이 두가지 정도가 있는것 같다 1. nodejs 설치 1-1. homebrew를 사용한 설치법 #homebrew가 없을 경우 terminal을 열고 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"커맨드를 입력한다 (루비는 macos 일정 이상버전에 기본으로 설치되어있다) #homebrew가 이미 설치되어 있을 경우 brew install node 그냥 클라이언..
3. 네이티브 사실 네이티브는 내장함수다 ex) String() var s = new String("Hello World"); console.log(s.toString()); // "Hello World"- 생성자처럼 사용 가능하지만 살짝 다름 - 만약 생성자였다면 typeof 연산자를 먹였을 때 string이 나와야겠지만 이것은 object를 뱉어낸다 이거 뭐 어쩌라는건지 모르겠다 3-1. 내부 [[Class]] - typeof가 object인 값에는 [[Class]] 라는 내부 프로퍼티가 추가로 붙는다 - 직접 접근은 불가능하고, Object.prototype.toString.call() 과 같은 함수를 호출해서 불러낼 수 있다 ex) [object Array] - 원시 값에도 [[Class]]가 있..
2. 값 2-1. 배열 : js의 배열은 다른 언어와는 다르게 어떤 값도 담을수 있고, 크기를 정하지 않고도 선언이 가능하다 java의 배열과는 여러모로 다르다. python의 list와 비슷하면서 살짝 또 다름 * 배열 값에 delete 연산자를 적용하면 값을 제거할 수 있지만 length가 줄어들지는 않는다. splice를 사용하자 * 배열 자체도 하나의 객체(typeof 배열 -> "object")여서 키 / 프로퍼티 문자열을 추가할 수 있다 -> 그러나 length는 증가하지 않는다. 또 여기서 한가지 더 주의해야할 점은 var a = []; a["13"] = 42; a.length; // 14이런 식으로 키로 넣은 문자열 값이 표준 10진수 숫자로 타입이 바뀌게 되면 숫자키를 입력한것처럼 len..
1. 타입 1-1. js type 7가지 -> typeof 적용 ex) console.log(typeof "apple"); -> "string" 출력 - null -> "object" : 타입은 object로 취급되는 예외적인 케이스 (왜 이따구로 만들었을까) - undefined -> "undefined" - boolean -> "boolean" - number -> "number" - string -> "string" - object -> "object" - symbol (es6 부터 추가) -> "symbol" * typeof가 반환하는 문자열 타입은 "function" 이라는 것이 있다 - function도 object의 하위 타입이므로 역시 객체이다 - 배열(Array) 역시 object의 하위..
Spring MVC 에서 세션을 사용할때 RequestContextListener를 등록해서 사용한다 redis와 같은 nosql cache를 사용해서 세션 클러스터링을 할때 springSessionRepositoryFilter를 사용하게 되는데 이때 RequestContextListener의 등록을 해제해야 한다 RequestContextListener는 WAS의 세션을 사용하기 위해 등록해서 쓰는 것인데, 이것은 Spring Session과는 별개로 동작하게 되면서 세션을 정상적으로 사용할 수 없게 된다 매 요청마다 세션이 invalid 되고 새로 만들어지면서 요청에 들어있던 값들은 다 없어지기 때문에 사용할 수가 없다는 것인데 RequestContextListener의 등록을 해제하면 Spring ..
BigDecimal을 사용하자