• 1. 리플렉션(Reflection)사전적 의미로는 '반영', '영향'의 의미를 가지며,거울에 비친 나의 모습을 보고 어떠한 대상을 반영하거나 영향을 주는 것을 의미한다. 전산학의 리플렉션은 컴파일된 프로그램의 구조를 런타임에서 확인하고 조작하는 기법을 의미한다.소스 코드를 보지 않고 바이너리 형태의 프로그램 구조를 확인하고 조작하는데, 이러한 부분이 사전적 의미와 대응된다. 자바에서의 리플렉션은 프로그램이 자신의 구조를 런타임에 검사하고 조작할 수 있도록 해주는 기능이다.클래스, 메서드, 필드 등을 코드 실행 중에 동적으로 찾아내고, 이들을 직접 호출하거나 값을 변경할 수 있게 한다.마치 코드가 거울을 보듯 자기 자신을 들여다보는 것과 같다. 이렇듯 객체지향 프로그램에서 리플렉션은 런타임에 클래스의 구조..

  • 1. 제네릭 클래스가 필요하게 된 동기와 등장각 클래스가 유사도가 높다고 하나, 타입이 다른 경우가 있을 수 있다.이런 경우 데이터 타입이 다르기 때문에 한번에 보기에는 합쳐야 하는 이슈가 있을 것이다.class A { public int x = 1 , y = 2; public void a(){ System.out.println(x); } public void b(){ System.out.println(y); }}class B { public char x = '0', y = '1'; public void a(){ System.out.println(x); } public void b(){ System.out...

  • Statement와 PreparedStatement 비교  Statement와 PreparedStatement 클래스는 Java 애플리케이션에서 데이터베이스에 접근하여 SQL 쿼리를 작성하고 DB에 전달할 때 쓰는 클래스들로 다른 특성을 가지고 있다. StatementSQL 쿼리에서 변수를 직접 문자열로 결합하여 사용String sql = "insert into student values(" + sno + ", '" + name + "', ...);";st.executeUpdate(sql);SQL 인젝션 공격에 취약하며, 매번 새롭게 SQL 구문을 컴파일하므로 성능이 떨어질 수 있다.문자열 결합형식을 취하기 때문에 동적 쿼리 사용시 작성의 불편함이 있다.  PreparedStatement ?로 표기하는 ..

  • Frontend 와 Backend 간의 데이터 전송프론트앤드에서 사용자가 입력한 데이터를 서버로 전송하고 최종적으로 해당 데이터를 SQL문을 통해 데이터베이스에 저장이과정에서 JAVA 는 SQL 문을 통해 DB와 상호 작용하는 중간 역할을 수행한다.Java 와 DB 연결을 위한 JDBC 사용JDBC(Java Database Connectivity)java 애플리 캐이션이 다양한 데이터베이스에 연결될 수 있도록 해주는 API자바 운영체제에 JVM이 있던것 처럼,DB에 관해서도 각 DBMS 마다 존재하게 된다 ➡️JDBC Driver APIJDBC Driver각 DB 회사마다 드라이버를 제공하고 있다.mySQL은 커넥터를 이용하여 JDBC 드라이버 API를 사용한다.드라이버들도 공통된 규칙이 정해져 있고 ,..

  • 인터페이스란 ? 추상클래스의 추상메서드를 활용하는 것과 같이더 강력하게 추상만 넣어두어 규칙만 명시한것이라고 볼 수있다.클래스와 클래스를 연결하는 기법이고,서로 상속관계가 아닌 클래스들을 연관성 있게 다형성을 활용하여 체계성을 만들고 싶을때 사용한다.추상 메서드와 상수(리터럴 의무!) 만 올 수있다. interface의 특징1. 완전한 추상화 : 인터페이스는 기본적으로 모든 메서드가 추상 메서드이며 , 구현을 가질 수 없다.(Java 8 이후부터는 디폴트 메서드와 정적 메서드에 한해 구현을 가질 수 있다. 아래의 메서드 사용법 있음.)2. 상태없음 : 인스턴스 변수를 가질 수없다(단 , 상수는 가질 수 있다.)3. 다중 상속 지원 : 하나 이상의 인터페이스를 구현 할 수 있다.4. 구현 : 클래스가 인터..

  • 1. 직접 처리 해당 메서드 내에서 try ~ catch 블럭 처리public static String readString1() { byte [] bf = new byte[100]; System.out.println("readString1 ) 문자를 입력하세요."); System.in.read(bf); //컴파일 오류 : Unhandled exception…} Java의 system.in.read()메서드는 입력 스트림에서 바이트를 읽어들이는 과정에서 다양한 예외가 발생할 수 있기 때문에 이를 처리할 필요가 있다. 입력 및 출력 작업 중에 발생하는 예외로, 스트림이 닫혔거나, 입출력 장치가 사용 불가능한 경우에 발생 → IOException즉 system.in.read 는 IOException 을 던질 ..

  • Copyright 2024. GRAVITY all rights reserved