IT자료실/Java 11

log4j → log4j2 Migration 작업

Overviewlog4j는 2015년에 종료 되었고 보안에 취약한 문제가 발견되어 log4j2로 migration하는 작업이 필요하다.log4j 란?log4j란 log for java라는 의미이다.로그문 출력을 다양한 대상으로 할 수 있도록 도와주는 도구이다.log4j의 구조Logger : 로그파일을 작성하는 클래스, Appender에 메세지 전달Appender : 로그출력 위치를 결정 (file, console, DB 등)Layout : Appender로 로그 생성 전에 메세지 형식을 만드는 클래스log4j levelTRACE log4j download 및 방법 차이우선 아래 사이트에서 log4j 파일을 다운로드 한다. Log4j – Download Apache Log4j™ 2logging.apache..

IT자료실/Java 2024.05.08

리플렉션 .class 클래스

스프링 강의를 진행 중 클래스이름.class 라는 항목이 자주 등장하여 내용 정리와 이해를하기 위해 작성한다. 리플렉션 리플렉션은 구체적인 클래스 타입을 알지 못해도 해당 클래스의 메소드, 타입, 필드들을 접근할 수 있게 해주는 자바API이다. Class 클래스 리플렉션의 기초가 되는 클래스이다. 자바에 사용되는 클래스에 대한 구조를 가지고 있는 class이다. (클래스의 구조 자체를 하나의 클래스로 표현해 놓은 클래스) 사용법 Class.forName("패키지 전체 경로") or 클래스 이름.class 위와 같은 형태로 호출하면 클래스 정보를 담은 class 클래스가 반환된다. 참조 블로그 : https://joont.tistory.com/165

IT자료실/Java 2022.05.31

jar와 war에 대해서

사용목적 JAR와 WAR 확장자는 모두 Jar tool을 이용해 생성된 압축(아카이브)파일 이다. 더욱 더 자세하게는 Application을 간단히 배포하고 어느 환경에서나 구동시킬 수 있도록 소스들이나 관련 파일들을 하나로 패키징한 파일 이다. JAR (Java Archive) .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성파일, 라이브러리 및 액세서리 파일이 포함되어 있다. 요약해서 자바 프로젝트를 압축한 파일로 생각하면 된다. JAR 파일은 플랫폼에 귀속되는 점만 제외하면 .zip 파일과 동일한 구조이다. JDK에서 접근해 사용할 수 있도록 지원하는 점이 편리하다. WAR (Web Application Archive) .war 확장자 파일은 servlet/JSP 컨테이너에 배치 할..

IT자료실/Java 2022.05.30

Java (Thread)

Thread Process : 프로그램이 실행되는 상태 Process는 프로그램이 실행되면 OS로 부터 메모리를 할당 받아 실행 Thread Thread는 Process의 자원을 사용하는 실제 작업을 수행하는 단위 Thread는 비동기적인 특성을 갖는다. (동기적 - 작업이 종료된 후 다음작업 수행, 비동기적- 작업이 종료되지 않아도 여러작업 수행) 병렬적인 연산방식으로 multi-thread를 수행할 수 있다. 임계구역문제 (Critical Section) 임계 구역 :멀티스레드 환경에서 여러 thread가 접근할 수 있는 공유자원에 대한 구역 임계구역문제 : 각 스레드가 공유변수에 접근하여 읽어서 값을 변경할 때 동시성의 문제로 변경되기 전에 값을 읽는 것 (Thread가 경쟁하는 부분) 동기화 동시..

IT자료실/Java 2022.04.26

Java (java.sql 패키지-2)

JDBC를 위한 utility 5가지 단계에서 코드를 간결하게 하는 방식을 알아보자 먼저 특정 DB로부터 Connection을 획득하고 종료하는 JDBCUtil class를 작성한다. public class JDBCUtil { public static Connection getConnection() { try { DriverManager.registerDriver(new 드라이버 이름()); String jdbcUrl = "JDBC URL 입력"; Connection con = DriverManager.getConnection(jdbcUrl, "ID", "Password"); } catch (SQLException e) { e.printStackTrace(); } return con; } public s..

IT자료실/Java 2022.04.22

Java (java.sql 패키지-1)

java.sql 패키지 DNMS : 데이터를 안전하고 효과적으로 관리하기 위해 사용 (ex.Oracle, MySQL) SQL : DBMS가 읽고 처리할 수 있는 독립적인 언어 SQL 종류 DDL (데이터가 저장되는 공간 = 테이블) CREATE : 테이블 생성 ALTER : 테이블 수정 DROP : 테이블 삭제 DML INSERT : 데이터 등록 UPDATE : 데이터 수정 DELETE : 데이터 삭제 JOIN : 데이터 결합 DQL SELETE : 데이터 검색 DLC GRANT : 권한 부여 REVOKE : 권한 취소 테이블은 클래스와 컬럼은 변수와 비슷한 성질 DDL 데이터가 저장 되는 공간을 정의하는 언어 데이터 등록 구조 칼럼이름 데이터타입(데이터크기) 제약조건 데이터 터입 문자 타입 : VARC..

IT자료실/Java 2022.04.21

Java (java.io 패키지)

java.io 패키지 java.io 패키지는 다양한 입력/출력 방식의 기능을 제공하지만 주로 현업에서 사용하는 건 문서 자료 형식의 자료의 입출력이다. Stream java.io 패키지 클래스들을 사용하려면 우선 Stream의 개념을 알아야 한다. 네트워크에서 자료의 흐름과 물의 흐름이 비슷하다고 하여 붙여진 이름이다. 저장소로 부터 프로그램으로 데이터를 읽어들이기 위한 연결을 "입력 스트림", 프로그램에서 목적지까지 데이터 출력을 "출력 스트림" 이라 한다. 비슷한 개념으로 한쪽으로만 흐르는 파이프를 생각하면 된다. 입출력 클래스의 분류 입력 스트림은 InputStream 과 Reader 가 있다. (나머지 입력 스트림은 두 클래스의 하위 클래스) 출력 스트림은 OutputStream 과 Writer ..

IT자료실/Java 2022.04.20

Java (인터페이스, 클래스 동시 상속 예제)

문제 직원들의 업무효율을 높이기 위한 프로그램 작성 일이 생기면 대기열에 저장되고 각 직원에게 배분이 됩니다. 배분이 되는 정책은 크게 세 가지가 있습니다. 모든 직원이 동일한 업무개수를 처리하도록 직원 순서대로 배분합니다. 쉬고 있거나 직원에게 할당된 업무의 수가 가장 적은 직원에게 배분합니다. 업무 등급에 따라 등급이 높은 업무는 업무능력이 우수한 직원에게 배분합니다. 세 가지 정책은 필요에 따라 바뀌어 운영될 수 있습니다. (RoundRobin, LeastJob, PriorityAllocation은 Scheduler와 상속 관계이며, Schduler는 getNextJob(), sendJobToCoworker() 메서드를 가진다.) 테스트 프로그램은 다음과 같다. public class Schedul..

IT자료실/Java 2022.04.19

Java (추상클래스, 템플릿 메서드 예제)

문제 해결을 오랜시간 고민하면서 풀었으나 답이 틀려 답안지를 보고 참고하였다... 문제 Player가 있고 Player는 GameLevel 속성을 가집니다. 각 GameLevel 단계 마다 run(), jump(), attack() 세 가지 기능이 업그레이드 됩니다. 초보자 레벨 : 천천히 달립니다. run() 만 가능 중급자 레벨 : 빠르게 달리고, 점프할 수 있습니다. run(), jump() 가능 고급자 레벨 : 엄청 빠르게 달리고, 높게 점프하고, 턴할 수 있습니다. run(), jump(), attack() 가능 Player는 한번에 하나의 레벨 상태만을 가질 수 있습니다. Player가 play() 중에 레벨에 있는 go(int count) 라는 메서드를 호출하면 run() 하고 count 횟..

IT자료실/Java 2022.04.16

Java(java.util 클래스, java collection, Generic)

Java.util 패키지 java.util.Date 클래스 날짜 데이터를 이용하는 경우 사용한다. new 를 이용해서 객체 생성하여 사용 java.util.Calender 클래스 Date 보다 더 정교하게 나온다. Date를 주로 사용 (Calender는 너무 많은 정보) 자바의 Collection 대표적으로 List, Set, Map이 있다. List, Set은 Collection Interface를 상속받고, Map은 그자체가 최상위 인터페이스다. java.util.List Collection List에서 주로 사용하는 ArrayList가 있다. List 컬렉션은 데이터를 등록할 때 순서 유지, 중복 허용이 된다.(데이터를 저장하고 관리하는 용도로 사용)ArrayList 인덱스를 이용하여 데이터를 저..

IT자료실/Java 2022.04.14