본문 바로가기

나만의 정리26

Maven VS Gradle 메이븐(Maven)과 그래들(Gradle) 흔히 스프링에서 빌드 도구로 메이븐 또는 그래들을 사용한다. 그런데 요즘 트렌드를 보면 대부분 Spring Boot + Gradle을 사용한다. 왜 Maven말고 Gradle을 더 많이 사용할까? 궁금해졌다. 간단히 각각의 특징을 알아보자. 메이븐(Maven) apache의 ant build의 대안으로 만들어졌으며, apache 라이센스로 배포되는 오픈 소스 소프트웨어이다. pom.xml을 사용한 정형화된 빌드 시스템 그래들(Gradle) Ant와 Maven의 장점을 합쳐서 출시 빌드 스크립트가 자바와 같이 JVM 위에서 동작하는 groovy라는 언어로 작성하게 된다. 스크립트 언어이므로 컴파일을 할 필요는 없다. Maven VS Gradle Maven은 XML.. 2020. 6. 2.
스택 트레이스 읽는 방법(feat. NullPointerException) 스택 트레이스르 정확히 읽을 줄 알아야 빠른 디버깅이 가능하고, 이는 에러 해결하는 시간을 줄여주는데 직결하기 때문에 알아두는게 좋을 것 같다. java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.mylibrary.ap.xul.build.. 2019. 8. 5.
컴파일과 런타임 컴파일 소스코드가 컴퓨터가 이해할 수 있는 기계어로 변환되는 과정 런타임 컴파일이 끝난 후, 사용자에 의해 실행되어 지는 응용프로그램의 동작 컴파일 에러 vs 런타임 에러 컴파일 에러 유형 syntax error typecheck error 런타임 에러 유형 0 나누기 error 널(Null) 참조 에러 메모리 부족 에러 2019. 7. 14.
[웹] White Domain, RBL, SPF, DKIM White Domain 정상적으로 발송하는 대량 이메일이 RBL 로 간주되어 차단되는 것을 방지하기 위해, 사전에 등록된 개인이나 사업자에 한하여 국내 주요 포털사이트로의 임일 전송을 보장해주는 제도(무료) 단, 이후 모니터링을 통해 RBL 이력발송 사실이 확인되면 즉각 차단조치 또는 white 리스트에서 삭제될 수 있음 RBL (Real-time Blocking List) 이메일 수신시 간편하게 스팸여부를 차단할 수 있도록 제공되는 스팸발송에 이용되는 IP 리스트를 말하며, 대체로 DNS Lookup을 통해 확인하는 방식을 이용하므로 DNSBL(DNS-based Blackhole List) 라고도 함. 메일서버등록제 SPF(Sender Policy Framework) 메일서버 정보를 사전에 DNS에 공.. 2019. 7. 14.
자바 제네릭 완전정복 다양한 제네릭 표현소스코드를 보다가 타입 변수에 모든 타입을 사용할 수 있음 2019. 3. 21.
빌더 패턴(Builder Pattern) 빌더 패턴(Builder Pattern)빌더 패턴은 객체를 생성할 때 흔하게 사용하는 패턴이다..build()라는 코드를 봤다면, 빌더 패턴을 사용했다고 할 수 있다.나 역시 이 코드를 보고 이게 뭐지?? 하고 찾아보게 되었다.Effective Java의 빌더 패턴객체 생성을 깔끔하고 유연하게 하기 위한 기법점층적 생성자 패턴만드는 방법필수 인자를 받는 필수 생성자를 하나 만든다.1개의 선택적 인자를 받는 생성자를 추가한다.2개의 선택적 인자를 받는 생성자를 추가한다....반복모든 선택적 인자를 다 받는 생성자를 추가한다.//점층적 생성자 패턴 코드 예제 : 회원가입 public class Memeber { private final String name; //필수 인자 private final Strin.. 2019. 3. 21.