구분 내용 -Djava.awt.headless 그래픽 사용자 인터페이스 (GUI)를 지원하는 환경에서 Java 애플리케이션을 실행할 때 사용됩니다. 이 설정은 화면이 없는 서버 환경에서 Java 애플리케이션을 실행할 때 유용합니다. java.awt.headless 시스템 속성을 true로 설정하면, Java 애플리케이션은 그래픽 환경이 없는 "헤드리스" 모드로 실행됩니다. 이 모드에서는 그래픽 화면이 없기 때문에 그래픽 관련 작업을 수행할 수 없습니다. 대신, 이 모드에서는 그래픽 작업을 대신할 수 있는 대체 수단을 사용하게 됩니다. 이러한 설정은 주로 웹 서버, 배치 프로세스 또는 백그라운드 작업과 같이 그래픽 환경이 필요하지 않은 Java 애플리케이션을 개발하고 실행할 때 유용합니다. 이렇게 설정을 ..
Spring Framework와 Spring Boot는 모두 Java 기반의 프레임워크로, 웹 애플리케이션 및 서비스를 개발하는 데 사용됩니다. 그러나 두 프레임워크 간에는 몇 가지 중요한 차이가 있습니다. 1. 초기 설정과 설정의 용이성: Spring Framework: 초기에는 XML 기반의 설정이 많이 사용되었습니다. Annotation 기반 설정이 도입되었지만 여전히 일부 설정은 XML을 사용할 수 있습니다. 프로젝트를 시작하기 위해 많은 설정이 필요할 수 있습니다. Spring Boot: 스프링 부트는 기본적인 설정을 자동으로 제공하는 "초기화 자동화"에 중점을 두고 있습니다. Convention over Configuration 원칙을 따르므로 개발자가 추가 설정을 하지 않아도 기본적인 설정이..
애플리케이션을 설계하고 개발할 때 다양한 케이스의 예외 상황을 고려해야 하는 것처럼, 리액티브 애플리케이션을 설계할 때도 모든 종류의 예외 상황을 처리 할 수 있어야 한다. 우리가 알고 있는 onError 시그널은 리액티브 스트림 스펙의 필수 요소여서 예외를 처리할 수 있는 경로로 전파 할 수 있다. 그러나 최종 구독자가 onError 시그널에 대한 핸들러를 정의하지 않으면 onError는 UnsupportedOperationException을 발생 시킨다. 그리고 리액티브 스트림에서는 onError가 스트림이 종료되었다고 정의하고 있다. 그렇기 때문에 onError 시그널을 받으면 시퀀스가 실행을 중지하게 된다. 아래 onError 시그널을 처리할 수 있는 다양한 방법을 살펴보자. 1. subscrib..
이번 페이지에서는 HttpURLConnection을 이용해 REST API를 호출하는 방법을 알아보자. [GET]public void get(String strUrl) { try { URL url = new URL(strUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setConnectTimeout(5000); //서버에 연결되는 Timeout 시간 설정 con.setReadTimeout(5000); // InputStream 읽어 오는 Timeout 시간 설정 con.addRequestProperty("x-api-key", RestTestCommon.API_KEY); //key값 설정 con.setRequestMet..
시스템 서비스 규모가 커지고 마이크로서비스 개념이 확산되어가면서 많은 프로젝트에서 서비스간에 통신 방식으로 REST API를 선호 하고 있다. 이 페이지에서는 REST API 사용자 입장(Client)에서 활용할 수 있는 JAVA Library를 알아보고자 한다. REST API Client에 JAVA Library로는 HttpURLConnection, HttpClient, OkHttp, Retrofit, RestTemplate를 대표적으로 들 수 있다. 이것 이외에도 수많은 Library가 존재하지만 많은 개발자가 선택하고 사용하고 있는 4가지 Library에 대해 간략하게 알아보자. 1. HttpURLConnection - 기본 JDK에 포함되어 있음. (jdk1.2부터 내장되어 있으며 java.ne..
메서드 레퍼런스는 특정 메서드만을 호출하는 람다의 축약 표현이라고 생각할 수 있다. 람다가 특정 메서드를 직접 호출하게 된다면 메서드를 어떻게 호출해야 하는지 설명을 참조 하기 보다 메서드 명을 직접 참조 하도록 하는 것이다. 메서드 레퍼런스를 이용한다면 기존 메서드 구현으로 람다 표현식을 만들 수 있다. 이때 명시적으로 메서드명을 참조 하게 됨으로서 가독성을 높일 수 있는 장점이 있다. 메서드 레퍼런스는 메서드명 앞에 구분자 (::)를 붙이는 방식으로 사용된다. Car :: getPrice (== (Car c) -> getPrice())는 Car 클래스의 getPrice의 메서드 레퍼런스를 뜻한다. [예제] (Car c) -> c.getPrice() =========> Car :: getPrice ()..
람다로 함수형 인터페이스의 인스턴스를 만들 수 있으며 람다 표현식에는 람다가 어떤 함수형 인터페이스를 구현하는지 정보를 가지고 있다. 따라서 람다 표현식을 더 제대로 이해하려면 람다의 실제 형식을 파악해야 한다. 1. 형식 검사 - 람다에 사용되는 내용을 바탕으로 람다의 형식을 추론할 수 있다. - 대상 형식 ? 람다가 전달될 파라미터나 람다가 할당되는 변수 등에서 기대되는 람다 표현식의 형식을 대상 형식이라 부른다. (예: Predicate) - filter() 함수의 정의를 보면 파라미터로 Predicate로 정의 되어 있다. - 즉, Predicate라는 대상 형식에 만족하는 람다 함수를 기대하는 것이다. 1-1.같은 람다, 다른 함수형 인터페이스 - 대상 형식이라는 특징 때문에 같은 람다 표현식이..
실전 스프링 부트 워크북 이 글을 쓰고 있는 지금, 세계 및 한국에서 가장 많이 쓰고 있는 프로그래밍 언어는 JAVA이다. 많은 사람들이 JAVA 언어의 한계에 대해서 이야기하고 있으며 앞으로 에 JAVA에 대해서 걱정하고는 있지만 JAVA8에서 보여준 JAVA의 혁신적인 변신은 아직 JAVA가 살아 있음을 보여주기 충분했다. 이러한 흐름을 바탕으로 조심스레 예상해 본다면 JAVA라는 언어는 향후 몇 년간 1위 자리를 지킬 것이라 예상하며 특히 국내에서는 더욱 긴 생명력을 가질 것이라 생각한다. 이와 같은 생각을 바탕으로 저자는 JAVA라는 언어에 시간을 투자하여 학습하는 것은 충분한 가치가 있다고 생각하며 불행히도 저자의 예상과 다르게 JAVA라는 언어를 사용하는 빈도가 급속도로 줄어든다고 하여도 ..
1. 람다 표현식(lambda)은 나중에 한번 이상 실행할 수 있도록 전달할 수 있는 코드 블록이다. - 과거에 자바는 어딘가에 코드 블록을 전달하는 일이 쉽지 않았다.(즉, 단순히 코드 블록을 전달할 수 없음.) 자바는 객체지향 언어기 때문에, 원하는 코드가 있는 메서드를 포함하는 클래스의 객체를 생성해야했음. 2. 람다 표현식 문법 - (파라미터, 화살표->,표현식) * 예 : (String first, String second) -> Integer.compare(first.length(), second.length()) * 자바는 타입 결합이 강한 언어기 때문에 타입도 지정해야함. - 표현식 하나로 표현할 수 없는 계산은 중괄호{}를 사용하고 명시적 return문 사용. *예 : (String ..
- Total
- Today
- Yesterday
- SW
- 데이터플랫폼
- 프로그램
- llm
- tensorflow
- 빅데이터
- 인공지능
- it
- rest api
- HttpClient
- 소프트웨어
- 자바
- http client
- ai
- 교육
- Java
- 데이터플랫폼설계
- 머신러닝
- okhttp
- 텐서플로우
- Rest
- 데이터파이프라인
- API
- 소프트웨어교육
- Spring
- AWS
- mlops
- 딥러닝
- HTTP
- java8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |