자바

Programing Language/Java

[Java] 서블릿 (Servlet)

서블릿(Servlet) 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다. 스레드 방식으로 실행되고, 컨테이너 종류에 상관없이 실행되므로 플랫폼 독립적이다. 멀티 스레드 방식이기 때문에 여러 사용자에 의해 호출될 수 있다. 서블릿의 인스턴스는 재활용 가능하므로 한 번만 생성되면 된다. 서블릿 동작 과정 클라이언트가 웹 서버에 요청을 한다. 웹 서버는 클라이언트로부터 받은 요청을 웹 애플리케이션 서버(WAS)에 위임하고, 웹 애플리케이션 서버는 요청에 해당하는 서블릿을 실행한다. 서블릿은 요청에 대한 기능을 수행한 후 결과를 반환(서블릿 → 웹 애플리케이션 서버 → 웹 서버)하여 클라이언..

Web/게시판 만들기

[JSP] 게시판 만들기 01 - 테이블 생성 및 JUnit을 사용해 데이터 추가

본격적으로 게시판을 만들기 전 게시판에 필요한 테이블을 먼저 생성해보겠습니다. SQL 문을 따로 관리하기 위해 프로젝트 내에 ERD 폴더를 만든 뒤, 폴더 내에 ddl.sql이라는 파일을 생성하였습니다. 처음에 sql 파일을 생성할 때 위의 데이터베이스 그림 옆에 가 떠 있습니다. 를 클릭하면 DBeaver로 연결했던 데이터베이스가 뜹니다. 사용할 데이터베이스를 클릭하고 Select를 누르면 연결이 완료됩니다. 아까와 다르게 boards가 떠 있는 것을 확인할 수 있습니다. 테이블 생성 DROP TABLE IF EXISTS book CASCADE; CREATE TABLE book( bk_uid int PRIMARY KEY auto_increment , bk_title varchar(20) NOT NULL..

Setting

이클립스(Eclipse)에서 DBeaver 설치 및 사용법

DBeaver를 사용하면 웹 개발 시 sql 파일을 사용할 때 간단하게 데이터베이스 연결이 가능합니다. 약간 신세계였습니다. DBeaver 설치 이클립스 상단의 메뉴바에서 Help - Eclipse Marketplace에 들어간 뒤 검색어에 dbeaver를 검색합니다. 검색 뒤 아래로 내리다 보면 현재 기준(2021-12-07) DBeaver 21.3.0이 있습니다. 이것을 Install 합니다. 여러 가지를 선택할 수 있는데 기본적인 DBeaver IDE만을 선택하고 Confirm 하겠습니다. accept를 선택해주고 Finish 합니다. 그러면 이클립스 오른쪽 하단에 Installing Sofrware가 뜹니다. 설치가 완료될 때까지 기다립니다. 중간에 Security Warning이 뜨는 경우가 있..

Web/게시판 만들기

[JSP] 게시판 만들기 00 - 환경 설정

자바는 JDK 11 버전으로 설치되어있다 가정합니다. JDK 11 설치 및 환경 변수 설정하기 (Click) Java JDK 11 버전 설치 및 환경 변수 설정 벌써 JDK 17 버전까지 나왔네요.. JDK 11 다운로드 오라클 사이트에서 다운로드합니다. 오라클에서 다운로드하기 위해서는 회원가입이 필수이니 계정이 없으시면 만들어주셔야 합니다. https://www.ora mimah.tistory.com IDE : Eclipse IDE for Enterprise Java and Web Developers 웹 개발을 위한 이클립스 설치 (Click) 웹 개발을 위한 이클립스(Eclipse) 설치 Eclipse 다운로드 https://www.eclipse.org/downloads/ 위 홈페이지에 들어가 Don..

Setting

웹 개발을 위한 이클립스(Eclipse) 설치

Eclipse 다운로드 https://www.eclipse.org/downloads/ 위 홈페이지에 들어가 Donwload Packages를 클릭합니다. 웹 개발을 할 것이므로 위 이클립스를 다운로드합니다. 오른쪽, 자신의 운영체제에 맞는 것을 클릭합니다. File : eclipse-jee-2021-09-R-win32-x86_64.zip를 클릭하여 바로 다운로드해도 되지만 조금 더 빠른 다운로드를 하려면 Select Another Mirror를 클릭하여 한국 꺼를 클릭하면 됩니다. 저는 보통 Kakao로 진행합니다 😎 압축 파일 다운로드가 끝나면 원하는 위치에 압축을 해제하면 됩니다. 압축 해제가 완료되면 폴더 내에 다음과 같은 파일들이 있습니다. 편의상 exe 파일은 바로가기를 만들어 사용하시면 됩니다..

Programing Language/Java

[Java] 예외 처리 throws와 예외 클래스 생성

throws 메서드 설계 시 예외 처리를 직접 하지 않는 경우에 사용한다. 메서드 이름 뒤에 throws Exception을 추가하면, 메서드에서 예외가 발생했을 때 메서드를 호출한 곳으로 exception이 던져진다. Exception 및 이를 직접 상속받은 Exception을 throws 하는 메서드의 경우 이 메서드를 호출하는 쪽에서 반드시 예외 처리(handling)를 해야 한다. 하지 않는 경우 에러가 발생한다. 이와 달리 RuntimeException 및 이를 상속받은 예외를 throws 하는 메서드는 호출하는 쪽에서 매번 예외 처리를 하지 않아도 된다. Exception 또는 RuntimeException 클래스를 상속 받아서 직접 Exception 클래스를 만들어 사용할 수 있다. 💻 예제..

Programing Language/Java

[Java] 예외(Exception) 처리 try-catch문 예제

예외 (Exception) 예외는 컴파일 에러와는 다르다. 컴파일 에러는 문법 상의 오류이지만 예외는 문법 상 오류가 아닌 실행 중에 발생되는 오류 상황을 일컫는다. 일반적으로는 예외가 발생하는 경우에 예외 관련 메시지를 출력하고 프로그램을 종료한다. 예외 예시 ArithmeticException 0으로 나누었을 때 발생하는 예외이다. ClassCastException 타입 변환(Casting)은 상위 클래스와 하위 클래스 간 또는 구현 클래스와 인터페이스 간에서 발생한다. 두 클래스가 위와 같은 관계가 아닌 상황에서 타입 변환을 시도하는 경우 발생하는 예외이다. ArrayIndexOutBoundsException 배열 사용 시, 배열 사이즈를 벗어난 인덱스에 접근하는 경우 발생하는 예외이다. Negat..

Programing Language/Java

[Java] 인터페이스(Interface) 예제

인터페이스 (Interface) 인터페이스는 선언 시 interface라 선언하고, 인터페이스를 구현(상속)하는 클래스에서는 implements 키워드를 사용해 구현(상속)한다. 인터페이스는 모든 메서드가 public abstract로 선언되고, 모든 멤버 변수가 public static final로 선언된 특별한 종류의 추상 클래스이다. 메서드 선언 시 public abstract는 생략 가능하고, 멤버 변수 선언 시 public static final 또한 생략 가능하다. 인터페이스는 다른 클래스와는 달리 다중 상속이 가능하다. 💻 예제 1 📝 소스 코드 public class Main { public static void main(String[] args) { TestImpl test1 = new ..

Programing Language/Java

[Java] 추상 클래스(Abstract class)와 추상 메서드(Abstract method)

추상 클래스 (abstract class) 간단히 말하자면 추상 메서드를 가지고 있는 클래스이다. 일반적으로 생각하는 클래스는, 해당 클래스를 사용해 객체를 직접 생성할 수 있다. 그리고 이러한 클래스를 실체 클래스라고 말한다. 추상 클래스는 실체 클래스와는 달리 클래스의 공통적인 특성을 추출해서 선언하는 것이다. 따라서 추상 클래스는 인스턴스를 생성할 수 없다. 즉 객체를 직접 생성할 수 없다. new가 불가능한 것이다. 추상 클래스는 선언할 때 abstract 키워드를 반드시 써주어야 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가진다. 추상 클래스가 부모이고 실체 클래스가 자식으로 구현된다. 추상 클래스를 상속받는 자식 클래스에 반드시 구현해야 할 메서드가 있는 경우, 그 메서드를 추상 메서드..

Programing Language/Java

[Java] 다형성(Polymorphism) 예제

Polymorphism (다형성) 다형성은 하나의 이름을 가진 클래스나 메서드가 여러 가지 형태의 동작을 하는 능력이다. 다형성에 의해 자손 타입 객체가 부모 타입으로 자동 형 변환이 될 수 있다. 즉, 부모 타입인 객체만으로도 상속된 모든 자손 타입들을 담을 수 있다. 클래스에서 다형성 예시로 첫 번째는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있는 것이다. 두 번째는 조상 클래스 타입의 참조 변수로 자손 클래스의 인스턴스를 참조할 수 있는 것이다. 메서드에서의 다형성은 메서드 오버라이딩과 메서드 오버로딩이 있다. HAS-A (멤버), IS-A (상속) HAS-A 관계 같은 경우는 멤버로 설계하고, IS-A 관계는 상속으로 설계한다. HAS-A Car is-a Tire (X) Tire is..

Programing Language/Java

[Java] 오버라이딩(Overriding)과 오버로딩(Overloading) 예제

오버라이딩 (Overriding) Overloading 과는 다른 개념으로, 오버라이딩은 상속 관계에서 부모 클래스에 있는 메서드를 재정의하는 것이다. 부모 클래스에 있는 메서드와 매개변수 리스트가 동일해야 한다. 또한 부모 클래스에 있는 메서드와 접근 권한 수식어가 동일할 필요는 없지만 기존 부모 클래스의 메서드 접근 권한의 범위보다 작게 설정할 수는 없다. 즉, 접근 권한은 같거나 더 넓은 수식어를 사용해야 한다. 메서드 앞에 final 키워드가 붙으면 해당 메서드는 더 이상 오버라이딩이 불가능하다. 클래스 앞에 final 키워드가 붙으면 해당 클래스를 상속할 수 없다. 예제 Main.java public class Main { public static void main(String[] args) {..

Programing Language/Java

[Java] 상속 관계에서 생성자 호출 순서

상속에서의 생성자 호출 순서 자식 클래스의 생성자에서 명시적으로 부모 클래스의 생성자가 호출되지 않으면 자동으로 부모 클래스의 default 생성자가 호출된다. 부모 클래스에 디폴트 생성자가 없는 경우도 있는데 그럴 때는 부모 클래스의 다른 생성자를 반드시 호출해야 한다. 자식 클래스의 생성자에서 명시적으로 부모 클래스의 생성자를 호출할 수도 있다. super 키워드를 사용하여 부모 클래스의 생성자를 호출할 수 있는데, 이때 super 키워드는 자식 생성자의 첫째 줄에 호출되어야 한다. 그러지 않으면 'Constructor call must be the first statement in a constructor'라는 오류 문구가 뜬다. 예제 현재 코드에서 상속은 (부모) Vehicle - Car - Hy..

밈아
'자바' 태그의 글 목록 (2 Page)