일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Effective Java
- update
- REACTJS
- Chunk
- 정규표현식
- regex
- mysql 5.5
- log_bin
- spring
- current_date
- try catch
- log4j2
- migration
- REACT
- 퀵소트
- JavaScript
- Spring Batch
- MySQL
- nodejs
- upgrade
- expire_logs_days
- eslint
- Effective Java 3/e
- npm
- git
- spring cloud
- Node
- Regular expression
- Express
- java
- Today
- Total
목록전체 글 (160)
내 세상
toString의 일반규약에 따라 '간결하면서 사람이 읽기 쉬운 형태의 유익한 정보'를 반환해야 한다. 또한, toString의 규약은 "모든 하위 클래스에서 이 메서드를 재정의하라"고 한다. toString을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래스를 사용한 시스템은 디버깅하기 쉽다. toString메서드는 객체를 println, printf, 문자열 연결 연산자(+), assert 구문에 넘길 때, 혹은 디버거가 객체를 출력할 때 자동으로 호출된다. 즉, 직접 호출하지 않더라도 다른 어딘가에서 쓰일 거란 의미이다. format을 한번 명시하면 평생 그 format에 얽매이게 된다. 만약 향후 release에서 format을 바꾼다면 이를 사용하던 코드들과 데이터들은 엉망이 될 것이다. ..
Java Library에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다. ex) InputStream, OutputStream, java.sql.Connection 등 자원 닫기(close 메서드)는 client가 놓치기 쉬워서 예측할 수 없는 성능 문제로 이어지기도 함. 이런 자원 중 상당수가 안전망으로 finalizer를 활용하고는 있지만 finalizer는 그리 믿을만 하지 못하다.(Item 8) 전통적으로 자원이 제대로 닫힘을 보장하는 수단으로 try-finally가 쓰였다. static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader..
새로운 기능을 다룬 아이템의 위치 기능 아이템 번호 도입된 자바 버전 람다(lambda) 42~44 (p254 ~ p263) Java 8 스트림(stream) 45~48 (p268 ~ p291) Java 8 옵셔널(Optional) 55 (p326) Java 8 인터페이스의 디폴트 메서드 21 (p136) Java 8 try-with-resources 9 (p47) Java 7 @SafeVarargs 32 (p191) Java 7 모듈(Module) 15 (p96) Java 9 Component ? 개별 method부터 여러 package로 이뤄진 복잡한 framework까지 재사용 가능한 모든 software 요소 Component는 사용자를 놀라게 해서는 절대 안된다. (정해진 동작이나 예측할 수 있..
백기선님의 이펙티브 자바 강의 - https://bit.ly/2Lu4BGi 한국어판 깃허브 저장소 - https://github.com/WegraLee/effective-java-3e-source-code
대소문자 구분없이 탐색하기 위해선? Regex의 맨 앞부분에 (?i) 를 추가하여 대소문자 구분을 무시하도록 한다. t.matches("(?i)(.*)P[0-9](_[0-9])(.*)TEST.txt$") 구문 분석 (?i) : 탐색 시 대소문자 구분하지 않도록 설정 (.*) : 어떤 문자든 match될 수 있음 P[0-9] : P로 시작하고, 0~9 중 하나의 숫자를 가지는 character를 match함. (_[0-9]) : _로 시작하고, 0~9 중 하나의 숫자를 가지는 character를 match함. cf) (_[0-9])? : _로 시작하고, 0~9 중 하나의 숫자를 가지는 character를 match하지만, 존재하지 않아도 정규식에 filter되지 않음. (.*) : 어떤 문자든 match될..
Node.js 마이크로 서비스 코딩 공작소 中 6.1 마이크로서비스와 분산 아키텍처 Monolithic architecture 모든 기능을 하나의 프로세스로 구성하기 때문에 장애 상황에 취약함. 장애 발생시, 전체 서비스가 중단되기 때문에 피해 심각함.
http://smalldatum.blogspot.com/2017/06/sysbench-for-mysql-50-51-55-56-57-and-8.html Sysbench for MySQL 5.0, 5.1, 5.5, 5.6, 5.7 and 8 Update - the regression isn't as bad as I have been reporting. Read this post to understand why. After sharing results for in-memory s... smalldatum.blogspot.com https://dogcowking.tistory.com/74 MySql 5.1 to 5.6 Upgrade * 개요 - MySql 5.1 에서 5.6 으로 업그레이드 - 5.1 에서 만들..
process.nextTick 함수 내부에서 비동기적으로 callback을 하기 위해서 사용해야함. 특정 함수를 호출하기 전 CPU가 다른 높은 우선순위의 명령을 수행하게 함. 비동기 처리를 위해 Node.js 내부의 스레드 풀로 다른 스레드 위에서 callback 함수를 동작함. 그렇기 때문에, try~catch 문은 같은 thread 위에서만 동작하기 때문에 서로 다른 thread간의 예외 처리 불가능. uncaughtException Node.js는 single thread 기반으로 동작함. 단, single thread라고 해서 모두 같은 thread 위에서 동작하지 않음. 그러므로 try~catch문으로 모든 예외 처리를 하기에는 무리가 있음. Node.js에서는 모든 thread에서 예외 처리..
// JQuery keyup function Implementation $(document).ready(function(){ $("#sampleID_One").keyup({param1: "BABO", param2: "TEST"}, otherFunction); // pass param $("#sampleID_Two").keyup(otherFunction); // just call function })); // other function implementation function otherFunction(e){ let sampleID = e.target.id; let targetValue = e.target.value; let param1 = e.data ? e.data.param1 : ""; let par..
Shell Script 또는 rc.local에서 Exception 처리가 필요할 때가 있음. rc.local의 경우, 중간에 permission denied와 같은 에러가 발생했을 때 rc.local service가 정상적으로 올라오지 않는다. service가 정상적으로 올라오지 않을 때는 아래 명령어로 확인 가능. systemctl status rc-local 또는 journalctl -xe Exception 처리는 아래와 같이 처리 가능함. echo "Start" echo 1 > /sys/babo if [ $? -eq 0 ];then echo "CMD OK" else echo "CMD Fail" fi echo "Finish" 위 코드는 1을 /sys/babo에 echo하는 코드이다. 코드의 위/아래 ..
SELECT TestA as ta, TestB as tb, TestC, TestD, RANK_NUM FROM (SELECT *, (CASE @groupColumn WHEN column1 THEN @rowNum:=@rowNum+1 ELSE @rowNum:=1 END) AS RANK_NUM, (@groupColumn:=column1) FROM noname_table ORDER BY column1, column2 desc ) AS rankTable WHERE RANK_NUM
줄번호 보이기 :set nu 줄번호 감추기 :set nonu 자동 줄바꿈 설정 :set wrap 자동 줄바꿈 해제 :set nowrap
DELIMITER $$ DROP PROCEDURE IF EXISTS loopFunction$$ -- 같은 이름의 PROCEDURE를 삭제한다. CREATE PROCEDURE loopInsert() -- loopInsert 만들기 BEGIN DECLARE i INT DEFAULT 128; -- i 시작점 128 WHILE i
관리자 모드로 PowerShell을 실행 후 dism /online /Enable-Feature /FeatureName:TelnetClient
private HttpHeaders makeHttpHeaders(String filename) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.set(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + filename + "\";"); headers.set(HttpHeaders.TRANSFER_ENCODING, "binary"); return headers; } private ResponseEntity downloadFile(HttpServletRequest request, Map map, String..