우선, 저는 10년 이상의 개발 경험을 가진 Java 개발자로서 종종 번거롭고 번거로워 보이지만 대부분의 문제를 해결하기 위해 고유한 루틴을 형성해 왔다는 점을 인정해야 합니다. 예를 들어, 파일을 읽으려면 BufferedReader 인스턴스를 초기화하고 FileReader를 전달해야 합니다. 이는 거의 논리적입니다. 저는 "엔터프라이즈 수준"이라고 생각하는 많은 프로젝트에서 이러한 코드를 작성했습니다. 프로세스, 나는 단지 다른 언어를 경멸하는 Java 광신자라고 말할 수 있습니다.
이 블로그 게시물을 읽고 계시다면 제가 수년 전에 빠졌던 오해에 빠지셨을 수도 있습니다. 자격을 갖춘 개발자로서 끊임없이 새로운 기술을 배우고 실제 업무 요구 사항에 따라 적절한 기술을 선택해야 합니다. 비록 나이가 들고 언젠가는 자바에 질릴 수도 있지만요. 하지만 이제 정말 흥미롭고 새로운 사실을 발견했습니다. node.js는 마치 어린아이가 나에게 새로운 장난감을 주는 것과 같습니다. 이 블로그 게시물에서는 먼저 MongoDB 데이터베이스를 읽기 위해 Java EE 서비스를 사용하여 간단한 Rest를 생성하는 방법을 보여드리겠습니다. 그런 다음 node.js를 사용하여 동일한 기능을 달성하면 이 새로운 개발 언어의 즐거움을 더 쉽게 이해할 수 있을 것입니다.
기본부터 시작하세요. Node.js란 무엇인가요?
우선 Node.js는 "유행하는 사람들"만이 사용하는 "유행하는" 언어가 아니라는 점을 분명히 하고 싶습니다. 비록 이러한 이해에서 시작되었지만 Node.js는 성숙한 언어이며 현재 인터넷 시대에 트래픽이 가장 높은 일부 웹 사이트에 진출했다는 사실을 알리게 되어 기쁩니다. Node.js는 귀하의 기술에 매우 유용한 도구이며 안정적이고 안전하며 성능이 뛰어난 코드를 구축하는 것이 얼마나 쉬운지 놀라게 될 것입니다.
간단히 말해서 Node는 서버 측 활동을 위한 언어입니다. Javascript 언어를 사용하며 npm 모델과 같은 많은 라이브러리를 사용할 수 있습니다. 해당 npm 모델을 Java의 .jar 패키지와 비교할 수 있습니다. 일부 기능이 필요하고 모든 코드를 직접 작성하고 싶지 않다면 찾고 있는 기능이 이미 npm 모델에 제공되어 있을 가능성이 높습니다.
노드 애플리케이션은 일반적으로 비차단 I/O 및 비동기 이벤트를 활용하여 효율성을 극대화하기 위해 실행됩니다. Java 개발자가 알아야 할 한 가지는 Node 애플리케이션이 단일 스레드에서 실행된다는 것입니다. 그러나 백엔드 노드 코드는 네트워크 및 파일 액세스와 같은 작업에 여러 스레드를 사용합니다. 이러한 이유로 Node는 실시간 경험이 필요한 애플리케이션에 적합합니다.
계속 - IDE 지원
여러분도 나와 마찬가지로 IDE에서 "살아 있고" "숨쉬고" 있을 수 있습니다. 이는 Java가 너무 장황하고 소프트웨어 개발 프로세스 중에 기능을 완료하기 위해 지속적인 코드를 작성해야 하기 때문일 수 있습니다. 코드 완성의 이점을 발견한 후에는 파일 관리, 디버깅 및 기타 매우 유용한 기능에 IDE를 사용하는 방법을 천천히 배웠습니다. 간단히 말해, 저는 IDE를 사용하는 것을 좋아하고 Nodeb로 작업할 때 계속해서 사용하고 있습니다. 다음은 현재 Node를 지원하는 첫 번째 IDE 배치입니다.
1. Eclipse - 이미 Java에서 사용하고 있다면 쉽게 시작할 수 있습니다. Node.js 플러그인을 설치하기만 하면 됩니다.
2.JetBrains IntelliJ IDEA - 매우 인기 있는 상용 IDE입니다. 이것은 지금까지 제가 가장 좋아하는 IDE입니다.
3.Microsoft Visual Studio – 네, 맞습니다. Node는 Microsoft가 Visual Studio에 기본 지원을 추가할 정도로 성장했습니다. 이 구현은 매우 안정적이며 VS는 제가 두 번째로 좋아하는 IDE입니다. 이상하게도 저는 일부 기본 Node 프로젝트에만 VS를 사용합니다.
4.CodeEnvy - 웹 기반 IDE
5.Cloud9 - 웹 기반 IDE
6.SublimeText 2 - 가벼운 특성으로 인해 개발자들 사이에서 점점 더 인기를 얻고 있는 실용적인 텍스트 편집기입니다.
이는 노드 기반 프로젝트 작업에 제가 가장 좋아하는 IDE 중 일부입니다. 단지 예입니다.
예제로 시작하기
이 블로그 게시물의 나머지 부분에서는 Java EE 및 Node.js를 사용하여 간단한 REST 서비스를 생성하겠습니다. 이 REST 서비스는 단순히 MongoDB 데이터베이스에서 정보를 읽고 결과를 요청자에게 반환합니다. Java 애플리케이션 서버 및 MongoDB 데이터베이스의 설치 및 구성은 이 기사의 범위를 벗어납니다.
Java 애플리케이션 만들기
1단계: pom.xml 파일 구성
이 예제를 Restexample이라고 부르겠습니다. JBoss EAP 애플리케이션 서버를 사용하겠습니다. 가장 먼저 해야 할 일은 Maven 빌드 시스템을 사용하여 종속성 관리를 위해 pom.xml 파일을 구성하는 것입니다. 다음은 Restexample 애플리케이션에 필요한 종속성을 포함하는 pom.xml 파일입니다.
<프로젝트 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>restexample</groupId> <artifactId>restexample</artifactId> <packaging>war</packaging> <version>1.0</version> <name>restexample</name> <저장소> <저장소> <id>eap</id> <url>http://maven.repository.redhat.com/techpreview/all</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>eap</ id> <url>http://maven.repository.redhat.com/techpreview/all</url> <릴리스> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven .compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties> <종속성> <종속성> <groupId>org.jboss.spec</groupId> <artifactId>jboss-javaee-6.0</artifactId> <version>3.0.2.Final-redhat-4</version> <type>pom</type> <scope>제공</scope> </종속성> <종속성> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.9.1</version> </dependent> </dependent> </project>
멋지고 꽤 상세하지만, 이 블로그 게시물에서는 독자들이 이미 Java를 알고 있다고 가정하므로 자세한 내용은 설명하지 않겠습니다.
2단계: beans.xml 파일 생성 및 서블릿 매핑 설정
예제의 일부로 데이터베이스 액세스 클래스에 CDI(컨텍스트 종속성 주입)를 사용합니다. 공식 CDI 구성 지침에 따르면 애플리케이션이 CDI를 사용하려는 경우 애플리케이션의 WEB-INF 디렉터리에 beans.xml 파일을 포함해야 합니다. 이제 이 파일을 생성하고 필요한 정보로 구성해 보겠습니다. /src/main/webapp/WEB-INF 디렉터리로 이동하여 beans.xml 파일을 만들고 다음 코드를 추가합니다.
<?xml version="1.0"?><beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema- 인스턴스" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"/>
또한 web.xml 파일에서 RESI API에 대한 서블릿 매핑을 설정해야 합니다. /src/main/webapp/WEB-INF 디렉토리의 파일에 다음 서블릿 매핑 요소를 추가합니다.
<servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/ws/*</url-pattern></servlet-mapping>
3단계: DBConnection 클래스 생성
이 시점에서 우리는 프로젝트를 설정했으며 pom.xml 파일에는 이미 MongoDB 데이터베이스의 드라이버 종속성이 포함되어 있습니다. 필요한 드라이버가 애플리케이션에 패키지되어 있는지 확인하세요. 다음으로 해야 할 일은 데이터베이스 연결을 관리하는 클래스를 만드는 것입니다. DBConnection.java라는 새 파일을 생성하고 이 파일을 /src/main/java/com/strongloop/data 디렉터리에 배치한 후 이 파일에 다음 코드를 추가합니다.
참고: MongoDB 데이터베이스 설치가 적절한 연결 인증 세부정보로 구성되어 있는지 확인하세요!
package com.strongloop.data; import javax.annotation.PostConstruct; import javax.inject.Named; import com.mongodb.Mongo ; @Named@ApplicationScopedpublic 클래스 DBConnection { 개인 DB mongoDB; DBConnection() { super(); } @PostConstruct public void afterCreate() { String mongoHost = "127.0.0.1" String mongoPort = "27001" String mongoUser = "strongloop; String mongoPassword = "rocks"; String mongoDBName = "restexample" ; int port = Integer.decode(mongoPort); null; try { mongo = new Mongo(mongoHost, port); } catch (UnknownHostException e) { System.out.println("MongoDB에 연결할 수 없습니다: " + e.getMessage() + " :: " + e. getClass()); } mongoDB = mongo.getDB(mongoDBName); if (mongoDB.authenticate(mongoUser, mongoPassword.toCharArray()) == false) { System.out.println("DB 인증 실패") } } public DB getDB() { return mongoDB;4단계: MongoDB로 데이터 가져오기(mmmm 맥주)
우리 프로젝트에서는 이름이 Pabst인 모든 맥주 목록을 로드하려고 합니다. 맥주 업계가 처음이라면 Pabst Brewing의 American Light Ale을 시도해 볼 수도 있습니다. 이 맥주에는 블루 리본과 콜트 디자인이 특징이며 모든 종류의 맥아 음료가 포함됩니다.
먼저 반환해야 하는 모든 데이터가 포함된 json 파일을 다운로드해야 합니다. 이를 달성하려면 다음 URL을 사용할 수 있습니다.
https://dl.dropboxusercontent.com/u/72466829/beers.json
다운로드한 후 mongoimport 명령을 사용하여 데이터베이스로 가져옵니다.
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword
다음 결과를 볼 수 있습니다.
연결됨: 127.0.0.1:27017Tue June 10 20:09:55.436 check 9 24Tue Jun 10 20:09:55.437 import 24 object
5단계: Beer 모델 객체 생성
데이터베이스 연결 클래스를 생성하고 맥주 정보를 MongoDB 데이터베이스에 로드했습니다. 이제 맥주 정보를 제어하기 위한 모델 객체를 생성할 차례입니다. Beer.java라는 새 파일을 생성하여 /src/main/java/com/strongloop/data 디렉토리에 배치합니다. 파일을 생성한 후 다음 코드를 추가합니다.
package com.strongloop.data; public class Beer { private String name; public String getId() { return id } 공개 void setId(String id); getName() { 반환 이름; } 공개 void setName(문자열 이름) { this.name = 이름; } 공개 문자열 getDescription() { 반환 설명 } 공개 void setDescription(문자열 설명); this.description = 설명 }}참고: 제공된 JSON 파일에는 우리가 사용할 더 많은 정보가 포함되어 있으므로 이를 확인하고 몇 가지 추가 기능을 추가하여 학습 경험을 넓혀보세요.
6단계: REST 서비스 생성
무엇을 해야할지 맞춰보세요? 좋아, 마침내 이전 단계에서 로드된 맥주 정보를 가져올 수 있는 REST 기반 웹 서비스를 만들 준비가 되었습니다. 이를 위해서는 BeerWS.java라는 새 파일을 생성하여 /src/main/java/com/strongloop/webservice 디렉토리에 배치해야 합니다. 생성 후 다음 코드를 추가합니다.
패키지 com.strongloop.webservice; import java.util.ArrayList;import java.util.List;import javax.enterprise.context.RequestScoped;import javax.inject.Inject;import javax.ws.rs.GET;import javax.ws .rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.QueryParam;import com.strongloop.data.DBConnection;import com.strongloop.data.Beer;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb. DBObject; @RequestScoped@Path("/beers")공개 클래스 BeerWS { @Inject private DBConnection dbConnection; private DBCollection getBeerCollection() { DB db = dbConnection.getDB(); DBCollection beerCollection = db.getCollection("beers") } private Beer populateBeerInformation(DBObject dataValue) { Beer theBeer = new Beer (); theBeer.setName(dataValue.get("name")); theBeer.setDescription(dataValue.get("name")); theBeer.setId(dataValue.get("_id").toString()); // 모든 맥주 가져오기 @GET() @Produces("application/json") public List<Beer> getAllBeers() { ArrayList<Beer> allBeersList = new ArrayList<Beer>(); DBCollection 맥주 = this.getBeerCollection(); DBCursor 커서 = beers.find(); try { while (cursor.hasNext()) { allBeersList.add(this.populateBeerInformation(cursor.next) ())); } } 마지막으로 {cursor.close() } return allBeersList;7단계: 맥주 정보 찾아보기 Silly
아, 됐어요. 우리는 데이터베이스에서 모든 맥주 정보를 검색할 수 있는 REST 서비스를 작성했습니다. 이제 애플리케이션 서버에 코드를 배포하려면 브라우저에서 다음 주소를 열어 제대로 작동하는지 확인하세요.
http://yourserverlocation/ws/beers
모든 것이 정상이면 아래와 같이 모든 맥주 정보 목록이 표시됩니다.
노드 애플리케이션 생성
위의 단계에 따라 Java로 프로그래밍을 해보면, javaEE를 이용한 애플리케이션 생성은 매우 빠르게 진행되고 있지만, REST 서비스와 같은 간단한 애플리케이션을 생성하는 것은 여전히 매우 번거롭다는 것을 깨닫게 될 것입니다. 오해하지 마십시오. 저는 여전히 javaEE를 사용하는 것을 좋아하지만 json 데이터를 반환하는 REST 서비스 생성과 같은 많은 시나리오에서는 Node가 더 적합합니다. 다음으로 StrongLoop의 LoopBack API를 사용하여 간단한 웹 서비스를 만들어 보겠습니다. 그리고 Apple OSX에 Node를 설치하는 방법도 보여드리겠습니다.
1단계: 노드 설치
Node를 설치하는 가장 쉬운 방법은 대부분의 운영 체제와 호환되는 바이너리 패키지를 사용하는 것입니다. 브라우저를 열고 아래 웹페이지를 방문하여 운영 체제에 맞는 버전을 다운로드하세요.
http://nodejs.org/download/
다운로드가 완료되면 다음이 표시됩니다.
Mac OSX를 사용하는 경우 일반 .pkg 파일을 클릭합니다. 그러면 설치 프로그램이 컴퓨터에 저장됩니다. 파일을 다운로드한 후 해당 파일을 두 번 클릭하면 설치 프로그램이 시작됩니다. 다음 설치 대화 상자가 나타납니다.
기본적으로 설치를 계속합니다. 설치가 성공적으로 완료되면 닫기 버튼을 클릭하여 설치 프로그램을 종료합니다.
아주 간단하죠?
2단계: NPM을 사용하여 LoopBack 설치
이제 로컬 시스템에 Node가 설치되었으므로 다음 단계는 StroopLoop에서 제공하는 LoopBack 패키지를 설치하는 것입니다. LoopBack은 개방형 API 소스 코드 패키지입니다. Node를 사용하여 소프트웨어를 개발하고 배포하는 방법을 배우면 LoopBack을 통해 프로그래밍이 더 쉬워집니다.
LoopBack을 설치하기 위해 핵심 노드 언어의 일부인 npm 명령줄을 사용합니다. NPM은 애플리케이션이 의존하는 클래스 라이브러리나 템플릿을 설치하는 데 사용되는 공식 패키지 관리 도구입니다. Java 프로그래머라면 NPM을 Maven과 비교할 수 있습니다. Maven을 사용하여 프로젝트를 빌드하면 개발자는 pom.xml에서 프로젝트가 의존하는 jar 패키지 또는 템플릿을 구성할 수 있습니다. 프로젝트 컴파일이 시작되면 Maven은 모든 종속 파일을 다운로드하고 jar 패키지를 프로젝트에 도입합니다. NPM은 Maven과 동일하게 작동합니다. 일부 특수 프로젝트의 경우 package.json 파일을 사용하여 프로젝트가 의존하는 파일을 구성합니다. 명령줄을 사용하여 종속 파일을 로컬 시스템에 다운로드할 수도 있습니다. 이것을 이해하지 못하더라도 걱정하지 마세요. package.json 파일에 대해서는 다음 단계에서 자세히 설명하겠습니다.
LoopBack을 설치하려면 간단한 명령줄을 사용하여 모든 종속 파일을 다운로드하고 설치합니다. 창 명령줄 창을 열고 다음 명령을 입력합니다.
$ npm 설치 -g 강한 루프
팁: 설치 중에 이 명령을 실행하려면 다른 사용자 계정을 사용해야 할 수도 있습니다.
이 명령줄은 무엇을 의미하나요? -g 매개변수는 npm에게 Strong-cli 패키지를 설치하겠다고 알립니다. -g 매개변수를 사용하면 이 패키지가 모든 시스템 및 응용 프로그램과 호환됩니다. 위 명령을 실행하면 NPM은 모든 종속 파일을 다운로드합니다. 다운로드 시간은 인터넷 속도에 따라 다르며 몇 분 정도 걸릴 수 있습니다.
3단계: 애플리케이션 생성
LoopBack API를 사용하여 애플리케이션을 만드는 것은 간단합니다. 창 명령줄 창을 열고 다음 명령을 사용하여 새 애플리케이션 나머지 예제를 만듭니다.
$ slc 루프백
다음으로 프로젝트 루트 경로의 이름을 묻는 메시지가 표시됩니다. 이 예에서는 Restexample이 사용되었습니다. 다음으로 애플리케이션 이름을 묻는 메시지가 표시됩니다. 기본 나머지 예제를 사용하세요.
이제 slc 명령은 Restexample이라는 LoopBack 애플리케이션을 생성하고 애플리케이션을 구성했습니다. 위 명령을 다시 실행하고 여전히 Restexample을 사용하여 이름을 지정하면 LoopBack이 새 디렉터리를 생성합니다. cd 명령을 사용하여 애플리케이션의 루트 경로를 수정할 수 있습니다.
$ cd 나머지 예
이제 애플리케이션을 만들었으므로 MongoDB를 애플리케이션의 데이터 소스로 구성합니다.
4단계: 데이터 소스 정의
MongoDB에 연결하려면 애플리케이션에 데이터 소스를 추가하고 다음 명령을 실행해야 합니다.
$ slc 루프백:데이터 소스
팝업 프롬프트에서 사용자 정의된 데이터 소스 이름을 입력할 수 있습니다. 여기에서 myMongo를 선택합니다.
[?] 데이터 소스 이름을 입력하십시오: myMongo
이런 방식으로 백엔드의 데이터 소스 정의를 StrongLoop로 구동되는 실제 커넥터에 연결합니다. 여기서는 목록에서 MongoDB 커넥터를 선택합니다.
[?] myMongo에 대한 커넥터 선택:PostgreSQL(StrongLoop에서 지원)Oracle(StrongLoop에서 지원)Microsoft SQL(StrongLoop에서 지원)MongoDB(StrongLoop에서 지원)SOAP 웹 서비스(StrongLoop에서 지원)REST 서비스(StrongLoop에서 지원)Neo4j( 커뮤니티에서 제공)(더 많은 선택 사항을 보려면 위아래로 이동하세요)
5단계: 실제 데이터 소스 지정
MongoDB에 연결하려면 실제 MongoDB 인스턴스를 가리켜야 합니다. LoopBack은 datasource.json 파일에 모든 데이터 소스 구성 정보를 정의합니다. 이 파일은 애플리케이션의 루트/서버 디렉터리에 있습니다. MongoDB는 다음과 같이 데이터 소스를 추가합니다.
{ "db": { "이름": "db", "커넥터": "메모리" }, "myMongo": { "이름": "myMongo", "커넥터": "mongodb" "url": "mongodb: //localhost:27017/restexample" }}참고: MongoDB 데이터베이스에 대한 올바른 연결 URL을 제공해야 합니다. 이 예에서는 데이터 소스로 사용되는 Restexample이라는 데이터베이스를 만들었습니다.
6단계: MongoDB로 데이터 가져오기(mmmmmm 맥주)
이 문서의 Java 부분에서 언급한 대로 데이터 세트를 MongoDB 데이터베이스에 로드해야 합니다. 이 문서에 언급된 방법에 따라 이 단계를 완료한 후 동일한 데이터베이스를 사용할 계획이라면 단계를 무시할 수 있습니다. 6을 클릭하고 7단계로 바로 이동합니다.
먼저 반환할 모든 정보가 포함된 JSON 파일을 다운로드해야 합니다. 이 파일은 다음 URL에서 얻을 수 있습니다.
https://dl.dropboxusercontent.com/u/72466829/beers.json
데이터 세트 파일을 다운로드한 후 다음 mongoimport 명령을 직접 사용하여 데이터베이스에 로드합니다.
$ mongoimport --jsonArray -d yourDBName -c 맥주 --type json --file /tmp/beers.json -h yourMongoHost --port
다음 결과가 표시됩니다.
연결됨: 127.6.189.2:27017Tue June 10 20:09:55.436 check 9 24Tue Jun 10 20:09:55.437 import 24 object
7단계: 나만의 맥주 모델 만들기
Java 세계에서는 이 객체를 나타내는 객체 모델을 생각할 수 있지만 여기서는 이 객체가 맥주입니다. LoopBack은 명령줄을 통해 모델 객체를 생성하는 간단한 방법을 제공합니다. 다음 명령을 입력하십시오.
$ slc 루프백:모델
모델을 정의하기 위한 대화형 세션이 열립니다. 가장 먼저 입력해야 할 것은 모델 이름입니다. 여기에 "beer"를 입력합니다. 다음으로 이 모델을 연결할 데이터 소스를 선택하라는 메시지가 표시됩니다. 이전에 생성된 myMongo 데이터 소스입니다.
[?] 모델 이름 입력: beer[?] 맥주를 연결할 데이터 소스 선택:db(메모리)myMongo(mongodb)
다음으로, REST를 통해 이 API를 노출할지 여부를 묻는 메시지가 표시됩니다.
[?] REST API를 통해 맥주를 노출하시겠습니까?
마지막으로 모델의 네트워크 복수형 이름을 선택합니다. 여기서 모델 이름은 beer이므로 복수형은 beans입니다(기본값).
[?] 사용자 정의 복수형(REST URL을 작성하는 데 사용됨):
다음으로 모델 속성을 정의하라는 메시지가 표시됩니다. 이 예제 프로그램에서는 맥주의 이름과 설명에 중점을 둡니다.
완료되면 빈 속성 이름을 입력하세요.[?] 속성 이름: name
Enter 키를 누르면 지정된 각 속성의 데이터 유형을 입력하라는 메시지가 표시됩니다. 여기서 문자열 유형을 선택한 다음 키를 누릅니다.
Enter.[?] 속성 유형: (화살표 키 사용)stringnumberbooleanobjectarraydatebuffergeopoint(other)
다음으로 동일한 방법으로 설명 속성을 생성하면 데이터 유형을 입력하라는 메시지가 나타납니다. 문자열 유형이기도 하며 문자열 옵션을 선택한 후 클릭합니다.
Enter.다른 맥주 속성을 추가하겠습니다.완료되면 빈 속성 이름을 입력하세요.[?] 속성 이름: 설명invoke 루프백:property[?] 속성 유형: 문자열[?] 필수 여부?
축하합니다! Node.js와 결합된 LoopBack을 사용하여 모델 객체 생성을 완료했습니다. 이 프로세스 중에 실제로 생성된 내용을 보려면 애플리케이션 root/common/models 디렉터리에 있는 beer.json 파일을 열고 다음으로 스크롤하세요. 파일의 끝 부분에 다음 모델이 표시됩니다.
{ "이름": "맥주", "기본": "PersistedModel", "속성": { "이름": { "유형": "문자열", "필수": true }, "설명": { "유형" : "string", "required": true } }, "validations": [], "relations": {}, "acls": [], "methods": []}여기에서 볼 수 있듯이 모델을 생성함과 동시에 이름 및 설명 속성이 이 모델에 할당되었습니다.
/server/model-config.js 파일에서 파일에 public 및 datasource를 포함한 몇 가지 추가 필드가 포함되어 있음을 알 수 있습니다. public 필드는 REST 네트워크 서비스를 통해 이 모델을 외부에 노출시키려는 것을 지정합니다. 필드는 이 모델의 CRUD 작업에 사용될 데이터 소스를 지정합니다.
"맥주": { "dataSource": "myMongo", "public": true }8단계: 맥주를 보는 즐거움을 만끽하세요
축하합니다! 맥주 정보를 얻을 수 있는 REST 웹 서비스가 포함된 첫 번째 Node.js 애플리케이션을 만들었습니다. 마지막으로 우리가 해야 할 일은 애플리케이션을 배포하는 것뿐입니다.
다행히도 애플리케이션 루트 디렉터리에서 다음 명령을 실행하면 이미 쉽게 배포할 수 있습니다.
$ slc 실행
애플리케이션이 실행되자마자 브라우저에서 다음 URL로 이동하여 배포가 성공했는지 확인할 수 있습니다.
http://0.0.0.0:3000/api/beers
정말 멋지지 않나요?
LoopBack에는 Beer 모델 및 우리가 만든 REST 서비스를 포함하여 애플리케이션의 사용 가능한 모든 서비스를 볼 수 있는 페이지도 포함되어 있습니다.
http://0.0.0.0:3000/탐색기
페이지가 성공적으로 로드되면 다음 인터페이스가 표시됩니다. 블로그의 일부로 Bean 노드를 만들었으며 /beers 엔드포인트를 강조 표시했습니다.
/beers를 클릭하면 사용 가능한 API를 확장할 수 있으며 아래 그림과 같이 이를 작동하고 테스트할 수 있습니다.
결론적으로
이 블로그 게시물에서는 Java EE를 사용하여 Pabst Beer Company의 맥주 제품 목록 데이터를 반환하는 REST 서비스를 만드는 방법을 보여줍니다. 나중에는 node.js와 node.js 기반의 루프백 프레임워크를 사용하여 아주 적은 코드로 동일한 기능으로 나머지 서비스를 구현했습니다. 가장 중요한 점은 LoopBack API가 맥주 엔터티의 추가, 삭제, 확인 및 수정을 위한 기본 구현도 제공하므로 한 줄도 작성하지 않고도 완전한 추가, 삭제, 확인 및 수정 기능을 갖춘 휴식 서비스를 얻을 수 있다는 것입니다. 코드.
다음 목록은 블로그 게시물에 언급된 javaEE 및 node.js의 각 기능을 비교합니다.
특징 | 자바 EE | Node.js |
완벽한 IDE 지원 | 예, Eclipse, Sublime 및 Idea를 포함한 여러 IDE를 사용할 수 있습니다. | 예, Visual Studio, Eclipse, Sublime 등 여러 IDE 중에서 선택할 수 있습니다. |
종속성 관리 | 메이븐 | NPM |
엔터프라이즈급 프로젝트에서 사용 | 예 | 예 |
방대한 구성요소 생태계 | 예 | 예 |
JVM 필요 | 예 | 아니요 |
공통 개발 프레임워크 | 봄, 지 | 표현하다 |
데이터베이스 지원 | 예 | 예 |
ORM 프레임워크 | 예 | 예 |
테스트 프레임워크 | 예 | 예 |
다음은 무엇입니까?
다가오는 Node v0.12에는 최소 8가지의 흥미로운 새 기능이 제공될 예정입니다. 그 기능은 무엇입니까? 자세한 내용은 "Node.js v0.12의 새로운 기능" 페이지를 방문하세요.
Node 관련 교육 및 인증에 관심이 있으십니까? StrongLoop은 귀하의 요구 사항을 충족하는 다양한 서비스를 제공합니다.