IT/JAVA 58

추상 클래스

그냥 개념이 좀 헷갈려서 찾아본 추상 클래스 1. 추상 클래스의 주요 사용 목적 1. 공통적인 기능을 제공하면서, 일부 기능을 하위 클래스에서 강제 구현하도록 할 때: 부모 클래스가 정한 틀을 벗어나지 않도록 함. 코드의 일관성을 유지하고 개발자가 기능을 빼먹지 않도록 막아주는 역할을 한다. 2. 객체를 직접 생성하지 못하도록 막고, 상속을 통해서만 사용하도록 만들 때: new() 사용 불가. 객체 생성은 반드시 하위 클래스에서 상속을 받아서만 가능하다. 왜냐하면 추상 클래스는 설계의 틀을 제공한다는 목적을 갖고있기 때문에 직접 객체를 만들 필요가 없기 때문이다. 하위에서 상속받아서 구체적인 객체를 만들도록 한다. 3. 일반 메서드와 추상 메서드를 같이 사용해야 할 때: 일반 메서드는 모든 하위 클래스에..

IT/JAVA 2025.03.02

JDBC + MYSQL 연동

[JDBC]※ JDBC란?자바 프로그램 안에서 SQL을 실행하기 위해 데이터베이스를 연결해주는 응용프로그램 인터페이스JDBC는 4파트로 구성된다.1. 드라이버 로드(메모리에 데이터 적재) Class.forName("com.mysql.cj.jdbc.Driver"); // 클래스 이름으로 읽어오기 코드 중복 감소와 함수화를 위해 상단에 먼저 다 나열해놓고 사용하기.static final String driverName = "com.mysql.cj.jdbc.Driver"; 그리고 try문 안에서Class.forName(driverName);로 연결해주면 된다. ■ Class.forName(driverName) 의 뜻: MySQL JDBC 드라이버를 메모리에 로드하는 역할.클래스 이름을 문자열로 전달하면 JV..

IT/JAVA 2025.02.21

JSP

■ JSP : Java Server Pages의 약자.□ Java를 기반으로 하는 서버 측 동적 웹페이지. HTML에 JAVA를 넣어 동적 웹페이지를 작성한다.클라이언트의 요청에 따라 서버가 응답결과를 HTML 문서로 만들어 브라우저로 보여주는 것.Spring 등의 프레임워크와 결합하여 개발 가능하다. JSP가 실행되면 자바 서블릿(Servlet)으로 변환되고, 웹 어플리케이션 서버에서 동작하면서 필요한 기능을 수행한다.참고로, JSP는 서블릿으로 변환 후 사용자에게 HTML 형태의 코드만 전송하고 태그의 내용이 사용자에게 보이지 않는다. □ JSP 와 서블릿 : JSP는 HTML 안에 JAVA가, 서블릿은 JAVA 안에 HTML이. JSP가 편하다.JSP가 서블릿의 단점을 보완한 것. 기본을 HTML으..

IT/JAVA 2025.02.21

능력단위평가 - 자바 총 정리 테스트 오답노트

[ 4번 문제 ]에러가 발생하는 라인은 7번이다.왜냐하면 제네릭 설정을 하지 않았기 때문에 for(int v : datas)가 아니고, for(Object v : datas)가 되어야 한다. 단, 에러는 7번 라인에서 발생하지만2번 라인 ArrayList에 제네릭을 붙여주면 에러가 해결된다.[ 7번 문제 ]C 클래스에 new 연산자를 통해 c라는 객체를 생성한다.C() 생성자를 따라 C 클래스로 올라가면,  C클래스의 기본 생성자에서는 super("멍멍");을 가리키고 있다.이때, "멍멍"은 문자열이므로 상속 받고 있는 B 클래스의 인자 있는 생성자로 올라가야 한다.B(String msg)로 올라가면 또 super(msg)를 만날 수 있는데, B클래스는 A클래스를 상속받고 있으므로 A(String msg..

IT/JAVA 2025.02.17

MVC 프로젝트 - 도서관 프로그램(VIEW 코드)

이번 MVC 프로젝트에서는 VIEW 파트를 맡았다.근데 생각보다 쉽지 않았고, 설계가 튼튼해야 VIEW 메서드 시그니쳐 설정할 때 수월하다는 걸 느꼈다.. 1. Viewpackage view;import java.util.ArrayList;import java.util.Scanner;import model.BookDTO;public abstract class View { Scanner sc; public View() { sc=new Scanner(System.in); } public final void logOut() { System.out.println("로그아웃 되었습니다."); } public final void printEmptyBook() { System.out.println("책이 없습니..

IT/JAVA 2025.02.11

자바 복습

1. 스레드■ 스레드 : 프로그램 내에서 동작하는 작업 단위. 여러 개의 작업을 동시에 실행하는 기능=> 여기서는 단지 시각적 효과를 주기 위해 사용public void printShutdown() { for(int i = 0; i  반복문을 돌면서 .을 5번 출력한다.■  Thread.sleep() : 현재 실행 중인 스레드를 멈추는 기능□  Thread.sleep(500) : 스레드를 0.5초 동안 멈춘다.□ 500ms = 0.5초.□ 0.5초마다 멈추면서 . 이 출력되고 프로그램을 종료합니다 문구가 띄워진 후 종료.■ InterruptedException 예외 : 스레드가 중단(interrupt)되었을 때 발생하는 예외스레드가 sleep()이나 wait()인 도중 다른 스레드에 의해 깨워질 때 ..

IT/JAVA 2025.02.11

크롤링 + MVC 패턴

카페 웹사이트에서 메뉴를 크롤링해와서 샘플 데이터로 사용한다.이때, 프로그램은 MVC 패턴에 따른다. 1. CoffeeDTOpackage model;public class CoffeeDTO { private int num; private String name; private String detail; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDetail() { return detail; }..

IT/JAVA 2025.02.10

웹 크롤링

[웹 크롤링] ■ 샘플 데이터를 웹 페이지로부터 "추출"하고  ===> 스크랩핑□ HTML 코드가 스크랩핑의 대상.* html은 웹 페이지를 코딩하는 언어로, 한 쌍의 태그로 이루어져있다. (MarkUp Language)■ 이 데이터들을 나의 프로젝트에 알맞은 형태로 "가공"할 수 있다. ==> 크롤링 ■ Jsoup : 자바에서 크롤링을 목적으로 웹에 접근할 때 가장 많이 사용되는 클래스 객체- 자바에서 자동 제공되는 라이브러리가 아니므로 다운 받아 사용- https://jsoup.org/download Download and install jsoupDownload and install jsoup jsoup is available as a downloadable .jar java library. The..

IT/JAVA 2025.02.10

MVC 패턴 복습 2

애플리케이션을 만들 때는 설계 먼저 진행한다.[설계 과정]1. 요구사항 정의2. CRUD(=비즈니스 메서드, 핵심 관심, 주요 기능) 구분하기3. 사용자 시각에서 기능 이용해보기 >> User Flow ( + 개발자들이 기능에 대해 동일한 생각을 하고 있는지 확인) 설계 정말 꼼꼼히 하는 게 좋다.......  MVC 패턴 코드 디벨롭하기1. M CRUD 오버로딩 : 하나의 메서드에서 모든 로직을 관리하여 응집도 높이기■ 인자가 같아서 오버로딩 불가능할 때 : condition 사용□ condition : 자바에서 개발용으로 생성해놓은 멤버변수. CRUD 메서드에 condition과 if문을 사용하여 오버로딩이 필요한 메서드들을 하나로 합친다. => 응집도 증가2. M CRUD에 있는 모든 메서드 시그니..

IT/JAVA 2025.02.09