본문 바로가기

Programing

(387)
System.out 의 성능? 마이그레이션을 위한 임시 코드로 로깅을 위해 System.out.println 을 사용했다. Q. 예외상황이긴 하지만, 최대 size가 1000개일텐데, System.out.println 괜찮을까요? 여기에 세 고개가 더 붙여졌다. Q2. 왜 "System.out.println 안 괜찮을까요?" Q3. 성능? Q4.어떤 성능이요? 지금은 절판된 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기에도 11번 "로그는 반드시 필요한 내용만 찍자" 부분에서 System.out.print 사용에 관련된 내용이 있어서 내용의 요지는 이해했으나 상기 차원에서 검색을 해서 기록해 두었다. 출처: Java - System.out effect on performance 관점1. println 은 synchronized 로 동..
Mockito use case 이미 잘 정리가 되어 있어서 링크로 대신... Mocking Exception Throwing (Baeldung)
스프링 캐시 인터셉터 어노테이션 기반의 캐시를 종종 애용해주시는 우기님 덕분에 공부를 하게 되었다. 기회를 제공한 우기님께 감사를 드립니다. @Cacheable 어노테이션이 붙어 있는 메서드를 호출하게 되면 어떤 과정이 수행되어 캐시에 데이터가 저장되고 하는지가 궁금했다. 현상에 대한 디버깅을 통해 분석한 것이라 여러 방법 중에 하나일 수 있다. 디버깅을 하다보면 CacheInterceptor 클래스가 보이는데 아래와 같은 계층 구조로 되어 있다. 아래와 같은 MethodInterceptor 인터페이스를 구현하고 있기에 존재하는 메서드는 invoke 메서드 하나 뿐이다. @FunctionalInterface public interface MethodInterceptor extends Interceptor { Object in..
[Kotlin] Kotlin Koans 참고로 Koan이란 공안(公案)의 일본식 발음을 영어로 표기한 것이다. 불교에서 온 영어로 뛰어난 선(禪) 수행자의 깨달음이나 인연 또는 언행이다. 한국어로는 공안보다는 간화선(看話禪)이라는 용어를 찾아보면 이해하는데 도움이 된다. 접근 경로: Kotlin (v1.4.21): kotlinlang.org/ Play Kotlin Language > Koans: play.kotlinlang.org/koans/overview Educational Products 2020.3 > Learner Start Guide (2020-12-11) - Install EduTools Plugin EduTools 1.6M, 4.4.6, 4.4-2020.3-517, 2020-12-25 더보기 With the EduTools pl..
[Kotlin] Android Study Jam -1 참여 DSC MESCOE 라는 줄임말은 Developer Student Club Modern Education Society's College of Engineering 의 약자인데코틀린을 처음 하는 사람을 대상으로 신청을 해서 참여했다.그런데 참여자들의 대부분 인도 사람들이었다. 어쩐지 티거~라는 말을 자연스럽게 쓰고 있더라... 후반부에 중간에 퀴즈들이 있었는데 1등을 했다.
[eclipse] Runnable JAR File 구현은? 자바 카페에서 아래와 같은 질문이 올라왔다. 질문 이클립스에서는 아래와 같이 프로젝트에서 Export로 Runnable JAR 파일을 만들수가 있습니다. 이것을 CMD 창에서 만드려면 어떤 명령어를 입력해야 하나요? 라이브러리 JAR도 포함시킬 때 추가 명령어 입력하는 부분도 궁금합니다. 생성된 JAR 파일에는 META-INF가 자동으로 포함되어 있는데요, CMD 상에서 JAR 파일 만들때에는 MAINFEST.MF 파일이 반드시 있어야 하나요? 느낌은... 일단 질문 자체를 듣고 느낀 점은 IDE의 장점이자 단점을 느낄 수 있었다. 통합개발도구(IDE)는 개발시에 코드입력 뿐만 아니라 컴파일 등의 반복적으로 하는 것과 디버깅, 리팩토링 등 여러가지를 도와준다. 만약 자바를 명령어부터 시작했더라면 컴파일 ..
[Java] var는 키워드가 아니다. "개발하자" 라는 슬랙에서 이석민(닉네임 lee_maru)님이 "var는 키워드가 아닙니다."라는 이야기를 해서 찾아보게 되었다. 자바언어 규약(JLS)를 찾아보니 var는 키워드가 아니라고 한다. var is not a keyword, but rather an identifier with special meaning as the type of a local variable declaration reference: docs.oracle.com/javase/specs/jls/se12/html/jls-3.html#jls-3.9 국내 출판된 책들 중에는 var 이 키워드라고 되어 있는 책도 있었다. - 장윤기 님의 Practical 모던 자바
[Lombok & Spring (Jackson)] @Getter(lazy=true)를 쓸 때 주의해야 할 점 효진님이 getter 에서 매번 객체를 만드는 것에 대해 이유를 물어봐서 한 번만 만들어지게 하기 위해서 아래와 같이 lazy 를 true로 했다. import lombok.Getter; public class TistoryIssueParams { @Getter(lazy = true) private final TistoryNumber tistoryNumber = TistoryNumber.of(tistoryNumberType, tistoryNumberValue); 이런 식으로 annotation을 달면 lombok은 AtomicReference 로 필드를 만들고 늦은 초기화를 하는 코드를 만든다. 늦은 초기화를 Double-checked locking idiom을 사용하는 것을 알 수 있다. public ..