[JAVA] HttpURLConnection 이용한 POST 호출 방법
·
STUDY/JAVA
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..
[JAVA] 동기화 sychronized
·
STUDY/JAVA
스레드동기화와 상호배제란? 동기화 : 여러 스레드나 프로세스가 공유 자원에 접근할 때, 동시에 접근하는 것을 막고 순서를 조정하여 데이터 일관성을 유지하는 것을 의미합니다. 멀티 스레드 환경에서 여러 스레드가 동시에 공유 자원에 접근할 때, 스레드 간의 경쟁이 발생합니다. 이 경쟁은 예상치 못한 결과를 초래할 수 있으며, 스레드 간의 실행 순서나 작업을 조율하지 않으면, 데이터 일관성을 유지할 수 없게 됩니다. 따라서 스레드 간의 동기화는 상호 배제, 메시지 전달, 교착 상태 등의 문제를 방지하고, 프로그램의 안정성과 일관성을 유지하는 데 중요한 역할을 합니다. 자바에서는 synchronized 를 사용하여 스레드 간의 동기화를 구현할 수 있습니다. 상호배제 : 공유 자원을 여러 프로세스나 스레드에서 동..
[JAVA] ReentrantLock 설명
·
STUDY/JAVA
ReentrantLock란? 동기화된 메소드와 문장을 사용하여 액세스 할 수 있는 암시적인 모니터 잠금 기능과 같은 기본적인 동작과 의미를 가진 Reentrant 상호 간의 상호 배제된 상호 배제 잠금 기능을 의미한다. 이는 마치 뮤텍스와 많이 흡사한 모습을 띄고 있다. 즉, 상호 배타적 락이며 기본적으로 synchronized 키워드를 이용한 암시적인 모니터와 같이 동작한다. 동기화에는 아래와 같은 내용들이 있는데 이중 ReentrantLock는 Mutex라고 생각하면 쉽다. 방법 설명 임계영역(critical section) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. (하나의 프로세스에 속한 스레드만 가능하다) 뮤텍스 (mutex) 공유 자원에 대해 단 하나의 스레드만 접근하도록 한다. ..
[JAVA] JAVA Exception 에러 출력
·
STUDY/JAVA
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..
[JAVA] java.net.Socket
·
STUDY/JAVA
java.net.Socket java.net.Socket은 자바에서 네트워크 통신을 위해 사용되는 클래스 중 하나입니다. 이 클래스를 사용하면 클라이언트와 서버 간의 소켓* 연결을 생성하고 관리할 수 있습니다. 소켓 연결을 생성하려면 Socket 클래스의 생성자를 호출하여 연결하려는 서버의 IP 주소와 포트 번호를 전달해야 합니다. 이렇게 생성된 Socket 객체를 사용하여 클라이언트와 서버 간에 데이터를 읽고 쓸 수 있습니다. Socket 클래스는 TCP/IP 프로토콜을 기반으로한 연결 지향적인 소켓 통신을 제공합니다. 또한, InetAddress 클래스를 사용하여 IP 주소를 가져오거나 설정할 수 있으며, InputStream 및 OutputStream 클래스를 사용하여 데이터를 전송할 수 있습니다...
[JAVA] future 란 무엇일까?
·
STUDY/JAVA
Java에서 "Future"는 비동기 작업의 결과를 나타내는 인터페이스입니다. 즉, Future 객체를 사용하면 작업을 시작하고 결과를 얻기 위해 블로킹*하지 않고 다른 작업을 수행할 수 있습니다. *블로킹(Blocking) 한 작업이 완료될 때까지 다른 작업을 중지시키는 것 Java에서 "Future"는 비동기 작업의 결과를 나타내는 인터페이스입니다. 즉, Future 객체를 사용하면 작업을 시작하고 결과를 얻기 위해 블로킹*하지 않고 다른 작업을 수행할 수 있습니다. *블로킹(Blocking) : 한 작업이 완료될 때까지 다른 작업을 중지시키는 것 Future 인터페이스는 작업의 상태를 확인하고 작업이 완료되면 결과를 얻을 수 있는 기능을 제공합니다. Future를 사용하기 위해서는 비동기 작업을 생..
[JAVA] System.exit()은 무엇일까?
·
STUDY/JAVA
System.exit() 강제적으로 JVM을 종료시키고 싶을 때는 System 클래스의 exit() 메소드를 호출하면 됩니다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 합니다. exit() 메소드는 int 매개값을 지정하도록 되어 있습니다. 이 값을 종료 상태값이라고 합니다. 일반적으로 정상 종료일 경우 0으로 지정하고 비정상 종료일 경우 0이외의 다른값을 줍니다. System.exit(0); //정상종료 System.exit(1); //비정상종료 System.exit(0)은 프로그램이 정상적으로 종료되었을 때 호출되며, System.exit(1)은 프로그램이 오류로 인해 비정상적으로 종료되었을 때 호출됩니다 System.exit()메서드는 어떤 값을 주더라도 종료가 되..
[JAVA] Logging이란?
·
STUDY/JAVA
Logging이란? Log : 시스템 동작 시 시스템 상태, 작동 정보를 시간의 경과에 따라 기록한 것 Logging : 정보를 제공하는 일련의 기록인 Log를 생성하도록 시스템을 작성하는 활동을 말합니다. 저장된 Log는 사용자의 패턴이나 시스템 동작 자체의 분석에 사용될 수 있으며 해킹이나 침입 등의 사고가 발생한 경우 비정상 동작의 기록을 통해 감사 추적을 수행할 수 있습니다. Logging의 장점 Log는 재현하기 힘든 버그에 대한 유용한 정보를 제공 Log는 성능에 관한 통계와 정보를 제공할 수 있음 설정이 가능할 때, Log는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코딩하지 않아도 일반적인 정보를 갈무리할 수 있음 Java.util.logging Java.util...