리팩토링(Refactoring)
기존의 코드 기능은 유지하면서 내부 구조를 개선하여 가독성을 높이고, 유지보수를 용이하게 하는 과정
중복을 제거하고, 복잡성을 줄이며, 이해하기 쉬운 코드로 만들기 위해 수행된다. 리팩토링은 버그를 줄이고 프로그램의 성능을 향상시킬 수도 있으며, 코드의 설계를 개선하는 데에도 도움이 된다.
(이거 정처기에서 공부했었는데 ,,,!)
📋 배열 리팩토링 코드 예제
package array;
public class ArrayRef1 {
public static void main(String[] args) {
int[] students; // 1. 배열 변수 선언
students = new int[5]; // 2. 배열 생성
//변수 값 대입
students[0] = 90;
students[1] = 80;
students[2] = 70;
students[3] = 60;
students[4] = 50;
//변수 값 사용
System.out.println("학생1 점수: " + students[0]);
System.out.println("학생2 점수: " + students[1]);
System.out.println("학생3 점수: " + students[2]);
System.out.println("학생4 점수: " + students[3]);
System.out.println("학생5 점수: " + students[4]);
}
}
이런 코드가 있다고 해보자.
그럼 이 코드를 더 간략하게 반복문을 사용해보자 !
package array;
public class ArrayRef2 {
public static void main(String[] args) {
int[] students; // 1. 배열 변수 선언
students = new int[5]; // 2. 배열 생성
//변수 값 대입
students[0] = 90;
students[1] = 80;
students[2] = 70;
students[3] = 60;
students[4] = 50;
//변수 값 사용
for(int i=0; i<5; i++){
System.out.println("학생" + (i+1) + "점수: " + students[i]);
}
}
}
//변수 값 사용 부분에서 i < 5 는 students배열의 길이를 나타내는데 이 부분은 또
for(int i=0; i < students.length; i++){
System.out.println("학생" + (i+1) + "점수: " + students[i]);
}
이렇게 쓸 수 있다.
배열.length 를 사용하여 배열의 길이를 구할 수 있다.
이렇게 하면 처음 코드보다 훨씬 간결해졌다!
➕ .length
- 배열의 길이 제공
- 조회만 가능. 대입 불가
(배열의 경우 [n]처럼 수가 정해져 있으니 반복문 사용 시 for문을 사용하는 것이 적합)
변수 초기화
변수 선언 후 변수 값이 주어지는 경우 상단의 변수 선언 코드를 더 간단하게 만들 수 있다.
int[] students; // 배열 변수 선언
//배열 생성과 초기화
students = new int[]{90, 80, 70, 60, 50}; // 값이 주어지는 경우 []안의 수는 빼야함
이런식으로 []안에 있던 5를 빼고 {}안에 값을 넣어주는 방식이다.
{}안에 값을 선언해주는 경우에는 []안의 값을 빼주어야한다.
이 코드는 또 이렇게 위아래 줄을 합칠 수 있따.
int[] students = new int[]{90, 80, 70, 60, 50};
그리고 이 코드는 또
int[] students = {90, 80, 70, 60, 50};
이렇게 줄일 수 있다.
students = {90, 80, 70, 60, 50};
하지만 이렇게 쓰는건 배열이 int인지 뭔지 타입 인식을 못하니까 int[]는 생략하면 안됨.
int[] students;
students = {90, 80, 70, 60, 50};
그리고 이렇게 분리하는 것도 안됨 !

결과 코드는 같게 나오는 코드임에도 구조를 개선하여 가독성 좋게 만들었다.
이런 것을 배열 리펙토링이라고 한다.
'Coding > JAVA' 카테고리의 다른 글
| [JAVA] 향상된 for문(for-each문) (0) | 2024.06.23 |
|---|---|
| [JAVA] 배열 리팩토링 - 2차원 배열 (0) | 2024.06.23 |
| [JAVA]배열 특징/예제 (0) | 2024.06.22 |
| [JAVA]임시 변수 temp (0) | 2024.06.06 |
| [JAVA]Scanner로 간단한 프로그램 만들기 (0) | 2024.03.19 |