Programming Languages/Java

[JAVA] 절차지향 언어와 가장 큰 차이점

Hannana. 2024. 7. 29. 22:55
728x90
반응형

 

대표적인 절차지향 언어인 C언어.

자바 프로그램과 C언어의 가장 큰 차이점은 바로, <종속성>이다.

환경에 종속적인 C언어와 달리, 자바는 wirte once - run erveywhere의 특징을 가져

어떤 OS 환경에서도 실행될 수 있으며 플랫폼에 독립적일 수 있다. 

 

=> 이것은 C언어와 자바의 컴파일 방식의 차이가 있어 가능하다.

 

  • C언어의 경우 : A.c —(compile)—> A.obj
    (binary체계의 기계어: 리눅스 기반으로 환경에 종속적이다. 윈도우 실행X)

    반면 자바 컴파일은 run하는 환경 기계어 다 다르니, 어느 환경에서든 돌아갈 수 있는 .class를 만든다.
    기계에 독립적인 중간 코드를 만드는 과정인 것이다.

  • JAVA의 경우 : A.java —(compile)—> A.class
    (byte code체계의 기계어, bytecode→binary code로 변환 후 실행(실행속도는 더 오래걸림))

Q. 실행 속도 빠른 게 최고일까? => NO

절차지향은 개발 속도 빠르다.
그러나 결합도 너무 높다.

💡객체지향은 느리고 메모리 많이 사용하지만
클래스의 결합도가 떨어진다.
유지보수성 높이려면 객체지향으로 해야한다.

 

게다가 요즘에 cpu가 빨라져서 이런 걱정도 미미하다.. 장점이 훨씬 크다는 거.

 

 

■ 코드의 결합도가 떨어지면...

유지보수가 하기 쉬워진다.

재사용성도 높아진다.

 

클래스의 인스턴스화가 이 재사용성을 높이는 대표적인 예이다.

"하나의 잘 만든 클래스보다 여러 개의 인스턴스가 더 낫다."

 

 

그러니 구체화보단 추상화에 신경쓰고

오버라이딩과 오버로딩에 신경쓰자...

 

 

 

 

 

 

 

 

 

반응형