1. 서블릿(Servlet)과 JSP(Java Server Page) 

▪ 서블릿은 자바를 이용한 서버 프로그래밍 기술이다. 

▪ JSP는 PHP와 유사한 형태로 HTML을 중심으로 자바 프로그램과의 유기적인 연결을 지원. 

 - JSP의 특징 

➊ 자바의 모든 기능을 사용할 수 있어 발전 가능성이 무한하다. 

➋ 서블릿으로 컴파일된 후 메모리에서 처리되기 때문에 많은 사용자의 접속도 원활하게 처리할 수 있다. 

➌ JSP 또는 다른 서블릿 간의 데이터를 쉽게 공유 할 수 있다. 

➍ 빈즈(Beans)라고 하는 자바 컴포넌트를 사용할 수 있다

➎ 커스텀 태그를 만들어 사용할 수 있으며, JSTL(JSP Standard Tag Library)과 같은 태그 라이브러리를 이용할 수 있다.

➏ 스트러츠, 스프링 @MVC 등 다양한 프레임워크와 결합하여 개발할 수 있다.

 

2. JSP 학습에 필요한 기술

 

1. JSP 전체 동작 과정 

• JSP 는 HTML 과 유사한 처리 과정을 거치나 HTML이 단순 서버 파일을 브라우저로 보내주는 것에 비해 JSP는 서버에서 프로그램이 실행된 결과를 웹 브라우저로 전달하는 차이가 있음.

JSP 전체 동작 과정

 

2. 서블릿 컨테이너 내부 과정 

▪ JSP와 서블릿 차이 

• JSP는 HTML과 같은 일반적인 텍스트 파일 구조 

• 서블릿은 자바 소스로 작성된 클래스 파일 구조 

• JSP는 서블릿 컨테이너에 의해 서블릿 형태의 자바 소스로 변환되어 클래스로 컴파일 됨

▪ 서블릿 컨테이너 

• 서블릿 컨테이너는 서블릿을 실행하고 JSP를 서블릿 코드로 변환하는 기능을 수행함. 

• 변환된 JSP의 서블릿 클래스를 실행하고 웹 서버의 메모리에 적재하고 사용자 요청에 따라 실행.

 

◼ JSP에 관해서 이것만은 알고 있자. 

➊ JSP는 일반 텍스트 파일로 되어 있다(텍스트 파일은 컴퓨터가 이해할 수 없다. 즉 실행 가능한 프로그램이 아 니며 특정 동작을 할 수 없다).

➋ JSP는 HTML 코드와 몇몇 특수한 태그, 그리고 자바 코드가 섞여 있다.

➌ 사용자가 요청할 경우 JSP는 컨테이너(톰캣)에 의해 서블릿 형태의 .java 소스로 변환되고 컴파일된다.

➍ 컴파일된 .class는 컴퓨터에서 실행할 수 있는 형태로 특정한 기능을 수행할 수 있게 된다. 이후 소스 변경 전 까지 해당 파일은 메모리에 상주하면서 다시 컴파일 되지 않고 서비스된다.

 

반응형

'잡동사니' 카테고리의 다른 글

[JSP] JSP 기본 문법  (0) 2020.06.16
[JSP] 서블릿의 이해  (0) 2020.06.16
[JSP] JSP 개발환경 구축  (0) 2020.06.16
[JSP] 웹 프로그래밍 언어와 주요 기술  (0) 2020.06.16
네트워크, 인터넷, 웹  (0) 2020.06.16

1. 자바 개발환경 - JDK

 - 3 Spring MVC 5 - JDK 설치  설정

 

2. JSP 운영환경(서블릿 컨테이너) - 아파치 톰캣

▪ 아파치 톰캣(Apache Tomcat)은 웹 서버 소프트웨어의 하나로, 서블릿 컨테이너라고도 한다. 

▪ 서블릿 컨테이너는 서블릿과 JSP를 실행할 수 있는 환경을 말한다. 기본적으로 웹 서버의 기능도 포함하고 있으며 자바로 개발되어 있다. 

▪ 개발용이 아닌 실제 서비스용으로 웹 서버를 운영하려면 아파치 웹 서버를 설치하고 서블릿 컨테이너로 톰캣을 사용할 수 있도록 설정하는 것이 좋음.

 - 4강 Spring MVC 5 - Apache Tomcat 설치

 

3. 통합 개발환경 구축: 이클립스

▪ 이클립스(Eclipse)는 IBM에서 개발해 오픈소스 프로젝트로 기증한 통합 개발환경이다. 

 - 5강 Spring MVC 5 - 이클립스 설치 및 개발환경 구축

+ 이클립스 환경설정 텍스트 인코딩 설정하기

▪ 프로그램 개발 시 한글 사용은 여러 문제를 발생시키는 원인이 됨.
▪ 다국어를 지원하는 프로그램 개발을 위해서는 유니코드 기반인 UTF-8 의 사용이 권장됨.

[Window] - [Preferences]

➊ [General] → [Workspace] → Text file encoding 항목을 Other 로 변경한 뒤 UTF-8로 설정

➋ 자바 클래스 인코딩 설정 : [Preferences] - [General] → [Content Types] → Java Class File에 대한 Default encoding 값을 UTF-8 로 입력 후 <Update> 버튼

➌ JSP 파일 인코딩 설정 : [General]→[Content Types] → [Text] → JSP 항목을 UTF-8 로 변경 후 <Update> 버튼

➍ HTML / JSP 코드 인코딩 설정 : [Web] → [HTML Files], [JSP Files] 항목을 ISO 10646/Unicode(UTF-8)로 변경

반응형

'잡동사니' 카테고리의 다른 글

[JSP] 서블릿의 이해  (0) 2020.06.16
JSP  (0) 2020.06.16
[JSP] 웹 프로그래밍 언어와 주요 기술  (0) 2020.06.16
네트워크, 인터넷, 웹  (0) 2020.06.16
RTCMultiConnection 화상채팅 구현하기  (0) 2020.05.27

대표적인 웹 개발 기술

1. 클라이언트 기술 

▪ 기본적으로 브라우저에 의해 처리되는 요소

▪ 화면 구성, 스타일, 동적 이벤트처리 등 사용자 상호작용 담당

▪ HTML(Hyper Text Markup Language) 

• 웹 서비스를 표현하기 위해 사용하는 언어. 

• <HTML></HTML> 과 같은 마크업 구조. 

• 최근 HTML5 가 널리 사용되고 있음.

 

▪ 자바스크립트(JavaScript) 

• 자바와 유사한 문법구조를 제공하는 웹 클라이언트 개발 언어. 실제 자바와는 무관함. 

• 웹 브라우저 에서 해석함. 웹 브라우저 성능 평가에서 매우 중요한 요소가 됨. 

• jQuery 와 같은 공개 라이브러리가 유명함. 

• JSON(JavaScript Object Notation)은 클라이언트 서버간 정보 교환에 널리 사용.

 

▪ CSS(Cascading Style Sheet) 

• HTML에서 레이아웃이나 디자인 요소를 분리. 

• 최근 웹 클라이언트 개발은 HTML5+CSS3+JavaScript 임.

 

2. 서버 기술

▪ HTML 파일은 파일 내용을 수정하기 전까지는 내용이 변하지 않는 정적인 구조.

▪ 사용자 요청에 따라 다른 정보를 제공하거나 데이터베이스를 통한 서비스를 위해서는 별도의 프로그램 기술이 필요.

▪ ASP.Net

MS 윈도우 기반의 서버 프로그램 기술 

• .Net 기반의 컴포넌트 사용 가능. 

• MS 윈도우 종속과 상용 라이센스 정책으로 대규모 공개 웹 서비스 개발에는 거의 사용되지 않음.

 

▪ PHP(Professional Hypertext Preprocessor) 

• 처리속도가 빠르고 다양한 운영체제와 웹 서버 환경에 서 실행 가능. 

• APM = Apache + PHP + MySQL • 오픈소스 게시판, 위키 프로그램, 연구용으로 널리 사용됨.

 

▪ JSP(Java Server Page) 

• 자바 서블릿 기반의 웹 프로그래밍 기술 

• 자바의 모든 기능을 사용할 수 있으며 안정성과 확장성이 뛰어나 가장 많이 사용되고 있는 웹 프로그래밍 기술임.

반응형

'잡동사니' 카테고리의 다른 글

JSP  (0) 2020.06.16
[JSP] JSP 개발환경 구축  (0) 2020.06.16
네트워크, 인터넷, 웹  (0) 2020.06.16
RTCMultiConnection 화상채팅 구현하기  (0) 2020.05.27
WebRTC  (0) 2020.04.15

1. 네트워크 

 TCP/IP 

 TCP/IP(Transmission Control Protocol/Internet Protocol)는 컴퓨터 간에 통신할 수 있도록 만든 프로토콜. 

▪ 인터넷의 기반 네트워크 시스템으로 하드웨어, 운영체제, 접속 매체에 관계없이 동작할 수 있는 개방형 구조.

TCP/IP의 계층

 IP 주소

 IP 주소(IP Address)는 TCP/IP로 연결된 네트워크 에서 각각의 컴퓨터를 구분하려고 사용하는 주소.

▪ 숫자로 구성되어 있고 “123.123.123.123” 과 같이 네 개로 구분된 10진수를 사용.

 

2. 인터넷(Internet) 

▪ 인터넷은 전 세계가 하나로 연결된 네트워크를 의미하는 고유명사로, Internet으로 표기.

▪ 인터넷은 네트워크 인프라이고 www, email 등은 인터넷 기반 서비스 임.

▪ 인터넷 ≠ 웹

대표적인 인터넷 기반 서비스

 

 프로토콜 

▪ 네트워크에 연결된 컴퓨터들 간의 통신 규약 

▪ 인터넷 서비스들은 TCP/IP 4계층 중 응용계층에 해당함. 

 포트 

▪ 네트워크 서비스를 접속하기 위한 접점. 

▪ 컴퓨터에서 여러 네트워크 서비스를 제공하는 경우 이를 구분하기 위한 용도로 사용. 

▪ 은행의 구분된 업무 창구와 유사한 개념.

 DNS(Domain Name System) 

• 인터넷에 연결된 컴퓨터 구분을 위해 사용하는 IP주소 대신 알기 쉬운 이름 형태로 컴퓨터를 구분하기 위 한 인터넷 서비스/시스템 중 하나.

• 호스트(컴퓨터) 이름(www) + 도메인 이름(naver.com) 형태로 구성됨

 

3. 웹 

▪ 월드 와이드 웹(World Wide Web, www) 

▪ 인터넷에서 운영되는 서비스 중 하나로 많은 사람들이 ‘웹 = 인터넷’이라고 생각할 정도로 대표적인 인터넷 서비스임.

 서버(Server) 

• 네트워크에서 서비스를 제공하는 컴퓨터

• 웹 서버, FTP 서버, 파일 서버, 프린트 서버

 클라이언트(Client)

• 서비스를 이용하는 컴퓨터 → 웹 브라우저(Web Browser) 

• PC, 스마트폰, 태블릿 등

인터넷 익스플로러(Internet Explorer), 크롬(Chrome), 파이어폭스(Firefox), 애플 사파리(Safari) 등

 HTTP(Hyper Text Transfer Protocol)

• 웹 서비스에 사용되는 통신 규격

• 간단한 명령어와 헤더 규격으로 되어 있음
 

클라이언트와 서버간 동작 과정

 

반응형

'잡동사니' 카테고리의 다른 글

[JSP] JSP 개발환경 구축  (0) 2020.06.16
[JSP] 웹 프로그래밍 언어와 주요 기술  (0) 2020.06.16
RTCMultiConnection 화상채팅 구현하기  (0) 2020.05.27
WebRTC  (0) 2020.04.15
TOEIC Speaking Part2 빈출 표현  (0) 2020.03.05

RTCMultiConnection은 피어 투 피어 응용 프로그램 (화면 공유, 오디오 / 비디오 회의, 파일 공유, 미디어 스트리밍 등)을위한 WebRTC JavaScript 라이브러리입니다.

 

1. 폴더 생성

폴더 생성

 

2. 깃에서 코드 다운받기

git clone https://github.com/muaz-khan/RTCMultiConnection.git ./
sudo npm install --production

깃에서 파일 다운받기
node_modeules 폴더가 생긴것을 확인 할 수 있다.

 

3. server.js 실행

node server.js

 

서버가 올바르게 실행되고 있는지 확인하는 방법

 https://도메인:9001/socket.io/socket.io.js 서버에 로드 할 수 있다면 정상적으로 작동하고 있는 것이다.

※ config.json 

aws와 https를 사용하기 때문에 설정 파일을 변경해줘야한다. 

( aws 9001 포트도 열어줘야한다. )

config.json

{
  "socketURL": "https://jungeun96.cf:9001/", //도메인
  "dirPath": "/var/www/html/RTCMultiConnection", // 폴더 경로
  "homePage": "/demos/index.html", // 첫 화면
  "socketMessageEvent": "RTCMultiConnection-Message",
  "socketCustomEvent": "RTCMultiConnection-Custom-Message",
  "port": "9001", // 포트번호
  "enableLogs": "false",
  "autoRebootServerOnFailure": "false",
  "isUseHTTPs": "true", // https 사용
  "sslKey": "/home/privkey.pem", //인증서 위치
  "sslCert": "/home/cert.pem", //인증서 위치
  "sslCabundle": "",
  "enableAdmin": "false", 
  "adminUserName": "username",
  "adminPassword": "password"
}

 

 

 

반응형

'잡동사니' 카테고리의 다른 글

[JSP] 웹 프로그래밍 언어와 주요 기술  (0) 2020.06.16
네트워크, 인터넷, 웹  (0) 2020.06.16
WebRTC  (0) 2020.04.15
TOEIC Speaking Part2 빈출 표현  (0) 2020.03.05
TOEIC Speaking Part3 빈출 표현  (0) 2020.03.05

phpstorm을 키고 새 프로젝트를 만든다.

phpstorm에서 만든 작업물들을 AWS에 설치된 내 서버에 올려야 한다.

Tools -> Deployment -> Configuration... 클릭

왼쪽 상단에 + 버튼을 눌러 아무 이름으로 정해준다.

Type은 AWS 인스턴스를 생성할 때, pem키를 발급 받았으면 SFTP로 설정해준다.

- SFTP host: 자신의 AWS 아이피

- Private key file: 옆에 …버튼을 눌러 자신의 pem키를 설정한다.

 

이후, Test SFTP connection... 버튼을 눌러 Success 되는지 확인한다.

Mappings 탭으로 가서 Deployment path on server '이름' : 부분을 / 로 설정한다.

(이거 안하면 Tools -> Deployment -> Upload 가 활성화 되지 않는다. )

OK버튼을 누르면 끝.

 

Tip1.

Tool > Deployment > Option

On explicit save action (Ctrl+S) 를 선택하여 Ctrl+S를 눌렀을 때 변경된 내용을 자동으로 원격 전송하도록 한다.

 

Tip2.

서버 폴더를 보고 싶을 때 ( Remote Host 메뉴 )

- Tools -> Deployment-> Browse Remite Host 

반응형

 

Let 's Encrypt 전제 :

인증서를 사용하려는 등록 된 도메인 이름을 소유하거나 제어해야합니다.

( 처음에 도메인 생성도 안하고 인증서 발급받으려고 삽질함. )

1. 

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.

-> 이미 사용중인 도메인인지 확인해볼 것.

 

2.

Detail: DNS problem: NXDOMAIN looking up A for www.example.com -
check that a DNS record exists for this domain

-> 도메인이 잘 생성되었는지 확인 할 것

 

3. 

Detail : DNS problem: query timed out looking up A for example.com
Detail : No valid IP addresses found for example.com

.-> 도메인과 aws 연결을 시켰는지 확인할 것

 

반응형

환경

- Utuntu

- Nginx

- aws 

 

전제 조건

- 인증서를 사용하려는 등록 된 도메인 이름을 소유하거나 제어해야합니다. 

 1. 무료 도메인 발급하기 : freenom ( https://www.freenom.com/en/index.html?lang=en )

https://coyagi.tistory.com/entry/%EB%AC%B4%EB%A3%8C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EA%B0%84%EB%8B%A8%ED%95%9C-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%B0%9C%EA%B8%89-freenom

 

[무료 도메인] 간단한 도메인 발급 (freenom)

간단한 도메인 발급 (freenom 활용) 도메인을 발급받을 수 있는 사이트는 매우 많다. 카페24, 가비아 등등.. 그중 무료 도메인발급이 가능하면서 사용자가 많은 freenom 을 사용해보자. [카페24] [가비아] 먼저..

coyagi.tistory.com

2. AWS 외부 도메인 연결 방법

http://makebct.net/aws-%EC%99%B8%EB%B6%80-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0-%EB%B0%A9%EB%B2%95-1/?cat=989/

 

AWS 외부 도메인 연결 방법 | make BCT

외부 도메인을 AWS에 연결하는 방법을 알아 보겠습니다. 먼저, AWS에 로그인 합니다. 로그인 후, [AWS] 서비스 – 네트워킹 및 콘텐츠 전송 – Route 53 클릭 [Create Hosted Zone] 클릭 위 그림의 Domain Name에 본인 소유의 도메인을 입력하고 [Create] 클릭 Route 53이 도메인 이름을 기반으로 Hosted Zone을 생성합니다. Hosted Zone을 선택하고, [Go to Record] 클릭 레코드 중 N

makebct.net

 

1 단계-Certbot 설치

Let 's Encrypt를 사용하여 SSL 인증서를 얻는 첫 번째 단계는 certbot서버에 소프트웨어 를 설치하는 것입니다. 

먼저 저장소를 추가하십시오.

$ sudo add-apt-repository ppa:certbot/certbot

ENTER 수락 하려면을 (를) 눌러야 합니다. 그런 다음 패키지 목록을 업데이트하여 새 저장소의 패키지 정보를 선택하십시오.

$ sudo apt-get update

마지막으로 다음과 apt-get같이 Certbot을 설치하십시오 .

$ sudo apt-get install python-certbot-nginx

 

2 단계 — Nginx 설정

Certbot은 Nginx에 대해 SSL을 자동으로 구성 할 수 있지만 구성에서 올바른 server블록 을 찾을 수 있어야합니다 . server_name인증서를 요청하는 도메인과 일치 하는 지시문을 찾아서이를 수행 합니다. 새로 Nginx 설치를 시작하는 경우 기본 구성 파일을 업데이트 할 수 있습니다.

$ sudo nano /etc/nginx/sites-available/default

기존 server_name줄을 찾으십시오 .

# / etc / nginx / sites-available / default 파일
server_name example.com www.example.com;

도메인 이름을 작성하고 편집기를 종료하십시오. 

( a : 입력모드 전환 / 강제 저장 후 종료 : Esc 누른 후, :wq! )

다음을 사용하여 구성 편집 구문을 확인하십시오.

$ sudo nginx -t

오류없이 실행되면 Nginx를 다시로드하여 새 구성을로드하십시오.

$ sudo service nginx reload

Certbot은 이제 올바른 server블록 을 찾아 업데이트 할 수 있습니다. 이제 HTTPS 트래픽을 허용하도록 방화벽을 업데이트하겠습니다.

 

3 단계 — SSL 인증서 받기

Certbot은 다양한 플러그인을 통해 SSL 인증서를 얻는 다양한 방법을 제공합니다. Nginx 플러그인은 필요할 때마다 Nginx를 재구성하고 구성을 다시로드합니다.

$ sudo certbot --nginx -d example.com -d www.example.com

성공 certbot하면 HTTPS 설정을 구성 할 방법을 묻습니다.

2 번 선택을하고를 누르십시오 ENTER. 구성이 업데이트되고 Nginx가 새로 고침되어 새 설정을 가져옵니다. certbot프로세스가 성공하고 인증서가 저장된 위치를 알려주는 메시지로 마무리됩니다.

 

4 단계-Certbot 자동 갱신 확인

암호화하자 인증서는 90 일 동안 만 유효합니다. 이를 통해 사용자는 인증서 갱신 프로세스를 자동화 할 수 있습니다.

$ sudo certbot renew --dry-run

 

 

반응형

+ Recent posts