1. 배열과 리스트의 관계 배열은 인덱스를 통해 데이터를 순차적으로 저장할 수 있다. 그리고 JVM은 배열이 생성될 때, 크기를 반드시 알아야만 하기 때문에 초기 생성 시, 반드시 크기를설정해주어야 한다. ArrayList는 특정 타입의 값들을 인덱스를 통해 순차적으로 저장되있는 컬렉션이다. ArrayList는 크기 지정에 한계가 없으므로, ArrayList를 사용하기 전에 크기를 반드시 지정할 필요가 없다. ArrayList의 기본 크기는 10이고, ArrayList 크기의 50% 씩 증가한다. (10, 15, 22 ...) 그렇다면 ArrayList는 어떻게 동적으로 계속해서 크기를 늘릴 수 있을까?! 기존에 ArrayList에 저장된 데이터를 복제할 때, 크기를 50% 증가시킨 ArrayList의 ..
1. 절차지향 프로그래밍 vs 객체지향 프로그래밍 절차지향 프로그래밍은 순차적인 처리가 중요하며, 프로그램 전체가 유기적으로 연결되도록 구현하는 프로그래밍 기법이다.컴퓨터가 작업을 처리하는 방식과 비슷하기 때문에 객체지향 언어로 구현된 프로그램보다 처리속도가 빠르다는 장점을 가지고 있습니다.하지만, 절차지향 프로그래밍에서는 순서가 중요하기 때문에 변경 및 수정에는 많은 어려움이 있습니다. 반면 객체지향 프로그래밍은 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들이 서로 메세지를 전달받으며 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 각각의 모듈들이 분할되었기 때문에 유지보수 및 코드의 재사용성 가능하다. 캡슐화, 상속, 추상화, 다형성(캡! 상추다)..