분류 전체보기 216

유효성 검사(Validation)

유효성 검사란? 사용자가 폼 페이지에서 입력한 데이터 값이 서버로 전송되기 전에 특정 규칙에 맞게 입력되었는지 검증하는 것 즉 사용자가 실수로 유효하지 않은 데이터 값을 입력하면 부적합하다고 판단하여 다시 폼 페이지로 되돌려 사용자에게 오류가 있음을 알려준다. 유효성 검사의 예 폼 페이지에서 나이를 입력할 때 숫자를 인식하는 검사, 회원 가입 시 아이디 중복 검사, 로그인 인증 시 아이디와 비밀번호 검사, IP 패킷 검사 등 유효성 검사가 필요한 이유 보안 공격, 잘못된 데이터, 사용자의 실수로 예상 가능한 오류 등의 방지 다양한 사용자가 폼 데이터를 입력해도 폼 페이지의 동일한 입력 양식과 형태를 유지할 수 있다(데이터베이스에 원하는 데이터가 쌓임) 핸들러 함수 폼 페이지에서 이벤트가 발생했을 때(를 ..

Oracle 데이터베이스 설치(윈도우/Mac)

데이터베이스를 공부할 때는 데이터베이스를 먼저 설치를 해주어야 한다. 여기서는 Oracle을 다운로드 받아본다. 윈도우 다음 링크에서 oracle 11g express 설치한다. https://www.oracle.com/database/technologies/xe-prior-release-downloads.html XE Prior Release Archive Getting Started: Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, ..

카테고리 없음 2022.12.08

다운캐스팅, instanceof

이전 글들을 통하여 다형성을 활용하여 업캐스팅(up casting)이 된다는 것을 알게 되었다. 여기에서는 다시 하위 클래스로 형 변환(다운캐스팅)이 되는 과정을 살펴보자. 위와 같은 계층 구조에서 상위 클래스를 자료형으로 선언하는 Animal ani = new Human( ); 코드를 쓸 수 있다. 이때 생성된 인스턴스 Human은 Animal형이다. 이렇게 Animal 형으로 형 변환이 이루어졌을 때는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 다시말해 Human 클래스에 더 많은 메서드가 구현되어 있고 다양한 멤버 변수가 있다고 하더라도 자료형이 Animal형인 상태에서는 사용할 수 없는 것이다. 따라서 필요에 따라 다시 원래 인스턴스의 자료형(여기에서는 Human형)으로..

다형성 활용, 상속을 사용하는 경우, IS-A 관계, HAS-A 관계

다형성을 활용하여 프로그램을 작성하게 되면 유지보수할 때 매우 편리하다는 이점이 있다. 배열을 사용하여 여러 하위 클래스 자료형을 상위 클래스 자료형으로 한꺼번에 관리할 수도 있다. 객체 배열 ArrayList 자료형을 지정하여 선언하고, Customer과 GoldCustomer과 VIPCustomer 클래스 모두 상위 클래스인 Customer 자료형으로 지정하고 선언하게 되면 이 배열에는 Customer, GoldCustomer, VIPCustomer를 모두 사용할 수 있다. 그리고 이 배열에 Customer 하위 클래스의 인스턴스가 추가될 때 모두 Customer 형으로 묵시적 형변환이 된다. 그러면 테스트 프로그램을 구현해보자. Customer 클래스와 VIPCustomer 클래스는 전부 이전 예제..

가상메서드

자바의 클래스는 멤버 변수와 메서드로 이루어져 있다. 클래스를 생성해서 인스턴스가 만들어지면 멤버 변수는 힙 메모리에 위치한다. 그렇다면 메서드는 어디에 위치할까? 변수가 사용하는 메모리와 메서드가 사용하는 메모리는 다르다. 변수는 인스턴스가 생성될 때마다 새로 생성된다. 하지만 메서드는 실행해야 할 명령 집합이기 때문에 인스턴스가 달라도 같은 로직을 수행한다. 즉 같은 객체의 인스턴스를 여러 개 생성한다고 해서 메서드도 여러 개 생성되지 않는다. 예를 들면 다음 코드의 실행 결과와 같다. public class TestA { int num; void aaa( ) { System.out.println("aaa( ) 출력"); } public static void main(String[] args) { T..