JAVA 35

[Java] ThreadLocal, 템플릿메서드 디자인패턴을 사용한 LogTrace 개발

✅ 목표각 요청별 실행 흐름을 추적하고, 예외 발생 시 원인을 정확히 파악할 수 있도록 하는 LogTrace 기능을 개발한다.로깅은 애플리케이션의 전반적인 로직에 포함되어야 하는 부가기능이다. 최대한 중복되는 코드를 작성하지 않도록 개발한다. 멀티스레드 환경에서 동시성 문제를 방지하고, 요청별 독립적인 로깅이 가능하도록 한다. LogTrace로그 추적 로직이 실행될 때 사용해야하는 메서드를 정의해놓은 인터페이스public interface LogTrace { TraceStatus begin(String message); void end(TraceStatus status); void exception(TraceStatus status, Exception e);} begin(): 실행 시작 ..

JAVA 2025.04.02

[JAVA] 이것이 자바다 !_6장 클래스

※ 6장_클래스 ▶ 6.1 객체 지향 프로그래밍 ▷ 객체지향 프로그래밍의특징 캡슐화 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다. 필드와 메소드를 캡슐화 하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다. 자바 언어는 캡슐화된 멤버를 노출시킬 것인지, 숨길 것인지를 결정하기 위해 접근제한자를 사용한다. 접근 제한자는 객체의 필드와 메소드의 사용 범위를 제한함으로써 외부로부터 보호한다. 상속 객체 지향 프로그래밍에서 상위 객체는 자기가 가지고 있는 필드와 메소드를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 해준다. 상속..

JAVA 2023.11.29

[JAVA] 네트워킹 NetWorking

※ 네트워킹(Networking) - 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것 - java.net 패키지를 사용하면 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있음 통신의 3대 요소 1. 서버(Server) - 서비스를 제공하는 컴뷰터 ex ) 웹 브라우저 프로그램 2.클라이언트(Client) - 서비스를 사용하는 컴퓨터 ex ) 웹서버,DBMS 3.네트워크(Network) : 서버와 클라이언트를 연결해줌 => 서버가 서비스를 제공하기위해서는 서버프로그램이 있어야하고 클라이언트가 서비스를 제공받기 위해서는 서버프로그램과 연결할 수 있는 클라이언트 프로그램이 있어야한다. ▶ InetAddress 패키지 - 자바에서는 IP 주소를 다루기 위한 클래스로 InetAddre..

JAVA 2022.04.17

[JAVA] Thread 스레드

※ 스레드 - 프로세스에서 작업을 처리하는 일꾼 / 별도의 실행 흐름 - 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재함 - 한 번 사용한 쓰레드는 다시 재사용할 수 없다 ▶ Thread 를 구현하는 두가지 방법 (면접질문으로 나왔었음) 1. Thread 클래스를 상속받는 방법 - Thread 클래스의 run()을 오버라이딩해서 작업한다 class MyThread1 extends Thread { public void run() { for (int i =0;igetName() ㄴ Thread currentThread() - 현재 실행중인 쓰레드의 참조를 반환 String getName() - 쓰레드의 이름을 반환 2. Runnable 인터페이스를 구현하는 방법 - Runnable 인터페이스에는 run..

JAVA 2022.04.14

[JAVA] IO

https://scshim.tistory.com/283A = 정리하고도 완벽하게 이해가 되지 않아서 여러 웹사이트를 찾아봤는데 개중 가장 잘 정리해둔 사이트. 추후에 또 헷갈리면 여기들어가서 먼저 보고, 내 정리 보기 자바에서의 입출력(I/O) ▶ 입출력 - 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고 받는 것 ex ) 키보드로부터 데이터를 입력 받는다거나 System.out.println() 을 이용해서 화면(모니터)에 출력한다거나 하는 것 ※ 스트림 - 어느 한쪽에서 다른 쪽으로 데 이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림이라고 함 - 데이터를 운반하는데 사용되는 연결통로이다. - 단방향 통신만 가능하다 따라서 입력과 출력..

JAVA 2022.04.13

[JAVA] GUI / 계속 추가예정

※ GUI 작업 ▶ 콤보박스에 추가 하는 방법 1. 콤보박스의 addItem 메서드 이용해서 추가하기 (기존+신규) - 단순항목추가 cbPdName.addItem("java"); cbPdName.addItem("Spring"); cbPdName.addItem("Oracle"); 2. 배열 모델(model) 이용 - model 로 따로 분리해서 작업하는 것 : 콤보 - 모델 - 데이터 - 기존에 있었던것 보두 삭제되고 추가되는 거임 String[] arr = {"사과","배","귤"}; DefaultComboBoxModel cModel = new DefaultComboBoxModel(arr); cbPdName.setModel(cModel); // 콤보랑 데이터를 모델로 연결 3. vector 모델 이용 -..

JAVA 2022.04.11

[JAVA] AWT.EVENT

※ Event - 사용자나 프로그램 코드에 의해서 발생할 수 있는 사건 ex ) 사용자가 마우스를 움직이거나 클릭할 때, 키보드를 눌렀을 때, Frame의 크기를 변경할 때 이벤트 발생 · Event Source : 이벤트 발생지 - 이벤트가 발생한 컴포넌트 · Event Handler : 이벤트 처리기 - 이벤트가 발생했을 때 실행될 코드를 구현 해 놓은 클래스 · Event Listener : 이벤트 감지기 - 이벤트를 감지하고 처리함 = > ★ Event Handler를 Event Listener를 이용해 Event Source에 연결해 이벤트 처리를 하는 것. - 이벤트 처리 ? : 이벤트가 발생했을때 적절한 작업수행하는 것 ▶ 이벤트 처리방법 1 ) 이벤트 메서드 중에서 필요한 것 (window..

JAVA 2022.04.06

[JAVA] AWT

※ AWT (Abstract Window Toolkit) - Window프로그래밍 (GUI 프로그래밍)을 하기 위한 도구 - GUI 어플리케이션의 개발에 필요한 여러 개의 관련 패키지와 클래 스의 집합으로 구성 GUI (Graphic User Interface) - 사용자가 그래픽을 통해서 하드웨 어와 상호작용하는 환경을 말함 - AWT 는 해당 OS의 컴포넌트(native component)를 사용하기 때문에 AWT로 작성된 GUI 어플리케이션의 외양이 실행되는 OS마다 달라질 수 있다 - Swing : AWT 를 확장한 것. - Swing은 AWT를 확장한 것으로 AWT와는 달리 순수한 자바로 이루어져 있어서 AWT보다 다양하고 풍부한 기능의 컴포넌트를 제공한다. - Swing의 클래스들이 AWT의 ..

JAVA 2022.04.05

[JAVA] DTO / DAO

▶ DTO (Data Transfer Object ) VO(Valued Object)나 Beans라고도 불리며 데이터를 저장하고 관리하는 클래스로, 데이터 자체라고도 볼 수 있으며, 테이블의 컬럼과 비슷한 구성의 멤버변수를 가지고 있고, 멤버변수는 private으로 보호되며, 클래스 외부에서는 public getter/setter를 통해 멤버변수에 접근하고 수정할 수 있다. ▶ DAO (Data Access Object) 데이터 베이스와 관련된 작업을 모아놓은 클래스로, 입력, 수정, 검색, 삭제 등의 작업(CRUD)을 정의해서 캡슐화 해놓은 클래스이다 이론이랄게 없다.. 실습을 최대한 많이 하면서 내껄로 만들어보자 아좌좟 테이블에 입력, 수정, 삭제 등의 작업을 하기위해서는 1. 드라이버 로딩 클래스 ..

JAVA 2022.04.04

[JDBC] 오라클 developer - JAVA eclipse 연동 / JDBC 프로그래밍 순서

※ 오라클 developer - JAVA eclipse 연동하기 와 ! 연동하다가 울뻔했다. 구글링해도 자료 없었다. 공공의 이익을 위해서. 올린다. C:\app\EZEN\product\18.0.0\dbhomeXE\jdbc\lib 경로에서 ojdbc 8 복사해서 C:\Java\jdk1.8.0_321\jre\lib\ext 여기에 붙여넣기 시스템 설정 > 고급 > 환경변수 > classpath 편집 들어가서 %classpath%;.;C:\Java\jdk1.8.0_321\jre\lib\ext\ojdbc8.jar 환경변수 셋팅하기 이클립스 > 프로젝트 이름 우클릭 > build path > configure build path > 우측에 Add External JARs > C:\Java\jdk1.8.0_321\..

JAVA 2022.04.01