2주차 wls
2주차는 java 언어에 대해 익숙해지기 위해 알고리즘 과 객체지향 프로그램에 대해 공부하는 주였음.
객체 지향 프로그램이란?
객체지향이라는 개념이전에 절차지향이라는 개념이 먼저 존재했다고 합니다. 말그대로 절차적으로 순서에 맞게 프로그래밍을 하는 방식입니다. 실제 컴퓨터의 작업 처리 방식과 유사하여 처리 속도가 매우 빠른것이 가장 큰 장점으로 꼽힙니다.하지만 유지보수가 어렵고 실행순서가 정해져 있어 자유도가 떨어지며 디버깅이 어렵다는 치명적인 단점들이 존재하여 사람들은 점점 다른 방법을 찾게 됩니다. 그래서 발견한 생겨난 것이 객체지향 개념입니다.절차지향은란 데이터와 절차를 하나의 덩어리로 묶어서 생각하게 됩니다. 마치 컴퓨터 부품을 하나씩 사다가 컴퓨터를 조립하는것과 비슷하다고 생각할수 있습니다. 어떤 절차에 구속되어 있는것이 아니기에 자유도가 높다는것이 가장 큰 장점이라 생각합니다. 하지만 아무래도 어떤기능을 사용하기 위해서는 그 특정 기능만을 가져오는것이 아닌 같이 속해있는 기능들을 함께 가져와야 사용가능하기에 처리속도와 복잡도 면에서는 절차지향에 비해 다소 떨어지는 경향이 있습니다. 프로그램을 만들기전에 요구사항에 대해 완벽히 숙지후 접근하여 알맞은 방식을 찾는것이 가장 중요하다고 생각할 수 있습니다.
JVM이란?
java virtual machine의 약어로 자바를 실행하기 위한 가상 기계라 보면 된다. 일반 어플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데, java 애플리케이션은 JVM을 한 번 더 거칠뿐 아니라 하드웨어에 맞게 완전히 컴파일 된 상태가 아니라 실행 시에 해석된다.