관리시스템에서 가장 중요한 것은 추상적인 것들을 등록, 조회, 삭제하는 것이다. 이것을 CRUD라고 부른다. 게시판 관리의 핵심!
CLI(command Line Interface) : 콘솔창으로 커멘드를 직접 입력하는 것.
프로그램을 개발할 때 처음부터 무작정 완성하려고 하는 것 보다, 할 수 있는 것부터 차근차근 해 나간 다음 막힌다면 답안을 보고 이해를 한 뒤 재작성 해보는 것이 좋다.
class.newInstance는 기본적으로, 해당 클래스의 디폴트 생성자를 호출하게 됩니다..
object 타입으로 반환을 해주고요.. newInstance의 파라메터로 object의 배열을 넘겨줄 수도 있습니다.
이러한 형식의 장점은.. 런타임에서 Class Type을 인자로 받아서,
어떤 객체든 생성할 수 있다는 것이 장점이겠네요.. 유연한 프로그래밍이 가능하다는 것인데요..
// ArrayList vs LinkedList // 1) 메모리 // ArrayList // => 고정 크기를 갖는다. // => 크기를 초과하면 새로 배열을 만들어야 하기 때문에 메모리 낭비가 심하다. // => 기존 배열은 가비지가 되기 때문에 가비지가 과다 생산된다. // LinkedList // => 값을 넣을 때마다 새 메모리가 추가되는 가변 크기를 가진다. // => ArrayList 보다 메모리 낭비가 적고 가비지를 덜 생산한다. // 2) 속도 // ArrayList // => 배열의 특징 상 인덱스를 이용하여 특정 항목을 찾을 때 속도 빠르다. // => 삭제할 때 이전 항목을 당겨와야 하기 때문에 속도가 느리다. // => 삽입할 때 현재 항목을 다음 항목으로 이동해야 하기 때문에 속도가 느리다. // LinkedList // => 인덱스를 이용하여 특정 항목을 찾을 때 리스트의 처음부터 찾아야 하기 때문에 속도가 느리다. // => 삭제할 때 이전 항목과 다음 항목을 바로 연결하면 되기 때문에 속도가 빠르다. // => 삽입할 때 현재항목과 다음 항목을 새 항목과 연결하면 되기 때문에 속도가 빠르다.