개발새발

[Java] API 본문

Java/개념을 Java

[Java] API

칸쵸. 2023. 9. 14. 00:35
728x90

**API (Application Programming Interface)

응용프로그램에서 다른 소프트웨어와 상호작용을 할 수 있도록 제공되는 일련의 규칙과 명령어 집합

다른 서비스, 라이브러리, 운영체제 또는 플랫폼과 통신하기 위해 사용

프로그래머에게 특정 서비스 또는 라이브러리와 상호작용할 수 있는 방법을 제공

HTTP 요청을 통해 데이터를 전송하고 받는 형태로 사용

 

**SDK (Sofrware Development Kit)

특정 소프트웨어 또는 하드웨어 플랫폼에 대한 개발 도구와 리소스 집합

Skd는 개발자가 특정 플랫폼 또는 서비스를 활용해서 응용 프로그램을 만들 때

필요한 도구, 라이브러리, 예제코드 및 문서를 포함

일반적으로 API 호출을 추상화하고 개발자에게 보다 쉬운 방법으로 상호작용 가능한 인터페이스 제공

 

 

말이 너무 어려워요옹.. 하지만 코드 예시를 좀 작성하다보니 감이 온다!

간단하게 말을 하자면

 

API : 구현된 기능을 가져다 쓸 수 있는 명령어
SDK: 기능을 구현하는데 필요한 재료를 다 드릴게요 만들어보세요

 

사실 우리가 자연스럽게 쓰고있는 System.out.println()도, String기능도 어떤 훌륭하신 분이 저 코드만 입력하면 바로 출력하고 문자열 기능을 쓸 수 있게끔 구현해놓은 API라고 볼 수 있다.

 


오늘 배운 API에는 다음 예시들이 있다

 

1. Calendar

날짜와 시간을 다루기 위해 쓰이는 클래스 ex) 현재 날짜와 시간 가져오기

사용하기 위해서는 'java.util.Calendar' import 필요

**주의: Month는 0월부터 취급되기 때문에 원하는 날짜에 해당하는 달을 출력하려면 +1을 해줘야 함

package api;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalenderMain {

	public static void main(String[] args) {
		//Calendar 클래스를 사용한 현재 날짜와 시간 가져오기
		Calendar calendar = Calendar.getInstance();
		
		int year = calendar.get(calendar.YEAR);
		int month = calendar.get(calendar.MONTH);
		int day = calendar.get(calendar.DAY_OF_MONTH);
		int hour = calendar.get(calendar.HOUR_OF_DAY);
		int minute = calendar.get(calendar.MINUTE);
		int second = calendar.get(calendar.SECOND);
		
		System.out.println("calendar 클래스를 사용한 현재 날짜와 시간");
		System.out.print(year + "년 ");
		System.out.print(month + "월 ");
		System.out.print(day + "일 ");
		System.out.print(hour + "시 ");
		System.out.print(minute + "분 ");
		System.out.println(second + "초");
		
		//GregorianCalendar 클래스를 활용한 현재 날짜와 시간 가져오기
		GregorianCalendar gCalendar = new GregorianCalendar();
		year = gCalendar.get(Calendar.YEAR);
		month = gCalendar.get(Calendar.MONTH) +1; //0월부터 인식한다
		day = gCalendar.get(Calendar.DAY_OF_MONTH);
		System.out.println(year + "년 " + month + "월 " + day + "일");

	}

}

Calendar출력창

 

2. Date

날짜와 시간 정보를 나타내는데 사용

java.time. + LocalDate, LocalTime, LocalDateTime을 통해 사용 가능

 

3. Object

모든 자바 클래스의 최상위 클래스로, 모든 클래스가 기본적으로 Object를 상속받음

 

  • equal() : 객체의 내용이 다른 객체와 같은지 비교
  • hashcode() : 객체의 해시 코드를 반환
  • toString() : 객체를 문자열로 표현하는데 사용
  • getClass() : 객체의 클래스 정보를 반환
  • clone() : 객체의 복사본을 생성
  • finalize() : 객체가 가비지컬렉션 될 때 호출
  • wait() : 대기

등등이 존재한다

 

4. Replace

글자 자체를 교체(replace) 하는 기능을 가진 메서드

문자열 내에서 특정 문자열 또는 문자를 다른 문자열 또는 문자로 교체하는데 사용된다

문자열에서 특정 패턴을 찾아서 변경할 때 유용함

package com.kh.api.exam1;

public class ReplaceMain {
	//글자 자체를 교체
	public static void main(String[] args) {
		/*
		String input = "Hello, world!";
		String reInput = input.replace(" ", "-"); //공백을 하이픈으로 변경
		System.out.println(reInput); //출력값: Hello,-world!
		
		String input2 = reInput.replace("-"," ");
		System.out.println("input2 : " + input2);
		*/
		
		ReplaceMain rm = new ReplaceMain(); //클래스 인스턴트 rm생성
		rm.replace(); //인스턴트에 메서드 적용
		rm.replace2();
		rm.replace3();
		rm.replace4();
		rm.replaceAll();
	}
	
	public void replace() {
		String input = "Hello World!";
		//World를 Java로 교체
		String reInput = input.replace("World" , "Java");
		System.out.println(reInput);
	}
	
	public void replace2() {
		String originName = "Hello World!";
		// 'o'로 적혀있는 문자열들 'x'로 변경하기
		String reName = originName.replace("o", "x");
		System.out.println(reName);
	}
	
	public void replace3() {
		String originString = "The quick brown fox jumps over the lazy dog";
		//fox를 cat으로 바꾸기
		String reString = originString.replace("fox", "cat");
		System.out.println(reString);
		
	}

	public void replace4() {
		String originString = "The quick brown fox jumps over the lazy dog";
		//모든 공백 제거하기
		String reString = originString.replace(" ", "");
		System.out.println(reString);
	}
	
	public void replaceAll() {
		String originString = "Hello World";
		//replace 대신 replaceAll을 이용해서 대소문자 구분없이 문자열 치환하기
		String reAllstr = originString.replaceAll("(?i)world", "Java");
		
		System.out.println(reAllstr);
		
	}
}

Replace 출력창

5. StringTokennizer

문자열을 특정 구분자를 기준으로 토큰으로 분리하는데 사용

가변적 문자열, 문자열이 변경이나 조작이 필요한 경우 사용

입력 문자열을 파싱하거나 특정 형식의 문자열을 분해하는데 유용하다

**파싱(Parsing): 데이터를 분해 분석하여 원하는 형태로 조립하고 다시 빼내는 것

**토큰: 쪼개진 문자열

 

문자열 교체 자체에 기능을 둔 replace와는 다르

package com.kh.api.exam1;

public class StringBufferMain {
 
	public static void main(String[] args) {
		//빈 StringBuffer 객체 생성
		StringBuffer sb = new StringBuffer();
		
		//문자열 추가
		sb.append("Hello, ");
		sb.append("Java ");
		sb.append("StringBuffer!");
		
		//문자열 출력
		System.out.println(sb.toString());
		
		//문자열 삽입
		sb.insert(6,  "Eclipse"); //6번째자리부터 이클립스 워드 삽입
		System.out.println(sb.toString());
		sb.replace(13, 17, "WwowW");
		System.out.println(sb.toString());

		//문자열 삭제
		sb.delete(13,20);
		System.out.println(sb.toString());
		
		//문자열 뒤집기
		sb.reverse();
		System.out.println(sb.toString());
		
		
	}

}

StringBuffer출력창

 

 

 

6. Wrapper

여기서부터는 졸리므로 다음에 시간나면 추가하기...

 

'Java > 개념을 Java' 카테고리의 다른 글

[Java] 배열과 리스트 2 : ArrayList  (0) 2023.09.20
[Java] 배열과 리스트 1 : Array ~ 다차원 배열  (1) 2023.09.18
[Java] 추상클래스 Abstract  (0) 2023.09.12
[Java] 변수의 종류  (0) 2023.09.12
[Java] 생성자와 this  (0) 2023.09.11