
절차적인 사고는 개발자에게 있어서 필수적인 능력 중 하나이다.
대부분의 프로젝트에서는 다양한 구성 요소와 기능 및 복잡한 로직이 포함된다.
이러한 복잡성은 체계적인 접근 방법을 필요로 한다.
복잡한 문제를 작은 원자로 나누고, 각 단계를 이해하고 해결하는 방법을 인도해준다.
절차적인 사고를 가진 개발자와 그렇지 못한 개발자는 코드를 구조화하는 단계에서 부터 차이가
난다.
절차적인 사고를 가진 개발자는 버그를 찾고 수정하는 과정에 효율적으로 눈에 띄인다.
우리는 간단한 정렬을 한 코드로 예시로 보겠다
절차적인 사고를 가지지 않은 개발자 코드
public class NonProceduralSort {
public static void main(String[] args) {
int[] numbers = {4, 2, 9, 1, 5};
// 정렬 메서드 호출
sortArray(numbers);
// 정렬된 배열 출력
for (int number : numbers) {
System.out.print(number + " ");
}
}
// 배열을 정렬하는 메서드
public static void sortArray(int[] arr) {
// Arrays 클래스의 정렬 메서드를 사용하여 정렬
Arrays.sort(arr);
}
}
절차적인 사고를 가진 개발자 코드
public class ProceduralSort {
public static void main(String[] args) {
int[] numbers = {4, 2, 9, 1, 5};
// 버블 정렬 알고리즘을 사용하여 배열을 정렬
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = 0; j < numbers.length - 1 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
// 두 숫자를 교체
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
// 정렬된 배열 출력
for (int number : numbers) {
System.out.print(number + " ");
}
}
}
두 개발자의 코드를 비교해보면 절차적인 사고를 지니지 않은 개발자의 코드가 더욱더 간결하고
가독성이 있어 보이지만, 사실은 그렇지 않다.
두번 째 개발자의 코드를 보면 각 단계를 명확하게 구성하고 있고,
문제 해결 과정을 체계적으로 따르고 있다.
'Daily > memoir' 카테고리의 다른 글
| 낙관주의 vs 낙천주의 (3) | 2023.03.31 |
|---|---|
| 백엔드 개발자가 되기 위한 나의 공부 계획 (0) | 2023.03.31 |
| Front-end VS Back-end Developer (고민 그만하고 읽어봐) (1) | 2023.03.15 |