본문 바로가기

JAVA23

자바 시작하기 01. 코드 작성하기 public class HelloWorld { public static void main(String[] args) { System.out.println("Java"); System.out.println("훈민정음"); } } // 출력결과 Java 훈민정음 02. 컴파일 프로그램 소스코드를 실행 가능한 바이너리 형태(2진수)로 변환하는 작업 .java 확장자로 된 소스파일이 있는 폴더에서 shift + 우클릭 + PowerShell 열기 javac -encoding utf-8 파일이름.java 작성된 소스코드에 문제가 있을경우 컴파일에 실패하고 에러가 발생. 03. 주석 프로그램 소스코드안에서 설명하기 위함 한줄 주석 '//' 적용 // 한줄 주석 두줄이상 주석시에는 '/*' 적용.. 2021. 1. 12.
JAVA(이것저것) JDK(Java Development Kit) : 자바 개발도구 - 자바 가상머신(JVM)과 컴파일러, 디버거, 그리고 자바 애플릿 및 응용프로그램 개발을 위한 도구들 포함 컴파일 : 프로그램 소스코드를 실행 가능한 바이너리 형태로 변환하는 작업 - 작성된 소스코드에 문제가 있을 경우 컴파일에 실패하고 에러가 발생. 컴파일러 : 컴파일을 수행하는 프로그램 javac.exe.가 컴파일러. javac 는 소스파일 이름 코딩 컨벤션 : 코딩의 룰 - 들여쓰기, 변수/함수 이름 작명 방법 부터 코딩시 필요한 여러가지 패턴을 정의 대화식 프로그램 - 버튼이나 검색을 통해 결과를 텍스트 형식으로 알려주는 것. 컴파일에러 : 자바 작성규칙에 어긋나서 생기는 에러 - 이 에러를 해결하지 못하면 실행 조차 못함. 런타임.. 2021. 1. 12.
JAVA(DAO패턴) SQL Injection SQL Injection 공격 응용프로그램 보안 상의 허점을 의도적으로 이용해 개발자가 생각지 못한 SQL문을 실행되게 함으로써, 데이터베이스를 비상정적으로 조작하는 공격 방법 SQL Injection 공격 방어를 위한 처리 사용자의 입력값을 SQL문과 조합할 때 홑따옴표(') 앞에 역슬레시()를 붙여, SQL구문이 홑따옴표를 특수문자로 인식하도록 처리해야 한다. 2020. 6. 24.
JAVA(MySQL연동, JDBC) JDBC(Java Database Connectvity) - 자바 프로그램 내에서 데이터베이스 시스템의 종류에 구애 받지 않고 질의문(SQL)을 실행하기 위한 표준 데이터베이스 인터페이스 - 데이터베이스 및 어플리케이션 개발자들을 위한 표준 API 제공하는 라이브러리 - MySQL의 JDBC는 자바를 이용해서 MySQL 서버에 연결하고 SQL을 처리하기 위한 API 제공. 데이터베이스 접속, 해제 처리 절차 접속정보 설정 -> 접속 -> 접속실패 여부 검사 -> 접속 해제 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main01 { public static void m.. 2020. 6. 23.
JAVA(fileIO, JSONObject) java.io.File File 클래스는 파일 또는 폴더에 대한 정보를 제공하는 클래스. 파이썬에서 os 클래스와 비슷하다고 보면됨. File 클래스의 객체는 정보를 조회하고자 하는 파일이나 폴더의 경로에 대한 문자열을 생성자 파라미터로 전달하는 형태로 만들 수 있음. 이 때 파라미터로 전달되는 경로가 실제로 존재하지 않더라도 File 객체의 생성이 가능함. 경로 설정하기 운영체제간의 호환성 유지를 위한 '/' 의 사용 경로 설정시 윈도우에서는 역슬래시()를 사용하지만 이 경우 '\'의 형식으로 사용해야하고, 가급적 다른 운영체제와의 호환성을 위해 '/' 를 사용하는것이 좋음. 절대 경로 작업 디렉토리와 관계없이 절대적인 위치를 의미하는 경로 리눅스 예시 : /.. 2020. 6. 16.
JAVA(예외처리, 날짜처리, 컬렉션) 예외상황 : 에러가 발생하여 실행을 못하는 것. 에러의 종류 컴파일 에러 소스코드 구문오류로 인한 컴파일 불가. 이클립스에서 빨간색밑줄로 표시됨. 프로그램이 실행되기전에 발견되므로 상대적으로 수정에 용이함. 런타임 에러 구문상 에러는 없으나, 실행과정에서 다양한 경우의 수에 대응하지 못하여 발생하는 예외상황. 런타임 에러시 프로그램 강제종료. 우리가 흔히 말하는 프로그램 에러는 대부분 런타임 에러에 해당. 런타임 에러 종류 논리오류 논리적 모순이 생기지 않도록 코드를 작성해야 함. 자바가상머신 자체 오류 (메모리 과다사용) 프로그래머가 책임 질 수 있는 수준의 오류가 아님. 예외 프로그램 실행 중에 발생할 수 있는 예기치 찮은 사건으로, 프로그래머의 노력으로 처리가능. 자바가상머신은 프로그램 실행중에 예.. 2020. 6. 15.
JAVA (Static, 익명클래스) Static 클래스 설계 시, 모든 객체에서 공통적으로 사용해야 하는 멤버변수 앞에 static을 붙인다. 메모리를 효율적으로 사용이 가능하다(객체 1개당 4byte 생성) 일반메서드 -> static메서드 호출가능, static메서드 -> 일반메서드 호출불가. static은 프로그램 전체에서 사용 할 수 있는 전역변수 라 생각 해도 무방. 고정영역 : 프로그램이 작동하는 동안 할당되는 영역 (설치된파일, 프로그램) 코드영역 프로그램의 코드가 저장되는 영역 CPU가 하나씩 가져가 실행한다. 데이터영역 전역변수 와 static 으로 선언되는 변수 이 영역에 할당되는 변수들은 프로그램 시작과 동시에 메모리 공간이 할당되어 종료될 때 까지 남아있는다. 동적영역 : 소스코드가 실행될 때 할당되는 영역 (소스코드.. 2020. 6. 11.
JAVA(추상화, 인터페이스) Override 처리의 문제발생 가능성 '@Override' 키워드를 사용하지 않고 메서드 재정의 과정에서 메서드이름에 오타가 발생하더라도 에러가 아닌 새로운 메서드로 인식. '@Override' 키워드를 사용하더라도 자식클래스를 구현하는 개발자의 실수로 인해 부모의 기능이 재정의 되지 않으면 다형성 구현 실패. 추상화 위 와 같은 문제발성 가능성을 없애고자 부모클래스를 상속받은 경우, 부모의 특정 메서드들을 무조건 재정의 하도록 하는 기법 자식클래스들이 재정의 해야 할 메서드를 알려줌으로써 가이드 의 역할을 할 수 있음. 추상화는 Java클래스를 작성하기 위한 설계도 를 소스코드형태로 제시하는 역할. 추상클래스 추상메서드를 포함한 클래스 // 추상 클래스의 정의 - 'abstract' 키워드 사용 pu.. 2020. 6. 10.
JAVA(객체형변환, 객체배열) 객체 형변환 // 형변환 규칙 부모클래스 객체이름 = new 자식클래스(); 객체 참조변수의 경우에도 형변환이 이루어짐. 위 소스코드에서 왼쪽 항(Parent)과 오른쪽 항(Child)의 객체 유형이 다른 경우, 서로 상속관계에 있고 왼쪽객체(Parent)가 오른쪽 객체(Child)의 상위 클래스인 경우에만 암묵적 형변환 이 일어난다. 암묵적 형변환 암묵적 형변환이 되면 자식클래스가 부모클래스에게 상속받은 기능만 사용하도록 제한 주의할 점 : 원래 자식클래스의 기능을 사용하지못하게 하는것이지 없애는것 은 아니다. 명시적 형변환 // 명시적 형변환 방법 부모클래스 객체이름 = (부모클래스) 자식클래스; 부모클래스의 객체를 자식클래스 형태로 변환 명시적 형변환 조건 객체가 최초 생성될 때 자식클래스형태로 생.. 2020. 6. 10.