본문 바로가기

분류 전체보기

(124)
[디자인패턴] Observer Pattern 1. 기상 모니터링 애플리케이션 개요 기상 모니터링 애플리케이션은 다음의 세 가지 요소로 이루어져 있고, 디스플레이 장비는 현재 기상 정보, 기상 통계, 기상 예보 항목을 표시한다. 기상 스테이션(실제 기상 정보를 수집하는 장비) WeatherData 객체(기상 스테이션으로부터 오는 데이터를 추적하는 객체) 사용자에게 현재 기상 정보를 보여주는 디스플레이 장비 WeatherData 객체는 온도, 습도, 기압을 반환하는 메소드와 기상 관측값이 갱신될 때마다 알려주기 위한 메소드로 구성되어 있다. measurementsChanged()를 현재 기상 정보, 기상 통계, 기상 예보의 3가지 디스플레이를 갱신할 수 있도록 구현해야 한다. 2. 기상 모니터링 임시 구현 public class WeatherData ..
[디자인패턴] Strategy Pattern 1. 아래와 같은 Duck 클래스가 있을 때, 날아다니는 행동을 추가하려면 어떻게 해야할까? public abstract class Duck { public Duck() {} public abstract void display();// 모든 오리들의 모양이 다르기 때문에 추상 메소드로 선언 public void quack() {// 모든 오리들은 꽥꽥소리를 낼 수 있음 System.out.println("quack quack"); } public void swim() {// 모든 오리들은 헤엄을 칠 수 있음 System.out.println("swimming"); } } ☞ Duck 클래스에 fly() 메서드를 추가하게 되면, 일부 서브클래스에는 부적합한 행동임에도 모든 서브클래스가 상속받게 된다. 2...
[JavaScript] JavaScript 소개 1. HTML문서 내 2. 자바스크립트 콘솔 파이어폭스 콘솔 단축키 window : ctrl-shift-k / mac : ctrl-option-k 콘솔을 통해 프로그램의 출력결과를 볼 수 있고, 간단한 테스트를 하거나 프로그램을 임시로 수정하는 일이 가능하다. console.log('main.js loaded'); 3. jQuery 불러오기 URL을 통해 클라이언트 스크립트 라이브러리인 제이쿼리를 페이지에 불러온다. 4. $(document).ready(function() {}); 사용하기 브라우저 기반 자바스크립트를 만들 때에는 반드시 브라우저가 HTML을 전부 불러왔는지를 확인하는 것이 좋다. use strict는 자바스크립트 인터프리터에서 코드를 더 엄격하게 처리하라는 의미이다. $(document..
[DataBase] 오라클 내장함수(2) - 숫자형/날짜형 함수 # 숫자형 함수 함수 설명 ABS(숫자) 숫자의 절대값 반환. EX) ABS(-15) => 15 SIGN(숫자) 숫자가 양수인지, 음수인지, 0인지에 따라 각각 1, -1, 0을 반환. EX) SIGN(-20) => -1 / SIGN(0) => 0 / SIGN(+20) = 1 MOD(숫자1, 숫자2) 숫자1을 숫자2로 나누어 나머지 값을 반환 (%연산자로 대체 가능). EX) MOD(7, 3) => 1 (7%3으로도 사용 가능.) CEIL(숫자) 숫자보다 크거나 같은 최소 정수 반환. EX) CEIL(38.123) => 39 / CEIL(-38.123) = -38 FLOOR(숫자) 숫자보다 작거나 같은 최대 정수 반환. EX) FLOOR(38.123) => 38 / FLOOR(-38.123) = -39 ..
[DataBase] 오라클 내장함수(1) - 문자형 함수 # 단일행 함수 - SELECT, WHERE, ORDER BY절에 사용 가능하다. - 각 행들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한다. - 여러 인자를 입력해도 단 하나의 결과만 리턴한다. - 함수의 인자로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수 또는 여러 개의 인수를 가질 수 있다. - 특별한 경우가 아니면 함수의 인자로 함수를 사용하는 함수의 중첩이 가능하다. 종류 함수 문자형 LOWER, UPPER, SUBSTR, LENGTH, LTRIM, RTRIM, TRIM, ASCII 숫자형 ABS, MOD, ROUND, TRUNC, SIGN, CHR, CEIL, FLOOR, EXP, LOG, LN, POWER, SIN, COS, TAN 날짜형 ..
[DataBase] ORDER BY ORDER BY - SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 컬럼을 기준으로 정렬하여 출력하는 데에 사용한다. - 컬럼명, SELECT 절에서 사용한 ALIAS 명, 컬럼 순서를 나타내는 정수로 순서를 지정한다. - ASC 오름차순(DEFAULT, 생략가능), DESC 내림차순 - ORACLE의 경우 NULL 값을 가장 큰 값으로 취급하여 내림차순 정렬 시 NULL이 가장 먼저 조회된다. - 날짜형 데이터 타입의 경우 오름차순 정렬 시, 가장 빠른 값이 먼저 출력된다. (2019.01.01이 2019.12.30보다 먼저) 1 2 3 4 5 6 SELECT 컬럼명 [ALIAS명] FROM 테이블명 [WHERE 조건식] [GROUP BY 컬럼이나 표현식] [HAVING 그룹조건식] [ORD..
[Java] 컬렉션 프레임워크 컬렉션 프레임워크데이터 군을 저장하는 클래스들을 표준화한 설계컬렉션 프레임워크에는 List, Set, Map 인터페이스가 존재한다.이중 List와 Set의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. 인터페이스 특징 List 순서가 있는 데이터의 집합. 데이터의 중복 허용. 구현 클래스 : ArrayList, LinkedList, Stack, Vector Set 순서가 없는 데이터의 집합. 데이터의 중복 허용하지 않음. 구현 클래스 : HashSet, TreeSet Map Key와 Value의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용함. 구현 클래스 : HashMap, TreeMap, Hashtable, ..
[Java] 예외처리 에러의 종류컴파일 에러 - 컴파일 시에 발생하는 에러런타임 에러 - 실행 시에 발생하는 에러논리적 에러 - 실행은 되지만, 의도와 다르게 동작하는 것 에러 vs 예외자바에서는 실행 시 발생할 수 있는 프로그램 오류를 에러와 예외로 구분하였다. 에러는 스택오버플로우(StackOverflowError), 메모리 부족(OutOfMemoryError)과 같이 일단 발생하면 복구할 수 없다.에러가 발생하면, 프로그램의 비정상적인 종료를 막을 길이 없지만, 예외는 발생하더라도 프로그래머가 이에 대한 적절한 코드를 미리 작성해 놓음으로써 프로그램의 비정상적인 종료를 막을 수 있다.에러 - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외 클래스의 계..
[Java] 추상클래스와 인터페이스 추상클래스미완성 클래스로 추상메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 전혀 다르지 않다.생성자, 멤버변수, 메서드를 가진다.인스턴스를 생성할 수 없고, 자손클래스에 의해 완성될 수 있다.새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서 중요한 의미를 가진다.키워드 'abstract'를 붙이면 추상클래스로 표현된다. 추상메서드선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것.즉, 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메서드.abstract 리턴타입 메서드이름();'abstract' 키워드를 붙이고, 구현부가 없으므로 괄호{ } 대신 문장의 끝을 알리는 ';'을 적어줌. 메서드를 미완성 상태로 남겨놓는 이유는 메서드의 내용이 상속받는 클래스에 따라 ..
[Java] Vector 클래스 Vector 클래스동적으로 크기가 관리되는 객체 배열.내부적으로 Object 타입의 배열을 가지고 있어서, 이 배열에 객체를 추가하거나 제거할 수 있게 작성되어 있다.배열의 크기를 알아서 관리해주기 때문에 저장할 인스턴스의 개수에 신경쓰지 않아도 된다. 메서드 / 생성자 설명 Vector() 10개의 객체를 저장할 수 있는 Vector 인스턴스를 생성한다. 10개 이상의 인스턴스가 저장되면, 자동적으로 크기가 증가된다. boolean add(Object o) Vector에 객체를 추가한다. 추가에 성공하면 true, 실패하면 false를 반환한다. boolean remove(Object o) Vector에 저장되어 있는 객체를 제거한다. 제거에 성공하면 true, 실패하면 false를 반환한다. bool..