본문 바로가기

Java/Java

Using IntelliJ File Template Using IntelliJ FileTemplate. 프로젝트를 진행하다 보면, 동일한 Template의 파일을 여럿 작성하게 된다.예를 들면, 아래와 같은 경우이다.공통 코드를 조회하는 RestController이다.CommonCodeRestController.javaimport org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController;import project.pilot.api.common.base.BaseController;@RestController public class CommonCodeRestController extends BaseRestC.. 더보기
ToStringStyle.MULTI_LINE_JSON_STYLE Apach CommonLang의 ToStringBuilder를 많이 사용한다. 그런데, 꼭 있을것만 같은 MULTI_LINE_JSON_STYLE이 존재하지 않는다. 그래서 Custom Style을 하나 만들어봤다. 내가 만들고 싶은 스타일은.. 기본적으로 JSON_STYLE 과 MULTI_LINE_STYLE을 합치면서, 또한 null 값은 포함하지 않도록 하고 싶었다. 그렇게 완성한 Custom Style은 아래와 같다. import org.apache.commons.lang3.SystemUtils; import org.apache.commons.lang3.builder.ToStringStyle; /** * @author Jason, Moon * @since 2018-03-15. */ public cla.. 더보기
IP 주소를 체크하는 정규 표현식. 문자열이 IP(0.0.0.0 ~ 255.255.255.255) 범위 안에 있는지 확인하기 위한 정규 표현식.. String ip1 = "127.0.0.1"; String ip2 = "255.255.255.255"; String ip3 = "255.255.255.256"; String ipRegex = "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])"; System.out.println(ip1.matches(ipRegex)); System.out.println(ip2.matches.. 더보기
Lombok - 롬복 자바를 바탕으로 한 프로젝트를 하다 보면, 수많은 Bean 클래스를 만들게 됩니다. 그리고 모든 Bean 클래스에 들어가는 똑같은 형식의 코드를 작성하게 됩니다. 예를 들자면, 대략 아래와 같은 경우입니다. public class Member { private Long memberId; private String memberName; private String memberAddress; public Member() { } public Member(Long memberId, String memberName, String memberAddress) { this.memberId = memberId; this.memberName = memberName; this.memberAddress = memberAddre.. 더보기
클래스의 정적 구성 요소 클래스의 기본적인 용도는 객체를 생성하는 것이고, 클래스에 선언된 필드와 메서드는 객체를 생성하고 나면 생성된 객체에 속하게 된다. 하지만, 때로는 클래스 자체에 속하는 구성요소를 선언해야 할 필요도 있다. 그런 구성요소를 정적(static) 구성요소라고 부른다. 정적 필드 일반적으로 필드는 객체의 고유한 데이터 값을 저장하기 위해 사용되지만, 경우에 따라서는 클래스 자체에 속하는 데이터를 저장할 변수도 필요하다. 그럴때는 클래스 안에 정적 필드(static field)를 선언하면 된다. 정적 필드란 필드의 선언문 앞에 static이라는 키워드를 붙여서 선언한 필드를 말한다. class Accumulator { int total = 0; static int grandTotal = 0; void accum.. 더보기
for 문을 이용하여 배열의 항목들을 순서대로 출력하는 프로그램 for문에서 반혹 회수를 카운트하는 변수는 배열의 인덱스로 사용하기에도 적합하기 때문에, for문은 배열 처리에도 많이 사용 됩니다. 다음은 for문으로 배열 항목을 처리하는 예를 보여주는 프로그램입니다. class ForExample1 { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10}; for (int cnt = 0; cnt < arr.length; cnt++) { System.out.println(arr[cnt]); } } } class ForExample2 { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10}; for (int.. 더보기
자바 배열의 선언, 생성, 이용 1차원 배열의 선언, 생성, 사용 class ArrayExample1 { public static void main(String[] args) { int arr[]; // 배열 변수 선언 arr = new int[10]; // 배열 생성 arr[0] = 10; // 값 대입 arr[1] = 20; // 값 대입 arr[2] = arr[0] + arr[1]; // 값 대입 System.out.println(arr[0]); // 배열 사용 System.out.println(arr[1]); // 배열 사용 System.out.println(arr[2]); // 배열 사용 } } 2차원 배열의 선언, 생성, 사용 class ArrayExample2 { public static void main(String[] .. 더보기
자바의 식별자 명명 규칙 자바 프로그램을 작성하다보면 클래스, 메서드, 변수 등 다양한 대상에 대해 이름을 붙여야 할일이 빈번히 있습니다. 이런 이름을 통틀어서 식별자(identifier)라고 하는데, 식별자를 만들 때는 다음과 같은 규칙을 반드시 지켜야 합니다. 하나 이상의 글자로 이루어져야 한다. 첫 번째 글자는 문자이거나 '$', '_'여야한다. 두 번째 이후의 글자는 숫자, 문자, '$', '_'여야한다. '$', '_' 외의 특수 문자는 사용할 수 없다. 길이의 제한은 없다. 키워드는 식별자로 사용할 수 없다. 상수 값을 표현하는 단어 true, false, null은 식별자로 사용할 수 없다. 여기서 달러 표시($)와 밑줄(_)은 다른 프로그래밍 언어와의 호환성을 위해서 포함된 것입니다. 그런 경우가 아니라면 달러 표.. 더보기
자바의 클래스와 메서드.. Hello, Java 프로그램 class HelloJava { public static void main(String[] args) { System.out.println("Hello Java!"); } } 클래스(class)는 자바 프로그램을 구성하는 구성 단위입니다. 자바 프로그램은 여러개의 클래스로 구성될수도 있고, 이렇게 하나의 클래스로만 구성될 수도 있습니다. 이런 형태가 자바 프로그램의 가장 단순한 형태입니다. 클래스에는 이름과 본체가 있는데 이 경우에는 1행의 HelloJava가 클래스 이름이고, 그 다음에 있는 중괄호 {부터 그와 짝을 이루는 5행의 중괄호}까지가 클래스 본체(class body)입니다. 클래스 본체 안에는 메서드를 써넣을 수 있습니다. 메서드(method)는 아주 간단히 말.. 더보기
SCJP 덤프 인터넷을 돌며 찾아낸 4가지의 SCJP 덤프!.. 더보기