Programming Language
-
[Java] 리팩토링 할 때 고려할 사항들Programming Language/Java & Kotlin 2021. 5. 30. 03:23
리팩토링이란? 리팩토링이란 유지보수 생산성 향상을 위해 기능을 변경하지 않고 소스코드를 수정, 보완하는 소프틍웨어 품질 향상 기법이다. 리팩토링의 목적 리팩토링의 목적은 유지보수성 향상, 유연한 시스템, 생산성 향상, 소프트웨어 품질 향상 등이 있다. 리팩토링할 때 고려할 사항들 메소드가 너무 길지 않은가? 코드를 읽기 쉬운가? 내가 작성한 코드를 내가 읽기 어렵다면 남들에겐 훨씬 어렵다. 코드가 적절한 위치에 있는가? 객체들 사이의 의존 관계 책임이 너무 많지는 않은지?
-
[Java] 람다식Programming Language/Java & Kotlin 2019. 6. 13. 01:05
람다식 (Lambda expression) JDK 1.8 부터 추가 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식 덕분에 함수형 언어의 장점들을 자바에서도 누릴 수 있게되었다. 람다식이란? 람다식은 메서드를 하나의 식(expression)으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 익명 함수(anonymous function)이라고도 한다. 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 이 메서드를 호출할 수 있다. 그러나 람다식은 이 모든 과정없이 오직 람다식 자체만으로도 이 메서드의 역할을 대신할 수 있다. 람다식은 메서드의 매개변수로 전달되어지는 것이 가능하고, ..
-
[Java] Enum 클래스Programming Language/Java & Kotlin 2019. 4. 18. 15:51
열거체(enumeration type) JDK 1.5부터는 C언어의 열거체보다 더욱 향상된 성능의 열거체를 정의한 Enum 클래스를 사용할 수 있음 열거체의 장점 열거체를 비교할 때 실제 값 뿐만 아니라 타입까지도 체크함 열거체의 상수값이 재정의 되더라도 다시 컴파일할 필요가 없음 열거체의 정의 및 사용 자바에서는 enum 키워드를 사용하여 열거체를 정의할 수 있음 enum 열거체이름 { 상수1이름, 상수2이름, ... } enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } 이렇게 정의된 열거체는 다음처럼 사용함 열거체이름.상수이름 Rainbow.RED 열거체의 상수값 정의 및 추가 열거체의 첫번째 상수값은 0부터 설정되며, 그다음은 바로..
-
[Java] 스트림 APIProgramming Language/Java & Kotlin 2019. 4. 16. 16:50
스트림 API Java SE 8부터 추가된 스트림 API는 입력과 출력의 스트림과는 전혀 다른 개념 자바에서는 많은 양의 데이터를 저장하기 위해서 배열이나 컬렉션을 사용함 이렇게 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하여 매번 새로운 코드를 작성 데이터베이스의 쿼리와 같이 정형화된 처리 패턴을 가지지 못했기에 데이터마다 다른 방법으로 접근해야만 했음 이러한 문제점을 극복하기 위해서 Java SE 8부터 스트림(stream) API를 도입함 스트림 API는 데이터를 추상화하여 다루므로, 다양한 방식으로 저장된 데이터를 읽고 쓰기 위한 공통된 방법을 제공 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방법으로 다룰 수 있음 스트림 API의 특징 스트림은 외..
-
[Java] StringBufferProgramming Language/Java & Kotlin 2018. 12. 1. 22:17
[Java] StringBuffer - StringBuffer 자료형은 문자열을 추가하거나, 변경할 때 주로 사용하는 자료형이다.- StringBuffer는 아래와 같이 사용한다. | StringBuffer 를 사용하였을 때(StringBufferTest.java) | append- StringBuffer 자료형은 append 라는 메소드를 이용하여 계속해서 문자열을 추가해나갈 수 있다.- toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다. | String 을 사용하였을 때(StringTest.java)- 두 개의 코드(code) 모두 출력은 동일하지만, 내부적으로 객체가 생성되고 메모리가 사용되는 과정은 다르다.- StringBuffer의 경우 객체는 단 한번만 생성된다.- ..
-
[Java] Java 배열 정렬Programming Language/Java & Kotlin 2018. 11. 27. 03:36
Java 배열 정렬 ※ Java 배열 정렬하기 (오름차순 vs 내림차순) - Arrays.sort() 함수를 이용하여 배열을 정렬할 수 있다. ※ 배열의 원소들을 오름차순으로 정렬하기 - primitive date type 배열을 Arrays.sort() 함수에 입력하면 배열을 정렬할 수 있다. - 올림차순으로 정렬했으므로, 배열은 아래와 같이 변경된다. - array = {1, 3, 19, 53, 61} - 위 코드를 실행하면 아래와 같은 결과 값이 콘솔창에 출력된다. ※ 배열의 원소들을 내림차순으로 정렬하기 - primitive data type 이 아니라 객체의 배열을 이용하여 변경함 - Collections class 의 reverseOrder() 함수를 이용함 - array2 = {61, 53,..
-
[Lombok] STS에 lombok 적용하기Programming Language/Spring 2018. 11. 19. 13:54
[Lombok] STS에 lombok 적용하기 ※ lombok 자바 개발자들에게 Getter/Setter 메소드를 생성하거나 toString() 혹은 생성자 함수를 생성하는 등의 작업은 번거롭고 귀찮은 작업이다. 다만, 이러한 작업이 너무나 반복적으로 필요하기 때문에 개발의 생산성을 높이고 싶다면 Lombok 을 이용해 단순 반복 작업을 자동화함으로써 개발 시간을 단축할 수 있다. | Lombok 이란 Lombok은 자바에서 @Getter, @Setter 같은 annotation 기반으로 기존 DTO, VO, Domain Class 등을 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등..