본문 바로가기

분류 전체보기

(107)
JSP의 동작 원리 알아보기 1. 웹 브라우저 요청 (클라이언트가 웹 브라우저로 JSP에 대한 요청 정보를 전달) kalsWeb.jsp 라는 페이지를 클라이언트가 웹 브라우저 주소창에 입력하고 이동을 합니다. 2. JSP -> Servlet (컨테이너가 JSP 파일을 servlet 파일(.java)로 변환) servlet 파일로 변환된다는 것은 kalsWeb_jsp.java 파일이 생성된다는 것과 같은 말이자 생성되는 시점입니다. 3. Servlet -> JSP (.class 파일 생성) 바로 전 단계에서 생성된 servlet 파일(.java)를 컴파일하여 실행가능한 byte code로 변환한 .class 파일을 생성합니다. 4. 내부 로직 수행 바로 전 단계에서 변환되고 생성된 .class 파일을 로딩하고 인스턴스를 생성합니다. ..
구현 코드가 없는 인터페이스 (interface) 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 하며 추상 메서드와 상수로만 이루어져 있고 구현된 코드가 없기 때문에 인터페이스로 인스턴스를 생성할 수도 없습니다. 인터페이스를 생성하려면 클래스를 생성할 때 처럼 패키지에서 마우스 우클릭 후 [New -> Interface]를 클릭하여 생성하며 간단한 계산기 인터페이스를 만들어보겠습니다. public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1..
[기본 클래스] Object 클래스 우리는 지금까지 String, Integer와 같은 참조형 클래스를 사용하고 있었습니다. 이들 클래스는 java.lang 패키지에 속해있으며 String 클래스의 전체 이름은 java.lang.String입니다. 외부 패키지에 선언된 클래스를 사용할 때는 import문으로 해당 클래스의 패키지와 함께 선언해줘야 합니다. 그런데 import java.lang.String;이라는 문장을 써준 적이 없죠? 이 말인즉슨 import java.lang.*; 문장이 자동으로 추가되어 암묵적으로 사용할 수 있었던 것이었습니다. 오늘 이 글에서 다룰 JDK 기본 클래스는 Object 클래스입니다. Object 클래스는 모든 클래스의 최상위 클래스입니다. 모든 클래스는 Object 클래스를 상속받습니다. 상속받으려면 e..
enum (데이터 열거형 타입) enum이란 enumeration(열거, 목록)의 약자입니다. 자바에서는 enum을 같은 종류의 상수 집합으로 사용합니다. 일반적으로 상수를 선언할 때는 아래와 같습니다. private final static int KIM; private final static int CHOI; private final static int PARK; 일반 상수에서 배웠듯이 private final static 은 생략해도 상수가 기본적으로 생략하며 가질 수 있습니다. 상수를 관리할 때 자료형 상수 방식으로 상수를 선언하는 것 보다 enum 방식으로 관리하는 게 장점이 더 많습니다. enum FirstName { KIM, CHOI, PARK } 위 enum 방식은 최상단 일반적인 상수 선언했던 내용과 100% 동일합니다...
향상된 for문 (for each문) 향상된 for문 (for each문) 은 JDK 5.0 버전 이상부터 지원하는 문법입니다. 기본 문법 for(객체에서 꺼낸 데이터를 저장할 변수 선언 : 배열 등의 객체) { ... } 보통 배열이나 여러개의 값이 담긴 객체를 사용할 때 반복문을 씁니다. 일반적인 for문으로 구문을 작성하면 아래와 같습니다. String[] arr = {"칼", "스", "블", "로", "그"}; for(int i=0; i
MySQL 설치하기 웹 서버를 본인 PC에 올려서 쓰거나, 다른 이유로 Database를 사용해야 할 경우를 위해 설치하는 방법을 알려드립니다. MySQL은 DBMS (DataBase Managerment System) 소프트웨어의 일종입니다. JSP로 예를 든다면 회원가입 하는 멤버, 게시판의 글/댓글, 쇼핑몰 장바구니 등 우리가 로그아웃을 해도 데이터가 남아있는 이유가 DB에 데이터를 저장해뒀기 때문입니다. JSP는 웹 개발에 최적화 된 언어이기 때문에 DB는 당연히 쓸 것 같아 JSP 게시판에 포스팅 하였습니다. 아래 링크에 접속합니다. https://www.mysql.com/downloads/ 스크롤을 쭉 내리다보면 MySQL Community (GPL) Downloads >> 링크가 있는데 이 링크를 통해 다운로드..
추상화 (Abstract) 1. 추상 메서드 - 메서드 구현부(Body)가 없는 메서드 (실행할 코드가 없는 메서드) - 선언부 리턴 타입 앞 abstract 키워드 명시 - 이렇게 추상 메서드로 정의가 된 메서드를 포함하는 클래스는 반드시 추상클래스로 정의해야 함 기본 문법 [접근제한자] abstract 리턴타입 메서드명([파라미터...]); 2. 추상 클래스 - 인스턴스를 생성할 수 없는 클래스 - 클래스 내에 추상 메서드가 하나라도 존재할 경우 반드시 추상 클래스로 선언 - 서브 클래스는 반드시 추상 메서드를 구현(implements)해야 함 = 오버라이딩 방법과 동일 기본 문법 [접근제한자] abstract class 클래스명 { // 멤버변수, 상수 // 일반메서드, 추상메서드 } abstract class Abstrac..
상수 (final) 상수 (final) 란? - '변경의 마지막'이라는 의미로 사용되는 키워드 1. 변수에 final 키워드가 사용 될 경우 - 변수 값 변경 불가 - 반드시 초기화 코드가 포함되어야 함 - 초기화 코드를 포함하지 않는 변수를 blank final 변수라고 하며 생성자에서 반드시 해당 변수 초기화가 수행되어야 함 (= 주로 객체마다 다른 고정된 값을 사용해야 하는 경우) - 상수 이름의 규칙은 단어간의 구분 시 언더스코어(_) 기호 사용, 모두 대문자 (ex: MY_NAME) 2. 메서드에 final 키워드가 사용 될 경우 - 메서드 오버라이딩 불가 (슈퍼클래스의 메서드를 상속받아 그대로 사용하는 것은 가능) 3. 클래스에 final 키워드가 사용 될 경우 - 클래스 상속 불가 (해당 클래스의 인스턴스 생성..