반응형

Java 87

15.2.1 ArrayList

ArrayList는 List 인터페이스의 구현 클래스로 ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다. 일반 배열과 ArrayList는 인덱스로 객체를 관리한다는 점에서는 유사하지만, 큰 차이점을 가지고 있다. 배열은 생성할 때 크기가 고정되고 사용 중에 크기를 변경할 수 없지만 ArrayList는 저장 용량(capacity)을 초과한 객체들이 들어오면 자동으로 저장 용량(capacity)이 늘어난다는 것이다. 다음은 ArrayList 객체의 내부 구조를 보여준다. ArrayList를 생성하기 위해서는 저장할 객체 타입을 타입 파라미터로 표기하고 기본 생성자를 호출하면 된다. 예를 들어 String을 저장하는 ArrayList는 다음과 같이 생성할 수 있다. List list = new A..

15.2 List 컬렉션

List 컬렉션은 객체를 일렬로 늘어놓은 구조를 가지고 있다. 객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공한다. List 컬렉션은 객체 자체를 저장하는 것이 아니라 다음의 그림과 같이 객체의 번지를 참조한다. List 컬렉션에는 ArrayList, Vector, LinkedList 등이 있는데, 다음은 List 컬렉션에서 공통적으로 사용 가능한 List 인터페이스의 메소드들이다. 인덱스로 객체를 관리하기 때문에 인덱스를 매개값으로 갖는 메소드가 많다. 기능 메소드 설명 객체추가 boolean add(E e) 주어진 객체를 맨 끝에 추가 void add(int index, E element) 주어진 인덱스에 객체를 ㅜㅊ가 E s..

15.1 컬렉션 프레임워크 소개

15.1 컬렉션 프레임워크 소개 애플리케이션을 개발하다보면 다수의 객체를 저장해 두고 필요할 때마다 꺼내서 사용하는 경우가 많다. 만약 10개의 Product 객체를 저장해두고, 필요할 때마다 하나씩 꺼내서 이용한다고 가정해보자, 어떻게 Product 객체를 효율적으로 추가, 검색, 삭제할 지 고민해야 되는데, 가장 간단한 방법은 배열을 이용하는 것이다. 배열은 쉽게 생성하고 사용할 수 있지만, 저장할 수 있는 객체 수가 배열을 생성할 때 결정되기 때문에 불특정 다수의 객체를 저장하기에는 문제가 있다. 그리고 객체를 삭제했을 때 해당 인덱스가 비게 되어 낱알이 듬성듬성 빠진 옥수수가 될 수 있다. 그렇기 때문에 새로운 객체를 저장하려면 어디가 비어 있는지 확인하는 코드도 필요하다. 자바의 이러한 문제점을..

[아키텍처 패턴] MVC 패턴이란?

MVC (Model-View-Controller) Pattern 은 자주 사용되는 디자인 패턴이다., one of the most frequently used design patterns 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 구성요소 모델-뷰-컨트롤러는 응용 프로그램을 세 가지의 구성요소로 나눈다. 각각의 구성요소들 사이에는 다음과 같은 ..

Java 2020.12.02

EL(Expression language)란?

EL(Expression language)란? EL은 Expression language의 약자로 JSP 2.0 스펙에 추가된 개념이다. 원래는 JSTL 1.0 규약에 소개된 내용으로 자바 코들르 대신해 실행시간에 태그의 속성 값을 지정하는 역활을 했었습니다. 초기의 EL은 JSTL의 액션 태그에서만 작동하는 문제가 있었는데, JSP 2.0 부터는 JSP 컨테이너가 EL 표현식을 해석할 수 있게 도어 표준 액션 태그, 커스텀 태그, 템플릿 데이터와 같이 자바코드를 사용해야 했던 모든 곳에 EL을 사용할 수 있습니다. EL은 자바스크립트에서 확장된 Xpath에서 힌트를 얻어 만들어진 언어입니다. 그러나 EL은 값이 없는 변수(null)에 대해 좀 더 관대하고 데이터 형 변환을 자동으로 해줍니다. 이러한 특..

Java 2020.12.02

JSTL <c:forEach> 사용법

JSTL의 반복문인 foreach에 대해 사용법 foreach는 우선 일반적 프로그래밍언어에서 사용하는 for문과 동일하다. 반복문으로 사용이되고 주로 목록을 반복해서 출력할경우 사용한다. 사용법 위와 같은 샘플 코드를 기준으로 forEach 문법의 속성을 설명을 드리겠습니다. *var *items varStatus begin end step 사용할 변수 Collection객체(List, ArrayList) 반복 index 변수 시작 index 종료 index 반복시 이동 index #1 : var, items (필수) 우선 필수 속성 값으로는 var, items 입니다. 그외 속성은 무시 하셔도 forEach문은 정상 동작을 합니다. var의 경우는 items에 담겨있는 List 객체를 변수를 통하여 ..

Java 2020.12.01

DAO vs DTO(=VO) 개념 알아보기

DAO 정의 Data Access Object의 약자로 간단히 Database의 data에 접근을 위한 객체입니다. Database에 접근을 하기위한 로직과 비즈니스 로직을 분리하기 위해서 사용을 합니다. DAO 설명 웹서버는 DB와 연결하기 위해서 매번 Connection(커넥션) 객체를 생성하는데, 이것을 해결하기 위해 나온것이 컨넥션 풀입니다. ConnectionPool 이란 connection 객체를 미리 만들어 놓고 그것을 가져다 쓰는것입니다. 또 다쓰고 난 후에는 반환해 놓는 것. 하지만 유저 한명이 접속해서 한번에 하나의 커넥션만 일으키지 않고 게시판 하나만 봐도 목록볼때 한번, 글읽을때마다 한번, 글쓸때 한번 등등… 엄청나게 많은 커넥션이 일어나기에, 커넥션풀은 커넥션을 또 만드는 오버헤드..

Java 2020.12.01
반응형