출처: https://wiki.eclipse.org/Eclipse/Installation

4.7 (Oxygen)

Java 8

4.6 (Neon)

Java 8

4.5 (Mars)

Java 7

4.4 (Luna)

Java 7

4.3 (Kepler)

Java 6

'개발환경' 카테고리의 다른 글

좋은 팁  (0) 2019.03.26
서버 메모리 체크 명령어  (0) 2019.03.25
[MySQL] windows mysql 5.1 설치  (0) 2019.01.01
[eclipse] 자바(JDK) 설치 없이 이클립스 사용하기  (0) 2019.01.01

2019년 부터 JAVA 1.8 버전부터 유료화 전환이 확정되었다.

그래서 1.7 버전을 찾으려니 오라클 홈페이지에서는 바로 찾기가 힘들어서 링크를 첨부해둔다.

Java Archive Downloads - Java SE 7

Overview Downloads Documentation Community Technologies Training Java SDKs and Tools Java SE Java EE and Glassfish Java ME Java Card NetBeans IDE Java Mission Control Java Resources Java APIs Technical Articles Demos and Videos Forums Java Magazine Developer Training Tutorials Java.com E-mail this p

www.oracle.com

이클립스를 사용하기 위해서는 자바(JDK) 설치가 필수적이다.

이 포스팅의 목적은 아래와같이 제어판에 들어갔을 때,

저렇게 자바 설치가 되어 있지 않아도 이클립스를 사용할 수 있도록 하는 것이다.

(코딱지만한 용량을 가진 내 노트북에서는 100MB가 아쉬운 상황 ㅠ.ㅠ 최대한의 용량 확보를 위하여!)

설치되어있는 8은 지우고, 7을 설치없이(!) 사용하려고 한다.

자바를 지웠더니 아래와 같은 경고창이 나오면서 이클립스를 실행이 안된다.

오라클 홈페이지로 들어가서 JDK 말고(!),

그 아래 Java SE Runtime Environment 에서 버전에 맞는 .tar.gz 확장자 파일을 다운받는다.

(.exe 실행 파일만 아니면 됨)

나는 외장하드에 넣어서 쓰고 싶기 때문에 D:\dev64 경로에 압축을 풀었다

압축 푼 폴더로 들어가서 bin까지 찾아간다.

위의 경로를 복사해둔다

D:\dev64\jre-7u80-windows-x64\jre1.7.0_80\bin

이제 이클립스를 설치해야 한다.

(나는 이미 설치가 되어있으므로) 이클립스 설치에 대한 자세한 내용은 아래 포스팅 참조☆

[eclipse] 이클립스 설치 및 웹 프로젝트 환경설정

<다운로드 url & 파일명(버전)> http://oracle.com >> jdk-8u151-windows-x64.exe(Java ...

blog.naver.com

이클립스를 설치하고 실행시키면 아까와 같은 메시지가 나오면서 이클립스가 실행되지 않는다.

자, 이제 여기서부터 중요!

이클립스 실행파일에서 오른쪽 버튼을 누른 뒤 바로가기를 만든다

바로가기 아이콘을 선택하고 다시 오른쪽 버튼을 눌러 속성으로 들어간다

그러면 아래와 같은 창이 나온다

대상(T): D:\dev64\eclipse\eclipse.exe 라고 된 부분을 아래와 같이 수정한다.

D:\dev64\eclipse\eclipse.exe -vm "D:\dev64\jre-7u80-windows-x64\jre1.7.0_80\bin" -vmargs -XX:MaxPermSize=1024m -Xms1024m -Xmx2048m

-vm 뒤로 "분홍" 부분에 아까 복사해둔 경로를 넣으면 된다.

* 기존 경로는 지우지 말고 그대로 사용한다 ( -vm부터 뒤로 붙여 넣으면 된다)

이제 바로가기를 실행하면...!

성공~!


'개발환경' 카테고리의 다른 글

좋은 팁  (0) 2019.03.26
서버 메모리 체크 명령어  (0) 2019.03.25
[MySQL] windows mysql 5.1 설치  (0) 2019.01.01
[eclipse] 버전별 JRE 요구사항  (0) 2019.01.01


REST는?

REST(Representational State Transfer)는 인터넷 상의 컴퓨터 시스템간 상호 운용성을 제공하는 방법 중 하나입니다. 


REST는 HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 네트워크 아키텍처입니다.
여기서 자원이란, 저장된 데이터(DBMS 등)는 물론, 이미지/동영상/문서(PDF 등)와 같은 파일, 서비스(이메일 전송, 푸쉬 메시지 등) 등을 모두 포함합니다.


REST는 HTTP의 주요 저자 중 한사람인 로이 필딩의 2000년 박사학위 논문에서 처음 소개되었습니다.
위키백과 - REST : https://ko.wikipedia.org/wiki/REST

REST의 제약조건

아래 REST 제약조건을 준수하는 웹서비스를 RESTful 하다고 합니다.

클라이언트/서버 : 클라이언트와 서버가 각각 역할이 구분되어야 한다. 
서버는 API를 제공하고 API 요청 시 비지니스 로직 처리와 데이터 저장을 책임. 클라이언트는 사용자 인증, 상태(세션, 로그인 정보)관리와 서버 리소스 요청을 책임지는 구조로 역할 구분(상호 의존성을 줄임)
무상태(Stateless) : REST 서버는 작업을 위한 상태정보(세션, 쿠키 등)를 관리하지 않아야 한다.
시스템 영향없이 관리 및 업데이트 가능
캐쉬(Cacheable) : 캐쉬를 제공해야 한다.
HTTP 웹표준으로 HTTP가 가진 캐싱 기능이 적용됨
계층화(Layered system) : 서버를 다중 계층으로 구성 할 수 있어야 한다.
비지니스 로직을 수행하는 API 서버와 그 앞단에 사용자 인증, 암호화, 로드밸런싱 등의 계층을 추가해 구조상의 유연성 제공
인터페이스 일관성(Uniform interface)
아키텍처를 단순화하고 분리해 각 부분을 독립적으로 발전 시킬 수 있음

REST 주요 구성요소

REST 주요 구성요소 3가지

자원(리소스) : 접근할 대상 - URI를 통해 식별
행위(메소드) : 자원에 대한 행위 - 표준 HTTP 메소드에 따라 자원에 접근
정보(메시지) : 자원에 대한 정보 - HTTP 해더와 바디, 응답코드 활용
즉, REST는 어떤 자원(리소스)에 어떤 행위(메소드)를 어떻게(메시지) 할지 HTTP 기반으로 정해놓은 아키텍처입니다.

자원(리소스)

리소스는 URI를 통해 정의합니다.

예를 들면, 아래와 같은 URI는 다음과 같은 의미를 갖습니다.

 URI 
 의미 
 http://api.domain.com/books/
 도서정보 콜렉션 
 http://api.domain.com/books/1/ 
 1번 도서 정보 
 http://api.domain.com/books/1/photo/
 1번 도서의 사진

리소스명은 동사보다 명사를 활용해 어떤 자원인지 표현하는데 집중해야 합니다.(/getBooks/와 같은 리소스는 적절하지 않습니다.)


슬래시(/)는 계층 관계를 나타내며, URI 앞쪽부터 넓은 의미로 사용합니다.
일반적으로 계층은 컬렉션(목록) 하위에 아이템을 지정하는 방식으로 정의합니다.


아래와 같이 URI를 구성할 수 있습니다.
/sports/soccer/players/1/
/(컬렉션)/(아이템)/(컬렉션)/(아이템)/

메소드

REST에서는 HTTP 메소드를 통해 리소스에 대한 행위를 정의합니다.

표준 HTTP 메소드 중 Get, Post, Put, Delete를 통해 자원의 CRUD를 정의합니다.

 HTTP 메소드
 자원에 대한 행위
 POST
 자원 생성(Create)
 GET
 자원 조회(Read)
 PUT
 자원 수정(Update)
 DELETE
 자원 삭제(Delete)

Endpoint

다음과 같이 메소드와 URI를 이용해 리소스에 접근합니다. URI 별 HTTP 메소드로 구현된 항목을 Endpoint라고 합니다.

 HTTP 메소드 
 URI(자원)
 Endpoint의 행위
 POST
 http://api.domain.com/books/
 새로운 도서정보 생성
 GET
 http://api.domain.com/books/
 도서정보 목록 조회
 GET
 http://api.domain.com/books/1/
 1번 도서정보 조회
 PUT
 http://api.domain.com/books/1/
 1번 도서정보 수정
 DELETE
 http://api.domain.com/books/1/
 1번 도서정보 삭제

메시지

REST에서 자원에 대한 정보는 HTTP 바디와 HTTP 해더, 응답 상태코드를 활용해 표현합니다.

HTTP 바디

HTTP 바디에 포함된 데이터를 통해 자원에 대한 정보를 전달합니다.

데이터 포맷으로는 최근 JSON을 많이 사용하는 추세이며, XML과 사용자정의 포맷 등을 정해서 사용할 수도 있습니다.


조회(GET 메소드) 요청 시 서버는 조건에 맞는 정보를 HTTP 바디에 담아 클라이언트에 응답합니다.
생성(POST 메소드), 수정(PUT 메소드) 요청 시 클라이언트는 자원에 대한 정보를 요청 HTTP 바디에 담아 서버에 요청합니다.

HTTP 해더

HTTP 해더에는 HTTP 바디의 컨텐츠 종류를 명시할 수 있습니다. 해더에 정의된 컨텐츠 타입에 따라 데이터를 분석하도록 구현해야 합니다.

요청 HTTP 해더는 "Accept" 항목으로, 응답 HTTP 해더는 "Content-type"으로 컨텐츠 타입을 설명합니다.



몇가지 컨텐츠 타입은 다음과 같습니다.
application/json
application/xml
text/plain
image/jpeg
image/png
미디어 타입, 컨텐츠 타입 자세히 보기 : https://ko.wikipedia.org/wiki/미디어타입


인증 권한정보(Authorization)도 보통 해더를 통해 전달합니다.

응답 상태코드

리소스 요청에 대한 결과는 응답 상태코드로 표현할 수 있습니다. 자원 요청 시 1차적으로 응답 상태코드로 결과를 표현하고, 바디 영역의 데이터로 상세 결과(코드 또는 메시지)를 제공할 수 있습니다.



대표적인 응답 상태코드는 아래와 같습니다.
200 - 요청을 정상 수행
201 - 리소스 생성 요청 성공(Post로 생성 요청 시에 한함)
400 - 요청이 부적절함
401 - 인증되지 않은 상태에서 보호된 리소스 요청
403 - 공개되지 않은 리소스에 접근 요청(인증과 무관)
404 - 존재하지 않는 리소스 요청
406 - 지원하지 않는 미디어타입을 요청
409 - 리소스 상태에 의해 해당 요청을 수행하지 못함
HTTP 상태코드 자세히 보기 : https://ko.wikipedia.org/wiki/HTTP_상태_코드

REST API 구현

REST 기반으로 서비스 API를 구현한 것을 REST API라고 합니다.

REST API 구현의 특징

최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공합니다. 


또, 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있습니다. 


REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있습니다. 
즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있습니다. 물론 반대의 방법도 가능합니다.

델파이로 REST API 구현

델파이의 HTTP 라이브러리를 이용핸 REST API를 구현할 수 있습니다.

REST API 구현해 특화된 기술은 서버 측 기술로는 EMS 서버 클라이언트 기술로는 REST 클라이언트 라이브러리가 있습니다.

서버(Back-End) 프레임워크

RAD Server(EMS Server) - REST API Endpoint 제공
WebBroker - RAD 스튜디오(델파이, C++빌더) 웹 개발 프레임워크
DataSnap - RAD 스튜디오 멀티티어 개발 프레임워크, TCP/IP, HTTP 프로토콜 제공
Delphi MVC Framework - 오픈소스 웹서비스 개발 프레임워크
mORMot - 오픈소스 SOA, ORM 개발 프레임워크

클라이언트(Front-End) 프레임워크

REST Client - REST 클라이언트 프레임워크

Net HTTP Client - 네이티브 HTTP 클라이언트 프레임워크
Indy Library - 범용 네트워크 라이브러리(HTTP 클라리언트, 서버 제공)

추가 학습할 내용

EMS 패키지 프로젝트 시작하기

EMS 패키지는 REST API 리소스와 엔드포인트 개발을 지원합니다. EMS 패키지 프로젝트를 만들고, 배포하는 내용을 학습할 수 있습니다.
http://blog.hjf.pe.kr/459

REST API 서버 개발하기(엔드포인트 구현, RAD 서버 이용)

EMS 패키지를 이용해 REST API를 제공하는 서버를 개발합니다. 미리 준비된 DB를 이용해 조회, 입력, 수정, 삭제, 이미지 제공 등의 기능을 실습위주로 학습합니다.
http://blog.hjf.pe.kr/463

REST API 클라이언트 개발하기(REST 클라이언트 이용)

위에서 작성한 REST API 서버와 연동하는 클라이언트를 개발합니다. REST API를 분석해 조회, 입력, 수정, 삭제, 이미지 수신 기능을 실습위주로 학습합니다.

http://blog.hjf.pe.kr/464

참고 링크

위키백과 - REST : https://ko.wikipedia.org/wiki/REST
REST API의 이해와 설계-#1 개념 소개 : http://bcho.tistory.com/953
REST API 제대로 알고 사용하기 : http://meetup.toast.com/posts/92
REST 아키텍처를 훌륭하게 적용하기 위한 몇 가지 디자인 팁 : https://spoqa.github.io/2012/02/27/rest-introduction.html



+ Recent posts