STUDY/JAVA

STUDY/JAVA

[JAVA] 자바 로그 - Logger

slf4j 로깅 라이브러리를 사용해 로그를 기록해보자. 1. LoggerFactory 클래스의 getLogger() 메서드를 사용하여 로거를 생성합니다. 2. Logger 클래스의 메서드를 사용하여 로그를 기록합니다. 로그 레벨 : TRACE > DEBUG > INFO > WARN > ERROR 예를 들어, 다음 코드는 Hello, world! 메시지를 로그로 기록합니다. import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { private static final Logger logger = LoggerFactory.getLogger(HelloWorld.class); public static void main(S..

STUDY/JAVA

[JAVA] 자바 스레드(Thread) 총정리

프로세스와 스레드 설명 프로세스 운영체제에서는 실행중인 하나의 애플리케이션을 프로세스라고 부른다 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행 스레드 스레드의 사전적의미로는 한가닥의 실이라는 뜻. 하나의 스레드는 하나의 코드실행흐름을 뜻함. 한프로세스내에 스레드가 두개라면? 두개의 코드 실행흐름이 생긴다는 의미 프로세스와 스레드의 주요 차이점 프로세스는 독립적인 실행 단위이고, 각각 고유한 주소 공간, 메모리, CPU 및 파일을 가지며, 프로세스 간에 이러한 자원을 공유할 수 없음. 스레드는 프로세스 내에서 실행되는 실행 흐름으로, 프로세스의 메모리, CPU 및 파일을 공유함. 스레드는 프로세스 내에서 동시에 실행될 수 있으므로 프로그램의 성능을..

STUDY/JAVA

[JAVA] 람다와 스트림 (함수형프로그래밍) 맛보기

펌글 : 출처 https://wikidocs.net/157858 07-06 함수형 프로그래밍 자바는 Java 8 버전부터 함수형 프로그래밍을 지원하기 위해 람다(Lambda)와 스트림(Stream)이 도입되었다. 람다와 스트림을 사용하면 요새 유행하는 함수형 프로그래밍 … wikidocs.net 람다(Lambda) 람다는 익명 함수(Anonymous functions)를 의미한다. 예제를 통해 람다에 대해서 자세히 알아보자. 일반적인 코드 먼저 다음과 같은 인터페이스를 보자. interface Calculator { int sum(int a, int b); } 두 개의 정수를 입력으로 받아 정수의 결과값을 리턴하는 sum 함수를 정의한 인터페이스이다. Calculator 인터페이스를 사용하려면 다음처럼 ..

STUDY/JAVA

[JAVA] HttpURLConnection 이용한 POST 호출 방법

HttpURLConnection HttpURLConnection은 서버에서 HTTP 요청을 보내고 HTTP 응답을 받을 수 있도록 하는 Java의 클래스입니다. 다음은 HttpURLConnection을 사용하여 서버에 POST 요청을 보내고 응답을 읽는 방법의 예입니다. 1. URL 객체 생성하기 url을 나타내는 URL 객체를 생성하고 싶다면 다음과 같이 코드를 작성하면 됩니다. URL url = new URL("https://www.google.com"); // 요청을 보낼 URL 공식 Java API 문서를 보면, 위에서 사용한 생성자를 비롯하여 모든 URL 클래스 객체의 생성자는 MalformedURLException예외를 throws 하여 예외처리에 대한 책임을 전가하고 있습니다. Malform..

STUDY/JAVA

[JAVA] 동기화 sychronized

스레드동기화와 상호배제란? 동기화 : 여러 스레드나 프로세스가 공유 자원에 접근할 때, 동시에 접근하는 것을 막고 순서를 조정하여 데이터 일관성을 유지하는 것을 의미합니다. 멀티 스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 스레드 간의 경쟁이 발생합니다. 이 경쟁은 예상치 못한 결과를 초래할 수 있으며, 스레드 간의 실행 순서나 작업을 조율하지 않으면, 데이터 일관성을 유지할 수 없게 됩니다. 따라서 스레드 간의 동기화는 상호 배제, 메시지 전달, 교착 상태 등의 문제를 방지하고, 프로그램의 안정성과 일관성을 유지하는 데 중요한 역할을 합니다. 자바에서는 synchronized 를 사용하여 스레드 간의 동기화를 구현할 수 있습니다. 상호배제 : 공유 자원을 여러 프로세스나 스레드에서 동..

STUDY/JAVA

[JAVA] ReentrantLock 설명

ReentrantLock란? 동기화된 메소드와 문장을 사용하여 액세스 할 수 있는 암시적인 모니터 잠금 기능과 같은 기본적인 동작과 의미를 가진 Reentrant 상호 간의 상호 배제된 상호 배제 잠금 기능을 의미한다. 이는 마치 뮤텍스와 많이 흡사한 모습을 띄고 있다. 즉, 상호 배타적 락이며 기본적으로 synchronized 키워드를 이용한 암시적인 모니터와 같이 동작한다. 동기화에는 아래와 같은 내용들이 있는데 이중 ReentrantLock는 Mutex라고 생각하면 쉽다. 방법 설명 임계영역(critical section) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. (하나의 프로세스에 속한 스레드만 가능하다) 뮤텍스 (mutex) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. ..

STUDY/JAVA

[JAVA] JAVA Exception 에러 출력

JAVA Exception 에러 출력 방법 3가지 e.getMessage() : 에러의 원인을 간단하게 출력합니다. e.toString() : 에러의 Exception 내용과 원인을 출력합니다. e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력합니다. JAVA Exception 에러 출력 예 public class ExceptionHandlingExample { public static void main(String[] args) { try { int[] arr = new int[5]; arr[10] = 50; // 예외 발생 } catch (ArrayIndexOutOfBoundsException e) { // getMessage() 메소드 사용 예제 System.o..

STUDY/JAVA

[JAVA] java.net.Socket

java.net.Socket java.net.Socket은 자바에서 네트워크 통신을 위해 사용되는 클래스 중 하나입니다. 이 클래스를 사용하면 클라이언트와 서버 간의 소켓* 연결을 생성하고 관리할 수 있습니다. 소켓 연결을 생성하려면 Socket 클래스의 생성자를 호출하여 연결하려는 서버의 IP 주소와 포트 번호를 전달해야 합니다. 이렇게 생성된 Socket 객체를 사용하여 클라이언트와 서버 간에 데이터를 읽고 쓸 수 있습니다. Socket 클래스는 TCP/IP 프로토콜을 기반으로한 연결 지향적인 소켓 통신을 제공합니다. 또한, InetAddress 클래스를 사용하여 IP 주소를 가져오거나 설정할 수 있으며, InputStream 및 OutputStream 클래스를 사용하여 데이터를 전송할 수 있습니다...

STUDY/JAVA

[JAVA] future 란 무엇일까?

Java에서 "Future"는 비동기 작업의 결과를 나타내는 인터페이스입니다. 즉, Future 객체를 사용하면 작업을 시작하고 결과를 얻기 위해 블로킹*하지 않고 다른 작업을 수행할 수 있습니다. *블로킹(Blocking) 한 작업이 완료될 때까지 다른 작업을 중지시키는 것 Java에서 "Future"는 비동기 작업의 결과를 나타내는 인터페이스입니다. 즉, Future 객체를 사용하면 작업을 시작하고 결과를 얻기 위해 블로킹*하지 않고 다른 작업을 수행할 수 있습니다. *블로킹(Blocking) : 한 작업이 완료될 때까지 다른 작업을 중지시키는 것 Future 인터페이스는 작업의 상태를 확인하고 작업이 완료되면 결과를 얻을 수 있는 기능을 제공합니다. Future를 사용하기 위해서는 비동기 작업을 생..

STUDY/JAVA

[JAVA] System.exit()은 무엇일까?

System.exit() 강제적으로 JVM을 종료시키고 싶을 때는 System 클래스의 exit() 메소드를 호출하면 됩니다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 합니다. exit() 메소드는 int 매개값을 지정하도록 되어 있습니다. 이 값을 종료 상태값이라고 합니다. 일반적으로 정상 종료일 경우 0으로 지정하고 비정상 종료일 경우 0이외의 다른값을 줍니다. System.exit(0); //정상종료 System.exit(1); //비정상종료 System.exit(0)은 프로그램이 정상적으로 종료되었을 때 호출되며, System.exit(1)은 프로그램이 오류로 인해 비정상적으로 종료되었을 때 호출됩니다 System.exit()메서드는 어떤 값을 주더라도 종료가 되..

STUDY/JAVA

[JAVA] Logging이란?

Logging이란? Log : 시스템 동작 시 시스템 상태, 작동 정보를 시간의 경과에 따라 기록한 것 Logging : 정보를 제공하는 일련의 기록인 Log를 생성하도록 시스템을 작성하는 활동을 말합니다. 저장된 Log는 사용자의 패턴이나 시스템 동작 자체의 분석에 사용될 수 있으며 해킹이나 침입 등의 사고가 발생한 경우 비정상 동작의 기록을 통해 감사 추적을 수행할 수 있습니다. Logging의 장점 Log는 재현하기 힘든 버그에 대한 유용한 정보를 제공 Log는 성능에 관한 통계와 정보를 제공할 수 있음 설정이 가능할 때, Log는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코딩하지 않아도 일반적인 정보를 갈무리할 수 있음 Java.util.logging Java.util...

STUDY/JAVA

[JAVA] JavaBean이란

웹사이트는 디자이너와 프로그래머가 함께 개발 합니다. 프로그래머가 JSP페이지를 작업시 자바코드 만을 입력하게 되면 소스가 길어지고 디자이너 입장에서 알아보기 힘듭니다. 디자이너가 JSP 페이지를 수정하기 힘들어 효율이 떨어 집니다. 그래서 등장한것이 JAVA Bean 입니다. 일반적으로 정보를 표현할 때에는 자바빈(java bean)의 형태를 갖는 클래스를 사용하게 됩니다. 예를 들어, 회원정보, 게시판 글 등의 정보를 출력할때, 정보를 저장하고 있는 자바빈 객체를 사용하게 됩니다. 자바빈(JavaBean) 모듈화된 MVC에서 View가 JSP라면, M(Model)에 해당하는 것이 Bean 입니다. 모델이 프로그램 로직을 가지고 있고 DB와 연동을 해서 작업을 하듯이 자바빈도 동일한 역할을 합니다. (..

ReCode.B
'STUDY/JAVA' 카테고리의 글 목록 (3 Page)