728x90
예제 코드: 현재 도메인 정보를 가져와서 문장을 생성하는 코드
import java.net.InetAddress;
import java.net.UnknownHostException;
public class DomainInfoGenerator {
public static void main(String[] args) {
try {
// 1. 현재 시스템의 도메인 정보를 가져옴
String domainName = getDomainName();
// 2. 도메인 정보를 이용해 문장 생성
String domainMessage = createDomainMessage(domainName);
// 3. 생성된 문장 출력
System.out.println(domainMessage);
} catch (UnknownHostException e) {
System.out.println("도메인 정보를 가져올 수 없습니다: " + e.getMessage());
}
}
/**
* 현재 시스템의 도메인 이름을 반환하는 메서드
*
* @return 도메인 이름
* @throws UnknownHostException 도메인 이름을 가져올 수 없는 경우 발생
*/
private static String getDomainName() throws UnknownHostException {
// InetAddress 객체를 통해 현재 호스트의 정보를 가져옴
InetAddress inetAddress = InetAddress.getLocalHost();
// 도메인 이름을 반환 (호스트 이름)
return inetAddress.getHostName();
}
/**
* 도메인 정보를 받아 사용자에게 보여줄 문장을 생성하는 메서드
*
* @param domainName 도메인 이름
* @return 생성된 문장
*/
private static String createDomainMessage(String domainName) {
return "현재 시스템의 도메인 이름은 '" + domainName + "' 입니다.";
}
}
코드 설명
1. InetAddress.getLocalHost()
이 메서드는 InetAddress 클래스의 정적(static) 메서드로, 현재 시스템의 IP 주소 및 도메인 이름을 가져올 때 사용됩니다. 이 메서드는 내부적으로 호스트의 IP 주소를 검색하고, 그에 대응하는 호스트 이름(도메인)을 반환합니다.
예시:
InetAddress inetAddress = InetAddress.getLocalHost();
이 코드가 호출되면 inetAddress 객체는 시스템의 호스트 이름과 IP 주소 정보를 가지고 있습니다.
2. getHostName()
InetAddress 객체에서 호스트 이름(도메인 이름)을 가져오는 메서드입니다. 이 메서드는 시스템의 네트워크 인터페이스를 통해 연결된 도메인의 이름을 반환합니다.
예시:
String domainName = inetAddress.getHostName();
이 코드를 통해 현재 시스템의 도메인 이름을 가져올 수 있습니다. 만약 도메인 이름을 가져오는 데 실패하면 UnknownHostException 예외가 발생할 수 있습니다.
3. UnknownHostException
이 예외는 호스트 이름을 가져올 수 없을 때 발생하는 checked 예외입니다. 예를 들어, 네트워크 문제나 호스트가 올바르게 구성되지 않은 경우 이 예외가 발생할 수 있습니다. try-catch 블록으로 감싸 예외 상황에 대비해야 합니다.
예시:
try {
String domainName = getDomainName();
} catch (UnknownHostException e) {
System.out.println("도메인 정보를 가져올 수 없습니다.");
}
4. createDomainMessage(String domainName)
이 메서드는 가져온 도메인 정보를 이용해 사용자에게 전달할 메시지를 생성합니다. 매개변수로 받은 도메인 이름을 문장 내에 포함시켜 쉽게 사용자에게 표시할 수 있습니다.
예시:
String domainMessage = createDomainMessage(domainName);
결과는 다음과 같은 형식의 문자열이 됩니다:
"현재 시스템의 도메인 이름은 'my-hostname' 입니다."
- InetAddress 클래스의 활용: InetAddress 클래스는 Java 네트워크 프로그래밍에서 자주 사용되며, IP 주소와 호스트 이름을 다룰 수 있는 다양한 메서드를 제공합니다. 이를 통해 네트워크 상의 장치들 간의 정보를 쉽게 조회하고 관리할 수 있습니다.
- 실제 응용 예시: 이 코드는 서버 환경에서 서버의 도메인 이름을 동적으로 가져와 로그에 기록하거나 특정 비즈니스 로직에서 도메인 기반의 처리를 수행할 때 유용하게 사용될 수 있습니다.
- 예외 처리의 중요성: 도메인 정보를 가져오는 과정에서 네트워크가 불안정하거나 호스트 설정이 잘못된 경우 UnknownHostException이 발생할 수 있습니다. 따라서 네트워크 관련 코드를 작성할 때는 항상 예외 처리에 신경 써야 합니다.
LIST
'Develop > JAVA' 카테고리의 다른 글
[Java] BigDecimal 나누기 소수점 올림, 버림, 반올림 사용방법 (5) | 2024.10.21 |
---|---|
[Spring Boot] application.yml 변수 Java Static 변수에서 사용하는 방법 (12) | 2024.10.15 |
[Java] spring security 설정 csrf 특정 url 예외 처리 (6) | 2024.09.26 |
[Java] GET POST 메서드 REST API 호출 서비스 만들기 (6) | 2024.09.25 |
[Java] forEach 와 Stream API를 사용한 배열 처리 (9) | 2024.09.24 |