프로그래밍/JAVA
-
[Java] Optional<T>프로그래밍/JAVA 2023. 3. 12. 10:54
Optional을 사용하면 예상치 못한 NullPointerException 예외를 제공되는 메소드로 간단히 회피할 수 있다. 즉, 복잡한 조건문 없이도 널(null) 값으로 인해 발생하는 예외를 처리할 수 있게 된다. Optional를 사용하지 않을 경우, 조건문을 사용하여 null 체크를 해줘야한다. List member = memberRepository.findById(id); // member == null 일경우 String name = member.getName(); // NullPointerException 발생 List member = memberRepository.findById(id); // member == null 일경우 String name = ""; if(member != nul..
-
[Java] 스트림(Stream)프로그래밍/JAVA 2023. 3. 11. 23:07
자바 스트림(Stream)은 컬렉션(Collection)과 Array에 저장되어있는 요소(Element)들을 하나씩 순회하면서 처리할 수 있는 코드패턴으로 람다형(함수형 인터페이스)과 함께 사용되어 코드 양을 줄이고 간결한 표현으로 간단하게 요소를 처리할 수 있다. 스트림 생성 방법 // 리스트 List list = Arrays.asList("a", "b", "c"); list.stream(); // 배열 String[] array = new String[]{"a", "b", "c"}; Arrays.stream(array); 스트림 데이터 가공 1) map() 스트림에서 나오는 데이터를 변경하여 새로운 데이터를 만든다. List list = new ArrayList(Arrays.asList("Apple"..
-
[Java] Arrays.asList()프로그래밍/JAVA 2023. 3. 11. 21:22
자바 Arrays.asList는 Array를 ArrayList처럼 사용할 수 있게 도와주는 클래스로 java.util.Arrays의 Arrays.asList는 보통 사용하던 java.util.ArrayList의 ArrayList와는 엄연히 다르다. Arrays.asList는 remove(), add() 메소드를 제공하지 않고 set(), get(), contains() 를 제공하여 배열의 사이즈를 변경할 수 없다. String[] str = {"son", "hwang", "lee"}; List list = Arrays.asList(str); System.out.println(list); // [son, hwang, lee] String[] str = {"son", "hwang", "lee"}; List ..
-
[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와 보조기억장치 사이에서 사용되는 임시 저장 공간을 뜻함..