Java 23

[Java] JSP (Java Server Page)

JSP (Java Server Page) JSP 란? Java Server Page이며 서버 사이드 템플릿 엔진이다. HTML안에 Java 코드나 EL, JSTL을 사용하여 동적인 페이지를 구성한다. JSP 프로젝트 생성 (인텔리제이) build.gradle 코드 추가 dependencies { // JSP implementation 'jakarta.servlet:jakarta.servlet-api' implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.glassfish.web:jakart..

Java 2024.04.13

[Java] JDBC

JDBC (Java Database Connectivity) 자바 프로그램에서 데이터베이스 접속할 수 있도록 만든 API JDBC 프로그래밍 개요 (사용 클래스) JDBC 드라이버 코드 System.setProperty() Class.forName() 데이터베이스 연결 java.sql.Connection Statement 생성 java.sql.Statement java.sql.PreparedStatement SQL문 전송 java.sql.Statement executeQuery() executeUpdate() 결과 받기 java.sql.ResultSet 연결 해제 java.sql.Connection close() JDBC 프로그래밍 JDBC 드라이버 로딩 (두가지 방법 중 택) System.setProp..

Java 2024.03.18

[Java] Collection

Collection framework Collection 사전적 의미로는 요소(객체)를 수집해 저장하는 것 Collection framework 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리 java util 패키지 포함 인터페이스를 통하여 정형화된 방법으로 다양한 컬렉션 클래스 이용 컬렉션 프레임워크의 주요 인터페이스 List 순서를 유지하고 저장 (인덱스로 관리) 중복 저장 가능 종류 ArrayList List 변수명 = new ArrayList(); 형태 저장 용량을 초과한 객체들이 들어와도 자동적으로 늘어난다. 객체 제거시 자동으로 앞으로 1씩 당겨진다. 저장 용량 고정도 가능 LinkedList List 변수명 = new LinkedList(); 형태 추가, 삭제..

Java 2024.03.18

[Java] Thread

프로세스 (process) 실행 중인 하나의 프로그램 하나의 프로그램이 다중 프로세스를 만들기도 한다. 멀티 태스킹 (multi tasking) 두 가지 이상의 작업을 동시에 처리하는 것 멀티 프로세스 독립적으로 프로그램들을 실행하고 여러가지 작업 처리 멀티 스레드 한 개의 프로그램을 실행하고 내부적으로 여러가지 작업 처리 멀티 프로세스(여러 개의 프로세스) 안에→ 각 프로세스 안에 멀티 스레드(여러 개의 스레드) 메인 스레드 모든 자바 프로그램은 메인 스레드가 main() 메소드를 실행하며 시작 실행 종료는 마지막 코드 실행되거나 return 문을 만날시에 종료 싱글 스레드 메인 스레드가 종료하면 프로세스도 종료 멀티 스레드 실행 중인 스레드가 하나라도 있다면 프로세스 미종료 스레드 생성 방법 Runn..

Java 2024.03.18

[Java] Exception

에러 (Error) 하드웨어의 잘못된 동작이나 고장으로 인한 오류 (개발자가 해결할 수 없는 오류) 에러 발생 시 프로그램 종료 정상 실행 상태로 돌아갈 수 없다. 예외 (Exception) 사용자의 잘못된 조작이나 개발자의 잘못된 코딩으로 인한 오류 (개발자가 해결 가능한 오류) 예외 발생시 프로그램 종료 예외 처리 추가하면 정상 실행 상태로 돌아갈 수 있다. 예외의 종류 일반(컴파일 체크) 예외(Exception) 예외 처리 코드 없으면 컴파일 오류 발생 실행 예외(RuntimeException) 예외 처리 코드를 생략하더라도 컴파일이 되는 예외 예외 처리 방법 try - catch - finally 다중 catch 가능 예외 별로 처리 코드 다르게 구현 순서는 상위 클래스가 위에 위치해야 한다. 멀..

Java 2024.03.18

[Java] 중첩 클래스, Wrapper 클래스, API 메소드, 자바 관련 단어들

익명 객체 (Anonymous Object) 일회성 메소드 재정의시 사용 한번 쓰고 버릴 코드이기 때문에 굳이 이름을 붙여서 사용하지 않는다. 예시 interface NormalCar { void run(); } public class ex49_anonymousFunction { public static void main(String[] args) { // 일회성 익명 인터페이스 구현 객체를 선언/생성한다. NormalCar normalCar = new NormalCar() { @Override public void run() { System.out.println("슈퍼카가 달린다."); } }; normalCar.run(); } } 중첩 클래스 (Nested class) 클래스 안에 클래스가 들어가는 ..

Java 2024.03.18

[Java] Abstract, Interface

다형성(Polymorphism) 하나의 타입에 여러 가지 객체를 대입하여 다양한 실행 결과를 얻는 것 하위 클래스에서 각 함수명을 통일해서 사용 가능 객체를 부품화 시키고 유지보수 용이하다. 자동 타입 변환(Promotion) 프로그램 실행 도중에 자동 타입 변환이 일어나는 것 바로 상단의 부모가 아니더라도 상속 계층의 상위면 자동 타입 변환 가능 업 캐스팅 자식 객체가 부모 클래스 타입을 가지는 것 부모클래스 변수 = new 자식클래스(); 형태 강제 타입 변환(Casting) 부모 타입을 자식 타입으로 변환하는 것 다운 캐스팅 자식 타입을 부모 타입으로 자동 변환 후, 다시 자식 타입으로 변환할 때 자식클래스 변수 = (자식클래스) new 부모클래스(); 형태 필요한 경우 자식 타입이 부모 타입으로 ..

Java 2024.03.13

[Java] 상속, Override

캡슐화(Encapsulation) 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것 외부 객체는 객체 내부 구조를 알지 못하고 제공하는 필드와 메소드만 이용 가능하다. 캡슐화 사용 이유는 외부에서 객체가 손상되지 않도록 하는 것이다. 캡슐화를 위해 접근 제한자(Access Modifier)을 사용한다. 상속(Inheritance) 부모 객체의 필드와 메소드를 자식 객체에게 물려주는 것 자식 객체는 부모 객체를 확장하여 추가적인 필드와 메소드를 가질 수 있다. private가 default 접근을 갖는 필드와 메서드는 상속 불가하다. 주로 protected 사용 extends 키워드 자식 클래스가 상속할 부모 클래스를 지정하는 키워드 public class 자식클래스 extends 부모클래스..

Java 2024.03.13

[Java] 접근 제어자, 생성자, 싱글톤 패턴

접근 제어자 (Access Modifier) public 동일 패키지의 모든 클래스와 다른 패키지의 모든 클래스에서 사용 가능 protected 동일 패키지의 모든 클래스와 다른 패키지의 자식 클래스에서 사용 가능 default 동일 패키지의 모든 클래스에서 사용 가능 private 동일 클래스에서 사용 가능 (캡슐화) Getter/Setter 함수를 통하여 접근하도록 허용 생성자 함수 (Constructor) 생성자 (Constructor) 클래스 객체가 생성될 때(new로 인스턴스 생성하면) 자동으로 호출되는 메소드 public 클래스이름() { … } 형태 매개변수 없이도 만들 수 있고 오버로딩으로 매개변수를 넣어서 만들 수 있다. 호출 시에 매개변수를 주어서 초기화 가능 부모 클래스에 기본 생성자..

Java 2024.03.13