본문 바로가기

Programing

(403)
[spring] stream 사용 예, 하지만 없어졌지... ControllerAdviceBean#findAnnotatedBeans ~v5.0.9.RELEASE v5.0.9.RELEASE 까지는 enhanced for 로 구성이 되어 있었다. package org.springframework.web.method; public class ControllerAdviceBean implements Ordered { // ... /** * Find the names of beans annotated with * {@linkplain ControllerAdvice @ControllerAdvice} in the given * ApplicationContext and wrap them as {@code ControllerAdviceBean} instances. */ publi..
[javac] 자바 컴파일러: 컴파일 단계 질문: - 질문 제목 : 클래스의 순서는 어떤 기준으로 정하나요?? - 질문 내용 : main메서드에 Time객체를 생성하고 참조변수 t를통해 시간을 호출하는데 Time 객체를 생성하는 클래스가 선언된곳보다 뒤에 있어도 상관 없는건가요??? 코드는 위에서 아래로 진행되는거 아닌가요??? public class Exe5 { public static void main(String[] args) { Time t = new Time(); t.hour = 12; t.minute = 34; t.second = 56; System.out.println(t.hour); System.out.println(t.minute); System.out.println(t.second); } } class Time { int hou..
성지순례와 인터페이스 과거에 쓴 글이 미래에 갑자기 흥(?)하는 경우가 있다. 인터페이스를 보면서 그런 생각을 했다.
[Java] Wrapper 클래스 vs Overload 메서드 중 우선순위는? 카페에 어떤 분이 아래와 같은 질문을 올렸다. 질문 public class OverrideVsAutoUnboxing { public static void main(String[] args) { System.out.println(new Integer(59)); } } 위와 같은 코드가 59로 출력되는 원리가 궁금합니다. 'new Integer(숫자)'를 system.out.println하면 숫자가 출력되는 원리에 대해 설명주세요. 코드리뷰 일단 위와 같은 코드는 여러 안티패턴(피해야 되어야 할 코드)이 들어가 있다. 불변 클래스의 생성자 생성 아래의 코드에 대한 내용이다. new Integer(59) 자바에서 문자열 타입으로 문자열을 생성할 때 new String()으로 문자열을 만들지 말라고 하는 이유가..
[Java] forEach와 for each 의 차이점은? 카페에 올라온 질문이다. import java.util.ArrayList; import java.util.List; public class LoopTest { public static void main(String[] args) { List list = new ArrayList(); for (int i=0; i { System.out.println(str); }); // 2 for(String str : list) { System.out.println(str); } } } 1번과 2번의 차이점은 무엇인가요? 코드리뷰 일단 차이점을 알아보기 전에 코드를 리뷰해보자. Review 1. ArrayList 객체 생성 일단 ArrayList를 List 인터페이스로 받은 것은 잘한 것 같다. 왜 그런지는 이펙티브자..
일주일이 지난 로그파일 정리 하기 로그 파일 서버를 운영하다보면 로그파일이 지속적으로 쌓입니다. 트래픽이 많은 로그 파일이라면 로그파일 역시 용량이 클 것이고 Disk 자원에 부담이 될 것입니다. 로그 파일을 정리하는 수행하는 간단한 애플리케이션을 만들어보겠습니다. 만약 cron 등 스케쥴링을 할 수 있는 시스템을 같이 이용하면 배치처리에 범주로 볼 수 있을 것 같습니다. (우겨봅....세) 첫 번째 코드 스프링 배치 같은 것을 사용할 수 있겠지만 단순히 하기 위해 node.js 를 사용합니다. JavaScript의 date 라이브러리는 Java Date 처럼 악명이 높기 때문에 moment.js 라는 라이브러리를 사용하겠습니다. 앞으로 나오는 코드를 실행하려면 먼저 아래 명령으로 moment.js 를 추가가 필요합니다. npm inst..
[생각] 패러다임과 프레임 그리고 멱등성 인용 패러다임(paradigm): 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념 프레임(이론): 틀이라는 의미가 추상적으로 확대되어 생각의 틀을 가리키는 용어(심리학적 프레임 등)로도 쓰인다. 서론 올해 중반 Effective Java 3/E이 부서내 읽는 분위기가 달아올랐다. 심지어 점심시간 스터디 그룹까지 생겨날 정도였다. 스터디에 참여를 하지는 않았지만 궁금해서 스터디에 임시로 참여해서 의견을 같이 나누는 시간을 가졌다. 스터디를 마치고 든 생각은, 1) 이펙티브 시리즈라는 것이 좋은 책이라는 점에 대해서는 이견이 없지만 2) 책을 읽고 나서 여기에 있는 내용에 대해 맹목적으로 따르는 부작용 에 대해 ..
[Java] 인스턴스 변수 초기화 어떤분이 초기화 블럭을 물어본 사항이 있어서 확인한 사항을 첨가해서 기록으로 남깁니다. 질문 - 제목 : 클래스 초기화 블럭 사용하는 이유 - 내용 : 초기화 블럭 부분을 공부하면서 느낀건데 왜 굳이 클래스 초기화 블럭을 사용해야 하는지 잘 모르겠어요. 그냥 초기화 코드를 분리해서 관리하기 위함이 전부인가요? 개인적으로 이런 존재의 이유(raison d'être)에 대해 고민을 하는 것은 좋다고 생각한다. 문제는 혼자서 고민을 하다가 주제에서 벗어난 곳으로 빠질 위험이 있고 답을 찾기 어려울 수도 있다. 이럴 경우 친구나 커뮤니티에 물어봐서 어느정도 답을 찾는 것이 좋을 것 같다. (좋은 질문이었다는 이야기를 어렵게 하고 있음..) 접근법 일단 초기화 블럭에 대해서는 Java Tutorials 중 Cla..