일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- npm
- expire_logs_days
- Express
- Chunk
- upgrade
- update
- REACT
- java
- Effective Java
- spring
- Node
- Effective Java 3/e
- spring cloud
- log_bin
- 퀵소트
- JavaScript
- Spring Batch
- 정규표현식
- Regular expression
- regex
- Webpack
- current_date
- git
- log4j2
- REACTJS
- migration
- eslint
- mysql 5.5
- MySQL
- Today
- Total
목록Language (21)
내 세상
RegExp.prototype.execString.prototype.match문자열에 대해 정규식과 일치하는지 탐색 후 결과를 배열로 반환함. (일치하지 않을 경우, null 반환)example) 정규식.exec(문자열)정규식으로 문자열에서 일치하는지 탐색 후 결과를 배열로 반환함. (일치하지 않을 경우, null 반환)example) 문자열.match(정규식) 차이점1. g 플래그 사용Case1) 단순 정규 표현식const execTest = /(?\d{4})-(?\d{2})-(?\d{2})/.exec("2024-04-15");console.log(execTest)// print log// [// '2024-04-15',// '2024',// '04',// '15',// inde..
호이스팅(Hoisting) 함수 내의 모든 선언들을 해당 함수 유효 범위의 최상단에 선언하는 것 Javascript Parser가 함수 실행 전 해당 함수를 확인 함수 안에 존재하는 변수/함수 선언에 대한 정보를 기억 후 실행 유효 범위 : 함수 블록 {} 안에서 유효 즉, 함수 내에서 필요한 값 중 아래쪽에 존재하는 내용을 끌어올리는 것. 호이스팅의 대상 var 변수 선언 / 함수 선언문 var 변수/함수의 선언만 위로 끌어 올려지며, 할당은 끌어올려지지 않는다. let/const 변수 선언과 함수표현식에서는 호이스팅 발생하지 않음 Hoisting Before console.log("First Log"); var testVar = "TISTORY"; console.log("Second Log"); le..
https://hbase.tistory.com/171 [Java] 자바 스트림(Stream) 사용법 및 예제 자바 스트림(Stream) 자바의 스트림(Stream)은 'Java 8'부터 지원되기 시작한 기능이다. 컬렉션에 저장되어 있는 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 코드패턴이다. 람다식과 함께 사용되 hbase.tistory.com Collectors.groupingBy() 와 Collectors.groupingByConcurrent = SQL 언어의 Group BY 절과 유사한 기능을 제공함.
import java.util.regex.Pattern; import java.util.regex.Matcher; class CodeRunner{ public static void main(String[] args) { Pattern p = Pattern.compile("_([0-9]+).txt$", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher("ABC_TEST_BABO_GOSU_COMPUTER_10.txT"); if(m.find()){ System.out.println(m.group(1)); } } } round bucket, 괄호, ( => 괄호로 묶을 경우, group으로 칭한다. m.group(1) => Matcher에서 첫번째 그룹을 가져온다는 의미. ..
https://hashcode.co.kr/code_runners?language=java 코드 실행기 | Hashcode 로그인하시겠습니까? hashcode.co.kr import java.util.Date; import java.util.Locale; import java.text.SimpleDateFormat; class Test{ public static void main(String[] args) { Date today = new Date(); Locale currentLocale = new Locale("KOREAN", "KOREA"); String pattern = "yyyyMMddHHmmss"; //hhmmss로 시간,분,초만 뽑기도 가능 SimpleDateFormat formatter = ..
https://logging.apache.org/log4j/2.x/manual/migration.html Log4j – Migrating from Log4j 1.x Copyright © 1999-2021 The Apache Software Foundation. All Rights Reserved. Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation. logging.apache.org Log4j 1.x → Log4j 로 지칭 Log4j 2.x → Log4j2로 지칭 Configurin..
https://logging.apache.org/log4j/2.x/manual/migration.html Log4j – Migrating from Log4j 1.x Copyright © 1999-2021 The Apache Software Foundation. All Rights Reserved. Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation. logging.apache.org Converting to the Log4j 2 API (빨강색: 버전 1 관련, 파랑색: 버전 2 관..
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될..
const #define Type O (const int i=3;) X (#define i 3) Scope Global Scope(전역) / Local Scope(지역) Only Global Scope(전역) Bug 확인 컴파일러단에서 처리하기 때문에 디버깅 용이 전처리기가 동작하여 값을 가지고 있기 때문에 디버깅 어려움. 오동작 X Const에 대한 값이 계산된 후 연산이 되기 때문에 오동작하지 않음. ex) const int i = 1+2; int b = i * 3; 결과: 9 O 컴퓨터에서 해당 식 자체를 인식하고 있기 때문에 연산에 오동작이 발생할 수 있음. ex) #define i 1+2 int b = i * 3; 결과: 7 1 + 2 * 3 = 1 + (2 * 3) = 7
C++의 new, delete 사용 예시 #include int main() { // C스타일 메모리 할당 // C : void* => int* 로 암시적 변환 가능 // C++ : void* => int* 로 암시적 변환 불가능 int *p1 = static_cast(malloc(100)); // sizeof(int)*10 free(p1); // C++ 스타일 int *p2 = new int; delete p2; int* p2 = new int[10]; // 배열 버전, sizeof(int)*10; delete[] p2; // 해지 할때도 배열 버전의 delete 사용 int* p3 = new int[10]; delete p3; // 이렇게 한다면? // 표준 문서에서 어떻게 될거 라고 정의 한적이 없..
int main() { int n1 = 0; int* p1 = 0; // ok. 0은 정수 이지만 포인터로 암시적 형변환 된다. //int* p = 10; // error. 10은 정수라도 포인터로 변환될 수 없다. // C++11 스타일 // 포인터 초기화시에는 0 대신 nullptr을 사용하자 int n2 = nullptr; // erorr int* p2 = nullptr; // ok } #include void foo(void *p) { std::cout
C++ 스타일의 캐스팅 - static_cast - 표준 타입을 값으로 캐스팅 - 상속 관계 타입의 캐스팅 - lvalue => rvalue 변환 - void* => 다른 타입으로 변환 - reinterpret_cast - 메모리의 재해석 - 서로 다른 타입의 주소 변환 - 정수 포인터 사이 변환 - const_cast - 동일 타입의 const 속성을 제거하는 캐스팅 > #include #include // static_cast : 가장 일반적인 용도 // 1. 표준 타입을 값으로 캐스팅 // 2. 상속 관계 타입의 캐스팅 // 3. lvalue => rvalue 변환 // 4. void* => 다른 타입으로 변환 int main() { double d = 3.4; int n1 = d; // ok in..