Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

JAVA

드롭위저드 REST API 프레임워크, 예제로 간단히 시작해보기

드롭위저드(Dropwizard)는 여러 자바 패키지를 하나로 묶는 REST 지향 프레임워크다. 스프링(Spring), 그리고 스프링의 웹MVC 패키지의 대안으로, 더 매끄러운 경험을 제공한다. 스프링보다 더 많은 규칙 구성을 채택하며 REST API 제공 무관한 API 표면의 대부분을 없앤다는 점이 특징이다.     새로운 드롭위저드 프로젝트 시작하기 공식 드롭위저드 메이븐(Maven) 아키타입을 통해 새 프로젝트를 설계하는 것부터 시작한다. 로컬 시스템의 원하는 위치에서 명령줄을 열고 예시 1의 명령을 입력한다. 예시 1. 아키타입 실행 mvn archetype:generate -DarchetypeGroupId=io.dropwizard.archetypes -DarchetypeArtifactId=java-simple -DarchetypeVersion=2.0.0 이 명령어는 인터랙티브 모드로 실행된다. 여기서는 com.infoworld의 그룹 ID와 Demo의 아티팩트 ID를 사용했다. 또한 이름으로 Demo를 사용했다.   아키타입 배포가 완료되면 cd 명령어로 디렉터리로 이동한다(여기서는 cd Demo). 이제 mvn clean package를 사용해서 종속 항목을 설치한다. 다음과 같이 앱을 실행할 수 있다. java -jar target/Demo-1.0-SNAPSHOT.jar server  (앱 이름이 Demo가 아닌 경우 자신이 지정한 이름을 사용해야 한다.)   지금 localhost:8080을 방문하면 기본 JSON 형식의 “not found” 오류가 표시된다.   {"code":404,"message":"HTTP 404 Not Found"}   엔드포인트 매핑 엔드포인트가 매핑되지 않았으므로 지금까지 앱은 404만 반환한다. 드롭위저드에서 이 부분을 수행하는 방법을 명확히 이해하는 것이 좋다. 간단한 문자열 엔드포인트를 매핑함으로써 이 프로세스를 격리한다.  &nb...

REST API JAVA 2021.12.27

'살아 움직이는 언어' 자바에 추가된 6가지 새로운 기능

자바는 2018년 새로운 릴리즈 주기를 도입하면서 개발 측면에서 가장 큰 변화를 단행했다. 이 과감한 새로운 계획의 결과로 자바 개발자들은 6개월마다 새로운 기능 릴리즈를 받고 있다.   자바를 신선하고 현 시점에 맞는 언어로 유지하는 데는 분명 좋지만, 대신 새로운 기능을 놓치기도 쉽다. 새로이 추가된  유용한 기능 6가지를 대략적으로 살펴본다.     Optional 클래스 널 포인터 예외는 가장 전통적인 오류 가운데 하나다. 익숙한 문제지만 방지하기가 쉽지 않기도 하다. 그러나 자바 8에서 처음 소개되어 자바 10에서 더 개선된 Optional 클래스를 사용하면 더 이상 골칫거리가 아니다. 기본적으로 Optional 클래스는 변수를 래핑한 다음 래퍼의 메서드를 사용해서 널을 더 간편히 다룰 수 있게 해준다.   예시 1에는 흔한 널 포인터 오류의 예가 나와 있다. 클래스 레퍼런스인 foo가 널이고, 여기서 메서드인 foo.getName()이 액세스된다. 예시 1. Optional이 없는 널 포인터 public class MyClass {     public static void main(String args[]) {       InnerClass foo = null;       System.out.println("foo = " + foo.getName());     } } class InnerClass {   String name = "";   public String getName(){       return this.name;   } } ...

자바 JAVA 2021.09.28

AI 개발을 위한 최적의 프로그래밍 언어 6+2선

인공 지능(Artificial Intelligence, AI)는 애플리케이션 개발자에게 무한한 가능성을 제공한다. 머신러닝 또는 딥 러닝을 활용해 훨씬 더 정확한 사용자 프로필, 개인 맞춤 설정, 추천을 만들거나 더 스마트한 검색, 음성 인터페이스 또는 지능형 비서를 구현하거나 그 외의 다양한 방법으로 앱을 개선할 수 있다. 심지어 예전에는 생각지도 못했던, 보고 듣고 상황에 반응하는 애플리케이션을 만들 수도 있다.   AI를 온전히 활용하기 위해서는 어떤 프로그래밍 언어를 배워야 할까? 물론 좋은 머신러닝, 딥 러닝 라이브러리가 풍부한 언어가 좋다. 또한 우수한 런타임 성능, 충실한 툴 지원, 대규모 프로그래머 커뮤니티, 건강한 지원 패키지 생태계도 필요하다. 요구사항이 많지만 괜찮은 선택지 역시 풍부하다.  AI 개발을 위한 6가지 최적의 프로그래밍 언어와, 이 목록에는 들지 못했지만 살펴볼 만한 2가지 언어를 소개한다. 이 가운데에는 인기 상승 중인 언어도 있고 하락세인 언어도 있고 딥 러닝 아키텍처와 애플리케이션의 역사에 관심이 있는 경우에만 알면 되는 언어도 있다. 이제부터 각각의 장단점을 살펴보자. 파이썬(Python) 선두는 여전히 파이썬이다. 사실 다른 언어가 이 자리를 뺏기도 쉽지 않다. 파이썬에도 나름의 골치 아픈 문제는 있지만 AI 작업을 한다면 어느 시점에는 거의 무조건 파이썬을 사용하게 된다. 또한 파이썬의 투박한 부분들도 그동안 어느정도 개선됐다. 2020년을 목전에 둔 지금, 주요 라이브러리 대부분이 파이썬 3.x를 지원하고 파이썬 2.x에 대한 지원을 속속 중단하고 있음을 감안하면 파이썬 2.x냐, 파이썬 3.x냐의 논란은 거의 무의미하다. 즉, 모든 새로운 언어 기능을 마침내 본격적으로 활용할 수 있게 됐다. 모든 솔루션이 각자 다른 방법으로 조금씩 문제가 있는 악몽 같은 파이썬의 패키징은 여전하지만 95%의 상황에서는 별다른 걱정 없이 아나콘다(Anaconda)를 사용할 수 있다. 그럼에도 파이썬 측...

자바 줄리아 루아 2019.11.22

자바 웹 애플리케이션을 위한 요청 처리, "자바 서블릿"의 이해

요청 처리(Request handling)는 자바 웹 애플리케이션 개발의 핵심이다. 자바 웹 애플리케이션은 네트워크 요청에 응답하려면 먼저 요청 URL에 응답할 코드를 결정한 다음, 응답을 구성해야 한다. 모든 기술 스택에는 요청-응답 처리를 위한 방법이 있는데, 자바의 경우 서블릿(servlet)과 자바 서블릿 API를 사용한다. 서블릿은 요청을 받고 응답을 발생하는 역할을 하는 작은 서버라고 생각하면 된다.   URL과 엔드포인트 비교  인터넷 사용자는 브라우저의 웹사이트 주소인 URL(Uniform Resource Locator)에 익숙하다. 개발자에게 URL은 웹서비스 엔드포인트(endpoint)이기도 하다. URL은 텍스트를 사용해 인터넷 리소스를 설명하고 찾는 표준 방법이다. 엔드포인트라는 용어는 웹서비스를 나타내는 URL을 가리킨다. 엔드포인트와 URL은 각기 다른 사용 영역을 나타내지만 같은 의미로 사용되는 경우가 많다. 소프트웨어 계층  소프트웨어는 일련의 계층(layer)으로 볼 수 있다. 소프트웨어 시스템의 각 계층에는 그 상위 계층에서 필요로 하는 특정 기능이 포함된다. 예를 들어 하드웨어 계층은 펌웨어 계층 아래에 위치하면서 펌웨어의 기능을 지원한다. 마찬가지로 펌웨어 계층(PC의 BIOS 또는 맥의 EFI)은 운영체제를 실행하기 위해 필요하다. (그림 1)은 이 세 가지 구성 요소의 계층 구조를 보여준다.   소프트웨어 시스템을 하위 계층이 상위 계층의 컨테이너 역할을 하는 일련의 컨테이너로 볼 수도 있다. 각 계층은 다음 기능 레벨을 실행하기 위한 컨텍스트 역할을 한다. 즉 하드웨어는 펌웨어를 포함하고 펌웨어는 운영체제를 포함한다.   서버 측 자바 서버 측 자바 애플리케이션은 네트워크 엔드포인트 역할을 하면서 특정 URL에서 HTTP 요청을 수신하고 HTML 또는 JSON과 같은 상호 교환 가능한 형식으로 데이터를 돌려보내는 폭넓은 애플리케이션 클래스 중 하나다. 서버 측 자...

자바 JAVA servlet 2019.05.27

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.