Lombok이란? Lombok 이클립스에 적용하는 방법Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다. 보통 Model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter와 setter 그리고 toString() 메서드 그리고 때에 따라서는 멤버변수에 따른 여러개의 생성자를 만들어주게 되는데, 거의 대부분 이클립스같은 IDE의 힘만으로 생성한다고 하지만 이 역시도 번거로운 작업이 될 수 있습니다. 뿐만 아니라 코드 자체가 반복되는 메서드로 인해 매우 복잡해지게 됩니다.Lombok은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 ..
자바[Java]
2019. 7. 18. 20:19
[Java] Java의 문자열(String) 객체가 저장되는 String Pool에 대하여
연관글[Java] String의 불변성(Immutable)과 그 이유[용어정리] 리터럴(literal)이란? 상수와의 차이점.Java의 문자열(String) 객체가 저장되는 String Pool에 대하여Java에서 가장 많이 사용되는 데이터 타입은 String이 아닐까 싶습니다. 사람이 가장 이해하기 쉬운것이 Text이기 때문이지요. 그런데 Java에서 문자열을 표현하는 String 타입의 객체는 불변성(Immutable)이라는 성질을 가지고 있으며 같은값의 문자열에 대해서는 단 하나의 문자열 객체만을 생성하도록 설계 되어있습니다.Java에서 String이 이러한 성질을 갖는 이유는 몇가지 장점이 있기 때문인데 가장 큰 장점은 성능입니다. 같은 값을 갖는 문자열 객체는 JVM의 객체가 생성되는 공간인 H..
자바[Java]
2019. 7. 16. 11:27
[Effective Java] 인스턴스화가 필요없는 Utility 클래스 등은 private 생성자를 사용하자
인스턴스화가 필요없는 Utility 클래스 등은 private 생성자를 사용하자프로젝트를 진행할 때 어플리케이션 전역에서 사용하는 기능의 공통 메서드들은 보통 static 멤버로만 이루어진 Utility 클래스로 만들어 사용하곤 합니다. 예를 들자면 문자열을 조작할 때 사용하는 StringUtil이라거나 DateUtil 등이 있습니다.예를 들면 org.apache.commons 라이브러리에도 StringUtils가 존재합니다.public class StringUtils { public static boolean isEmpty(String str) { return str == null || str.length() == 0; } public static boolean contai..
[Effective Java] 문자열 String 영어 대소문자 무시하여 비교시에는 equalsIgnoreCase() 메서드를 사용하자뭔가 포스팅 제목만 보자면 방문자분들께서 "뭘 이미 알고 있는 당연한 이야기를 하고 있어?" 라는 말이 나올것같은 제목입니다. 이 글은 equalsIgnoreCase() 메서드를 사용하면 어떤 장점이 있는지를 정리해보고자 한 글이니 읽기에 앞서 참고 부탁드립니다.영어(알파벳)로만 이루어진 String 객체 대소문자 무시하여 비교하는 방법만약 영문자 값으로만 이루어진 두 문자열 str1과 str2가 있다고 했을때 이 둘을 대소문자를 무시하고 단순히 알파벳이 같은지만 비교하고자 한다면 어떻게 해야할까요?가장 쉬운 방법은 다음과 같이 str1과 str2를 각각 toUpperCa..
자바[Java]
2019. 7. 11. 00:30
[JAVA] Java I/O(입출력) [2] 자바 입출력 패키지(java.io) 구조
이전글[JAVA] Java I/O(입출력) [1] 입출력 및 스트림 개념입출력 패키지(java.io)자바에서 입출력과 관련된 클래스들은 java.io 패키지에 모아두었기 때문에 입출력 프로그램을 작성하기 전에는 java.io 패키지를 import 시켜주어야 합니다.import java.io.*;입출력 단위와 대상에 따른 클래스 분류java.io 패키지 안에는 사용 목적, 동작 방식에 따라 개발자가 원하는 입출력을 수행할 수 있도록 하기 위해 수많은 입출력 관련 클래스들을 모아 두었습니다. 따라서 이를 구분하기 쉽도록 클래스명(식별자)이 명명되었는데, 클래스명의 앞 뒤에 붙는 접두사와 접미사를 보면 그 입출력 클래스의 특성을 이해할 수 있습니다.가장 기본적으로 입출력 단위(크기)에 따라 분류할 수 있습니다..
자바[Java]
2019. 6. 22. 00:30
[Java] String의 더하기 연산으로 인한 문제점과 StringBuffer, StringBuilder의 특성과 차이점에 대해서
다음글[Java] String의 불변성(Immutable)과 그 이유String의 불변성으로 인한 문자열 append 연산 문제점최근에는 Java의 컴파일러의 최적화가 진행됨에 따라 문자열의 + 연산시의 문제가 많이 해결되었습니다만 과거에는 String의 불변성에 따른 문제점이 있습니다.JDBC API를 이용할때 다음과 같이 SQL을 + 연산하여 여러 문자열 리터럴을 더해 사용합니다. 여기서는 아주 간단한 sql을 작성해 보았지만 회계관련 ERP 시스템과의 연동을 하는 경우에는 쿼리는 수십 ~ 수백줄이 되기도 합니다. 조건으로 사용하는 컬럼이 늘어날수록 + 연산은 그만큼 증가합니다.String tableName = "user_tbl";String sql = "SELECT * FROM " + tableNa..
자바[Java]
2019. 6. 21. 14:58
[Java] String의 불변성(Immutable)과 그 이유
이전글[Java] String의 더하기 연산으로 인한 문제점과 StringBuffer, StringBuilder의 특성과 차이점에 대해서자바(Java) String의 불변성(Immutable)어떤 언어든 프로그래밍을 하다 보면 가장 많이 사용하고 꼭 있는 자료형이 문자열(String)일것입니다. 사람은 010100 과 같은 숫자보다 "book" 같은 문자에 더욱 익숙하기 때문입니다. 또한 문자열은 "1234"와 같이 숫자를 표현할 수 있고 "j20dsf908"와 같이 특정 인코딩된 데이터 또한 표현이 가능하며, 모든것들을 표현할 수 있습니다. 예를들어 png같은 이미지 파일도 Base64 인코딩 하여 ASCII 형식의 문자열로 표현이 가능하지요.이처럼 수많은 데이터를 문자열로 표현이 가능하기에 어떤 언어..
자바[Java]
2019. 4. 4. 10:58
[Logback] 로그백(logback) 스프링(Spring)에서 사용 하는 방법
참고글[Logback] Logback이란? log4J의 후속작 로그백(Logback) 살펴보기 및 비교[Logback] 로그백(logback) 로그레벨(Log Level) 설정 및 알아보기스프링(Spring)에서 기본 로깅스프링에서는 따로 설정하지 않는한 기본적으로 Apache의 Jakarta Common Logging(JCL) 을 사용합니다.참고 경로 → commons.apache.org그러나 여기서 알아야 할 점 한가지가 있는데, JCL은 JDBC API와 같은 단순한 인터페이스 기능을 한다는 것입니다. 즉 JCL API를 구현하는 구현체 라이브러리가 있어야만 동작하는데, 대표적인 JCL 구현체로 log4j가 있습니다.즉 위와 같은 모습으로 스프링 내부적으로는 JCL API를 사용하지만 실제로 그 아..
자바[Java]
2019. 4. 3. 00:30
[Logback] 로그백(logback) 다운로드 및 사용해보기
이전글[Logback] Logback이란? log4J의 후속작 로그백(Logback) 살펴보기 및 비교Logback 라이브러리 추가하기Logback 설정에 앞서 다음의 라이브러리 파일들이 필요합니다. logback-classic과 logback-core가 필요하며 logback은 slf4j의 api를 구현하므로 slf4j-api도 필요합니다.logback-classic.x.x.x.jarlogback-core.x.x.x.jarslf4j-api-x.x.x.jar위의 라이브러리들을 내려받고 classpath 경로에 추가합니다. 불편하더라도 각각의 .jar파일들을 공식 홈페이지에서 내려받습니다.logback 관련 jar 다운로드 경로 - https://logback.qos.ch/download.htmlslf4j..
자바[Java]
2019. 4. 2. 16:54
[Logback] Logback이란? log4J의 후속작 로그백(Logback) 살펴보기 및 비교
다음글[Logback] 로그백(logback) 다운로드 및 사용해보기Logback이란?어떤 어플리케이션이든 실제로 사용자에게 판매 배포되는 경우 분석이 필요할 때가 있고 개발자는 로그(기록)을 분석합니다. 예를 들어 버그가 발생했든 단순히 모니터링이 되었든 어플리케이션에 어떤 일이 발생하고 있는지 혹은 과거에 어떤 일이 발생했었는지 등 여러 가지 경우가 있습니다.Logback은 Java에서 가장 많이 사용되었던 로깅 라이브러리인 log4j의 후속 버전입니다. Logback은 log4j를 설계한 Ceki Gülcü에 의해 설계되었습니다. 같은 개발자에 의해 개발되었다 보니 logback을 사용하다보면 log4j를 사용하는 듯한 익숙함을 느낄 수 있습니다. 어떻게 보면 logback은 더욱 좋아진 log4j..