전체 글
-
[Java] Selenium(셀레니움)프로그래밍/JAVA 2022. 8. 18. 12:21
Selenium은 웹 크롤러를 간편하게 테스트하고 만들기 위한 프로그램으로 C#, java, PHP, Python 등 많은 언어를 지원하고 리눅스, 원도우, 맥등 다양한 환경에서 구동이 가능하다. 1. 셀리니움 라이브러리 다운로드 https://www.selenium.dev/downloads/ Downloads Selenium automates browsers. That's it! www.selenium.dev 라이브러리를 추가해준다. 2. 크롬드라이버 설치 먼저 크롬드라이버 설치 이전에 크롬 버전을 알아야한다. 아래와 같이 들어가면, 버전을 확인할 수 있고 이후 링크에서 맞는 드라이버를 다운로드 받아준다. https://chromedriver.chromium.org/downloads ChromeDriv..
-
[Java] 크롤링(Crawling)프로그래밍/JAVA 2022. 8. 17. 12:26
Crawling 혹은 scraping은 인터넷 또는 컴퓨터에 나눠 저장되어있는 문서를 수집 및 추출하여 색인으로 포함시키는 기술이다. 크롤링하는 프로그램을 크롤러(crawler)라고 부른다. 크롤링 하기위해서는 https://jsoup.org/download 페이지에서 관련 라이브러리를 다운받으면된다. Download and install jsoup Download and install jsoup jsoup is available as a downloadable .jar java library. The current release version is 1.15.2. What's new See the 1.15.2 release announcement for the latest changes, or the c..
-
[Java] LocalDateTime프로그래밍/JAVA 2022. 8. 16. 12:59
java.time 패키지에는 날짜를 표현하는데 사용되는 LocalDate 클래스와 시간을 표현하는데 사용되는 LocalTime 클래스, 날짜와 시간을 동시에 출력하는 LocalDateTime 클래스가 있다. now() 메소드는 현재 날짜와 시간을 객체로 생성하여 반환한다. of() 메소드는 특정 날짜와 시간을 지정하여 객체로 생성하여 반환한다. LocalDateTime now = LocalDateTime.now(); System.out.println(now); LocalDateTime targetTime = LocalDateTime.of(2022,01,01,10,22,00); System.out.println(targetTime); /* 실행결과 2022-08-16T12:30:00.000 2022-01-..
-
[Java] swing프로그래밍/JAVA 2022. 8. 16. 12:34
GUI(Graphical User Interface)는 그래픽을 이용하여 사용자에게 이해하기 쉽고 사용하기 쉬운 입출력 인터페이스를 의미하며 마우스나 키보드를 이용하여 직관적으로 입출력이 가능하다. AWT는 Java1.0에 포함된 운영체제가 제공하는 네이티브 UI컴포넌트를 이용하는 자바 라이브러리로 자바 애플리케이션이 실행되는 운영체제에 따라 UI의 모양이 서로 모양이 다르고 종류도 제한적인 단점이 존재한다. swing은 자바의 GUI(Graphic User Interface) 프로그래밍에 필요한 각종 킷을 모아놓은 것으로 GUI의 기능들을 구현할 수 있는 2D, Drag&Drop 등 을 지원한다. AWT와 달리 자바 프로그래밍 자체적인 컴포넌트이므로 플랫폼에 관계없이 모양이 동일하게 사용된다. JFra..
-
[Java] 소켓 통신(socket)프로그래밍/JAVA 2022. 8. 15. 14:20
들어가기 앞서 관련 용어 정리 네트워크(Network) : 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용형태 인터넷(Internet) : 컴퓨터로 연결하여 TCP/IP 프로토콜을 이용하여 정보를 주고 받는 네트워크 IP(internet protocol) : 인터넷의 연결되어있는 모든 장치를 식별할 수 있도록 장비에게 부여되는 고유주소 포트(Port) : 컴퓨터나 통신장비에서 다른 장치에 물리적으로 접속되는 특정한 통로 소켓(socket) : 두 호스트 사이 연결, 어떠한 방식으로 통신을 할지 정해주는 것 버퍼(buffer) : 입출력을 수행하는데 있어 속도차이를 극복하기 위해 사용하는 임시 저장 공간. 프로그래밍이나 운영체제에서 CPU와 보조기억장치 사이에서 사용되는 임시 저장 공간을 뜻함..
-
[Java] 람다 표현식(lambda expression)프로그래밍/JAVA 2022. 8. 15. 13:51
람다 표현식은 Java SE 8부터 제공되어, 메소드를 하나의 식으로 표현한 것으로 메소드의 이름은 생략하여 표기하는 익명 메소드 중 하나이다. 람다 표현식을 사용하면, 불필요한 코드를 줄일 수 있고 코드의 가독성을 높여주는 장점이 있다. 람다 표현식을 작성하기 위해서는 ( -> ) 화살표 기호를 사용한다. (매개변수목록) -> { 함수몸체 } 람다 표현식을 작성할 때 유의 사항을 알아보면 1. 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략이 가능하다. 2. 매개변수가 하나인 경우에는 괄호를 생략할 수 있다. 3. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호를 생략할 수 있다. 4. 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호를 생략할 수 없다. 5. ret..
-
[Java] 스레드 동기화(Thread Synchronization)프로그래밍/JAVA 2022. 8. 14. 21:40
멀티 스레드 프로세스에서는 다른 스레드의 작업에 영향을 미칠 수 있기 때문에, 진행중인 작업이 다른 스레드에 간섭을 받지 않게 하기 위해 동기화(Synchronization) 라는 작업이 필요하다. 동기화는 간섭받지 않아야 하는 문장 또는 메소드를 락(lock)을 걸어 단 하나의 스레드만 출입이 가능하게 해준다. 마치 음식점 주문을 한명씩 받는 듯한 모습을 떠올리면 이해하기 쉽다. 멀티 스레드 프로그램에서 단 하나의 스레드만 실행 할 수 있는 코드 영역을 임계영역이라고하며, 자바에서 임계영역을 지정하기 위해 동기화 메소드를 제공한다. 스레드가 객체 내부의 동기화 메소드를 실행하면 즉시 객체에 잠금을 걸어 다른 스레드가 동기화 메소드를 실행 하지 못하도록 한다. 동기화 메소드를 만들기 위해서는 메소드 선언..