본문 바로가기

전체 글에 해당하는 글들

201 Articles matched
목록이 없습니다.
[JAVA] 스트림(Stream) 1. 스트림(Stream)? 많은 수의 데이터를 다룰 때 for문이나 Iterator를 사용하여 코드를 작성해왔다. 또한 데이터의 형태마다 다른 방식으로 다뤄야 했다. 예를들어, 데이터의 정렬을 예로 들자면 컬렉션 클래스 중 List를 정렬할 때에는 Collections.sort()를, 배열을 정렬할 때는 Arrays.sort()를 사용해야했다. 같은 기능이고 같은 메서드임에도 다르게 호출을 해야만 했다. 이러한 문제점들을 해결하기 위해 만든 것이 바로 자바 8부터 등장한 스트림(Stream)이다. 어떤 데이터이든 같은 방식으로 다룰 수 있게 만든것이다. 스트림을 이용하면, 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있기 때문에 코드의 재사용성이 높아진다. 예제를 보면..
[JAVA] 컬렉션 클래스 (Map) 컬렉션 클래스 HashMap HashMap과 Hashtable의 관계는 ArrayList와 Vector의 관계와 같아서 Hashtable보다는 새로운 버전인 HashMap을 사용하는 것을 권장한다. 둘다 Map인터페이스를 상속받아 구현되어 데이터를 키와 값으로 관리하는 자료구조이다. 큰 특징으로는 키(Key)가 데이터를 추출할 때 구분자로 활용하는 방식을 취하는데 이는 리스트 인터페이스와 같은 자료구조보다 탐색에 있어서 더 높은 효율을 기대할 수 있다. 책에는 HashMap에 대해서만 설명이 되어 있는데 둘의 차이점을 간단히 살펴보고 넘어가자, HashMap과 Hashtable의 차이 둘의 차이점으로 동기화를 들 수 있다. HashMap의 경우 동기화를 지원하지 않는다. 반면 다중 쓰레드 환경에서 Has..
[jQuery] ajax beforeSend에서 중단 시키는 방법 (stop $.ajax on beforeSend) jQuery(제이쿼리) $.ajax 함수에서 beforeSend 시점에 중단하는 방법 jQuery(제이쿼리)에서 $.ajax 쓰다보면 beforeSend 시점에서 함수를 중단하고 싶은 경우가 생긴다. ( 예를 들어 beforeSend에서 검증을 한다든지 설정 시 비어있는 값이 있는경우에는 alert를 띄우고 중단시키고 싶은,, ) 이 때 beforeSend에서 return false를 하면 beforeSend함수 자체는 중단이 되고 그 안에서 해당 라인 다음 로직은 수행되지 않겠지만 정작 ajax로 해당 url의 컨트롤러, 서블릿의 반환이 성공적으로 이루어졌을 때 수행되는 success 영역을 막진 못할것이다. 이런 상황에서 success로 넘어가지 않고 beforeSend에서 중단하고 싶은 경우 다음과..
[JAVA] 람다식 (Lambda Expression) 자바가 1996년에 처음 등장한 이후로 두 번의 큰 변화가 있었는데, 한번은 JDK 1.5부터 추가된 지네릭스(generics)의 등장이고, 또 한 번은 JDK 1.8부터 추가된 람다식(lambda expression)의 등장이다. 이 두 가지 새로운 변화에 의해 자바는 더 이상 예전의 자바가 아니게 되었다. 특히 JDK 1.8부터 등장한 람다식으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식이란? 간단히 말해서 메서드를 하나의 식(expression)으로 표현한 것이다. 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 이전에 내부 클래스를 정리하면서 익명 함수(anonymous function) 언급할 때 같이 가볍게 살펴봤듯이 람다식도 익명함수이다. 메서드를 람다식으로 ..
[MySQL] EXPLAIN 사용하여 쿼리 최적화 EXPLAIN 명령문은 MySQL이 SELECT 명령문을 수행하는 방법에 대해 정보를 얻기 위한 수단이다. EXPLAIN 테이블명 은 DESCRIBE 테이블명 또는 SHOW COLUMS FROM 테이블명 과 같은 의미이다. EXPLAIN은 SELECT 명령문에서 사용된 각 테이블 정보를 리턴하는데 MySQL이 쿼리를 처리하는 동안 읽을 수 있도록 결과물 안에 테이블들이 목록으로 정리 된다. EXTENDED 키워드가 사용되면, EXPLAIN은 EXPLAIN 명령문 다음에 SHOW WARNINGS 명령문을 입력해서 볼 수 있는 기타 정보를 리턴한다. 이 정보는 옵티마이저가 SELECT 명령문에 있는 컬럼 이름과 테이블을 얼마나 많이 검증을 하였는지를 보여주며, SELECT는 최적화 과정에 관한 어플리케이션 ..
[JAVA] 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크(Collection Framework)자바에서 컬레션 프레임워크이란, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 다시 말해 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. JDK 1.2 이전까지는 Vector, Hashtable, Properties와 같은 컬렉션 클래스들을 서로 각자 다른 방식으로 처리해야 했으나 JDK 1.2부터 컬렉션 프레임웍이 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다. 이러한 컬렉션 프레임워크은 자바의 인터페이스(interface)를 사용하여 구현된다. 컬렉션 프레임워크의 핵심 인..
[JAVA] 내부클래스 내부 클래스의 종류 내부 클래스는 클래스 안에 다른 클래스를 선언하고 활용하는 것인데 이는 멤버변수와 같이 선언되는 위치에 따라서 종류가 나뉜다. 사용되는것도 멤버변수와 비슷하다. (JDK 1.1 이후에 추가된 기능)내부클래스는 주로 AWT나 Swing과 같은 GUI어플리케이션의 이벤트처리 외에는 잘 사용하지 않을 정도로 사용빈도가 높지 않기 때문에 내부 클래스의 기본 원리와 특징을 이해하는 정도까지만 학습해도 충분하다. 내부 클래스의 종류는 다음과 같다1. 멤버 내부 클래스- 멤버 변수 선언하는 위치에 정의하는 내부 클래스- 외부 클래스의 인스턴스가 생성되어야만 객체 생성 가능- 주로 인스턴스 멤버들과 관련된 작업에 사용될 목적으로 선언2. static 내부 클래스 (중첩클래스)- 멤버 변수를 선언하는..
[JAVA] 다형성 다형성이란? 자바에서 다형성은 객체지향 개념의 중요한 특징 중 하나다. 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 말한다. 가장 쉬운 다형성의 예제로는 지난 시간 정리했던 오버로딩이 있다. 또한 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 쉽게 말해서 부모 클래스 타입의 참조변수로 자식 클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 12345678910111213class Tv { boolean power; // 전원 상태 (on/off) int channel; // 채널 void power() { power = !power } void channelUp() { ++channel; } void channelDown(..