개발자에게 있어서 절차적 사고란

2023. 9. 26. 15:52·Daily/memoir

 

절차적인 사고는 개발자에게 있어서 필수적인 능력 중 하나이다.

대부분의 프로젝트에서는 다양한 구성 요소와 기능 및 복잡한 로직이 포함된다.

이러한 복잡성은 체계적인 접근 방법을 필요로 한다.

 

복잡한 문제를 작은 원자로 나누고, 각 단계를 이해하고 해결하는 방법을 인도해준다.

 

절차적인 사고를 가진 개발자와 그렇지 못한 개발자는 코드를 구조화하는 단계에서 부터 차이가

난다.

 

절차적인 사고를 가진 개발자는 버그를 찾고 수정하는 과정에 효율적으로 눈에 띄인다.

 

 

우리는 간단한 정렬을 한 코드로 예시로 보겠다

 

절차적인 사고를 가지지 않은 개발자 코드
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
'Daily/memoir' 카테고리의 다른 글
  • 낙관주의 vs 낙천주의
  • 백엔드 개발자가 되기 위한 나의 공부 계획
  • Front-end VS Back-end Developer (고민 그만하고 읽어봐)
JAVALA
JAVALA
워니‘s Diary
  • JAVALA
    정신줄 JAVA라
    JAVALA
  • 전체
    오늘
    어제
    • 분류 전체보기 (87)
      • Codding_Test (11)
        • BaekJoon (7)
        • Programmers (3)
      • Algorithm (11)
      • Daily (4)
        • memoir (4)
      • TroubleShooting (8)
        • InteliJ (1)
        • Server (1)
        • Infra (0)
        • DB (0)
      • Computer Science (1)
      • JAVA (8)
      • Javascript (0)
      • Spring Boot (7)
      • API (2)
      • Server (0)
      • DB (3)
        • ORACLE (1)
      • Infra (2)
      • Refactoring (1)
      • Plugin (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프론트엔드 개발자
    springboot
    프로그래머스
    자바 스프링부트
    백준
    개발자 국비
    스프링부트
    자바 메소드
    백엔드 개발자
    트리 자료구조
    자바 클래스
    spring boot
    자바 스프링
    자바
    개발자 부트캠프
    개발자
    자바 알고리즘
    개발자 비전공자
    코딩테스트
    제로베이스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JAVALA
개발자에게 있어서 절차적 사고란
상단으로

티스토리툴바