log4j 혹은 logback 설정을 통해 로그를 찍는 경우에 별다른 설정이 없으면 중복 로그가 발생한다. logger는 기본적으로 정의한 패키지의 상위로부터 모든 appender를 상속받는다. 이런 기본설정 때문에 중복 로그가 나타난다. 하나의 로거에서 여러 다른 appender로 동시에 로그를 출력할 수 있는 장점이 있지만, 중복 로그는 보기가 안 좋다. 이런 문제점을 해결할 수 있는 옵션은 additivity="false"로 지정하는 것이다. 해당 attribute로 지정하면 로거는 상위로부터 내려오는 appender를 상송을 하지 않게 된다.
http://java-decompiler.github.io/ Java Decompiler The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions. JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed so java-decompiler.github.io "Java Decompiler 프로젝트"는 Java 5 "바이트 코드"및 이후 버전을 디 컴파일하고 분석하기 위한 도..
import java.util.List; import java.util.Map; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframe..
지난 포스팅에서 자바스크립트 배열에 대한 고찰이라는 주제로 내용을 다루었었다. 이번에는 배열 전반적인 부분을 보도록 하자. 배열 즉, Array 객체는 자바스크립트에서 가장 많이 사용되는 객체이면서도 잘 모르는 사실들이 많이 숨어 있는 객체 이기도 하다. 배열뿐만이 아니다. 자바스크립트의 영역은 상상 그 이상이다. 배열 선언 arr1, arr2는 빈 배열을 선언한 것이고 arr3, arr4는 배열을 선언과 동시에 인자를 할당한 모습이다. 주목해야 할 점은 arr5, arr6 배열 객체이다. arr5는 인자가 하나 있는 배열 선언이 아니고 길이가 5인 배열을 선언한 것이다. 하지만 arr6은 인자가 하나인 배열이다. 배열 선언 방법에 따른 차이로 인해 나타난 현상이다. Array 생성자를 통해 배열을 선언..
자바스크립트 배열의 길이는 동적으로 변한다. 그렇다면 배열 변수 선언과 요소의 정의, 삭제 등의 조작으로 인한 값의 변화를 살펴보자. 다음은 크롬 브라우저의 콘솔 창을 활용하려 배열을 선언하고 요소를 추가하는 과정이다. 위에서 보면 배열 변수 x를 선언하고 x 배열 10번째 요소에 123 값을 추가하였다. 그 후 x 배열의 length 값이 0에서 11로 바뀌는 것을 확인할 수 있다. 배열의 길이는 11개이지만 x[0] ~ x[9] 요소의 값은 'undefined' 이므로 메모리는 1개의 요소만 할당된다. 다음으로 배열 요소를 삭제해보자. delete로 배열 요소를 삭제할때는 값만 사라지고 배열의 길이는 줄어들지 않는 것을 볼 수 있다. 하지만 splice 함수로 배열 요소를 잘라내면 배열 길이가 줄어든..
// 이런 클래스는 절대로 public으로 선언하지 말것 class Point { public double x; public double y; } 때때로, 아무 기능도 없는 클래스를 만들고 싶어 질 때가 있다. 하지만 이런 클래스는 데이터 필드를 직접 조작할 수 있어서 캡슐화의 이점을 누릴 수가 없다. API를 변경하지 않고서는 내부 표현을 변경할 수 없고, 불편식도 강제할 수 없고, 필드를 사용하는 순간에 어떤 동작이 실행되도록 만들 수도 없다. 객체지향 개념에 충실하고자 하는 프로그래머에게 이런 클래스는 최악이다. private필드와 public 접근자 메서드(getter/setter)를 제공해야 할 것이다. public 클래스 즉 선언된 패키지 밖에서도 사용 가능한 클래스에서는 접근자 메서드를 제공..
SQL Developer는 오라클에서 제공하는 DB 접속 클라이언트이다. 유료 상용 접속 DB툴을 사용하지 않는 이상 대부분의 개발자 분들이 SQL Developer를 활용할 것으로 생각된다. SQL Developer는 오라클 이외에도 다른 데이터베이스 연결을 지원한다. MySQL 연결 방법에 대해 알아보자. 1. SQL Developer 다운로드 http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html Oracle SQL Developer Downloads www.oracle.com 2. MySQL Jar 다운로드 https://dev.mysql.com/downloads/connector/j/ MySQL ::..
이클립스에서 스프링 환경으로 개발하다 보면 이클립스 하단 상태 표시줄에 "Bulilding workspace"가 수시로 진행된다. 가끔은 더 이상 진행이 안되어 멈추기도 한다. 그럴 때는 강제로 재 시작하거나 이것마저 무한루프에 빠질 때가 있다. "Bulilding workspace"의 대부분은 Validation에서 많은 시간을 낭비한다. 자바스크립트 검증은 생각보다 별 의미가 없다. 자바스크립트는 비교적 구문이 자유로워 문법에 대한 오류를 실시간으로 검새해 알려주는 것이 이클립스 성능 저하보다 의미가 있어 보이지 않는다. Validation 해제만 해도 날아다니는 이클립스를 보게 될 것이다. Validation 해제 Window -> Perferences -> Validation 문법 검사가 필요 없..
잘 설계된 모듈은 구현 세부사항을 전부 API 뒤쪽에 감춘다. 내부적으로 무슨 짓을 하는지는 신경 쓰지 않는다. 이 개념은 정보은닉(information hiding) 또는 캡슐화(encapsulation)라는 용어로 알려져 있으며, 소프트웨어 설계의 기본 원칙 가운데 하나다. 정보은닉이 좋은 성능을 보장하는 건 아니지만 성능 문제를 일으키는지 프로파일링 하는데 용의 하다. 또한 병행 개발이 가능하며, 다른 코드에 영향 없이 디버깅이나 성능 튜닝을 할 수 있다. 각 클래스와 멤버는 가능한 한 접근 불가능하도록 만들어라. 다시 말해서 정상적인 동작을 보증하는 한도 내에서 가장 낮은 접근 권한을 설정하라는 것이다. 클래스 접근 권한자 package-private(default) public을 붙이지 않으면 ..
- 오라클
- sort algorithm
- spring
- Linux 명령어
- 리액트
- React
- Collection
- 자바
- 정렬 알고리즘
- 제주도 여행
- Eclipse
- Tomcat
- 이직
- 제주도 3박4일 일정
- Java
- 회고
- 경력관리
- 소프트웨어공학
- 프로그래머스
- javascript
- SQL
- Maven
- 개발환경
- 자바스크립트
- 리눅스 명령어
- 오라클 내장 함수
- 리액트 16
- effective java
- 성능분석
- 프로그래머
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |