ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022-07-29 : JAVA & Spring
    TIL ( Today I Learned ) 2022. 7. 29. 17:01

    1. StringBuffer

    : 문자열을 추가하거나 변경할 때 주로 사용하는 자료형

     

    2. BufferedReader / BufferWriter

    : 버퍼를 이용해서 읽고 쓰는 함수, 이 함수는 버퍼를 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 많이 좋아짐

     

    - 버퍼 ( buffer )

        ㆍ데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역

        ㆍ입출력 속도 향상을 위해 버퍼를 사용

    - 버퍼 플러시 ( buffer flush )

        ㆍ버퍼에 남아있는 데이터를 출력 시킴 ( 버퍼를 비우는 동작 )

    - 버퍼를 이용한 입력 : BufferedReader

        ㆍscanner에 비해 빠르지만 데이터 가공이 필요

    - 버퍼를 이용한 출력 : BufferedWriter

        ㆍ콘솔 출력 함수같은 기능, 버퍼를 이용하기에 성능이 좋다.

     

    참고 자료 : https://jhnyang.tistory.com/92

    3. locale 클래스

    : 지역의 언어, 나라 등의 정보를 담고 있는 클래스

     

    4. GregorianCalendar 클래스

    : 날짜 세팅 클래스

     

    5. 사이트 데이터 읽기

    : 사이트 데이터를 읽는다는 것은 특정 URL을 입력하였을 때, HTML, JSON, XML, OpenAPI 등의 데이터를 읽어 들인다는 것을 의미한다

     

    1. openStream

    : 자바에서 기본적으로 제공하는 URL 객체에는 openStream이라는 하위 메소드를 가지고 있다. 이 메소드를 호출하게 되면, 매우 쉽게 사이트의 정보를 읽어들일 수 있다

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    import java.net.URL;
    
    public class main {
        
        public static void main(String[] args) throws Exception {
            String url = "https://www.oraccle.com/index.html";
            
            urlOpenStream(url);
        }
        
        public static void urlOpenStream(String _url) throws Exception {
            URL oracle = new URL(_url);
            
            BufferedReader in = new BufferedReader(
                                neww InputStreamReader(oracle.openStream(), "UTF8"));
                                
            String inputLine;
            while (inputLine = in.readLine()) != null)
                System.out.println(inputLine);
            in.close;
       }
    }

    - URL만 가지고, InputStreamReader에 스트림을 보내서 처리하는 것을 볼 수 있다. 이런 방식은 심플하지만, 커넥션의 문제등이 발생하는 등의 여러가지 설정을 추가로 할 수 없기 때문에 잘 쓰이지는 않는다.

     

    2. HttpURLConnection

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class main {
        
        public static void main(String[] args) throws Exception {
            String url = "https://www.oracle.com/index.html";
            
            urlConnection(url);
        }
        
        public static void urlConnection(String _url) throws Exception {
            URL url = null;
            BufferedReader reader = null;
            
            url = new URL(_url);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("GET");
            con.setReadTimeout(1000);
            con.connect();
            
            reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
            
            String inputLine = null;
            while ((inputLine = reader.readLine()) != null {
                System.out.println(inputLine);
            }
            
            reader.close();
        }
    }

    - HttpURLConnection을 사용하게 되면, 다양한 옵션 등을 설정할 수 있게 된다. GET, POST 설정이라든지 Timeout 설정부터 UserAgent 설정등을 사용하여, 보다 사용자가 원하는 형태로 구현할 수 있게 한다.

     

    URL 클래스

    - URL 클래스는 URL을 추상화하여 만든 클래스

    - URL 클래스는 final 클래스로 되어있기에 상속 X

    - 모든 생성자는 MalformedURLException 예외를 발생하기 때문에 반드시 예외처리

     

    URLConnection 클래스

    - 원격 자원에 접근하는데 필요한 정보를 가지고 있다.

    - 필요한 정보란 원격 서버의 헤더 정보, 해당 자원의 길이와 타입 정보, 언어 등을 얻을 수 있다

    - URL 클래스는 원격 서버 자원의 결과만을 가져 오지만, URLConnection 클래스는 원격 서버 자원의 결과와 원격 서버의 헤더 정보를 가져 올 수 있다.

     

     

    참고자료 : https://vividev.tistory.com/44

     

    'TIL ( Today I Learned )' 카테고리의 다른 글

    2022-08-02 : JAVA  (0) 2022.08.02
    2022-08-01 : webpack & React  (0) 2022.08.01
    2022-07-28 : Spring  (0) 2022.07.28
    2022-07-27 : 파일업로드 & buffer, 기타 등등  (0) 2022.07.27
    2022-07-26 : Git  (0) 2022.07.26

    댓글

Designed by Tistory.