aws는 free tier가 1년이지만 oracle cloud는 평생(상시常時) 무료라고 합니다.
https://www.oracle.com/kr/cloud/free/

그래서 도전해 봤는데, 삽질을 많이 하고, 경험을 정리해서 올립니다.

1. https://cloud.oracle.com 에 회원가입합니다. 신용카드 등록 필요합니다.

2. 왼쪽 상단 메뉴아이콘 눌러서 `컴퓨트 > 인스턴스`를 클릭합니다. Free Tier로 2개까지 무료 인스턴스를 만들 수 있습니다.

인스턴스 메뉴

3. `인스턴스 생성`을 클릭하고 설정을 시작합니다. 서버 이미지는 Oracle Linux 8이 기본인데, 네트워크 설정 등에서 삽질을 무한히 경험해서, 개인적으로는 CentOS나 Ubuntu를 추천합니다. 우측의 이미지 변경을 클릭합니다.

이미지 변경

이 글은 CentOS 8 Stream 이미지를 기준으로 진행하겠습니다.

CentOS 8 Stream 이미지 선택

자동으로 키 쌍 생성하면, Private Key를 다운로드 받을 수 있습니다. 사용자 홈에 `~/keys/` 폴더를 만들고, 다운 받은 key파일을 이동합니다. `chmod 400 ~/keys/ssh-key-2023-07-09.key`으로 퍼미션을 수정합니다.

접속 key

인스턴스를 만들면 공용 IP가 자동으로 붙습니다.

인스턴스 정보

터미널에서 `ssh -i ~/keys/ssh-key-2023-07-09.key opc@132.145.91.36` 명령으로 접속할 수 있습니다. fingerprint 저장은 `yes` 라고 답합니다. 윈도우의 경우 Git Bash창에서 같은 명령을 사용할 수 있습니다. 우분투 이미지는 opc@ 대신 ubuntu@ 아이디로 접속할 수 있습니다.

인스턴스 접속 시도
인스턴스 접속 완료

`sudo dnf install nginx` 명령으로 웹서버를 설치합니다. aws보다는 약간 오래 걸리는 느낌이 있습니다.

nginx 웹서버 설치

설치 후 다음 명령으로 nginx를 시작합니다. 
`sudo systemctl start nginx` 그리고, 잘 동작하는지 확인합니다.
`curl localhost`

nginx 서버 시작

AWS와 달리 인스턴스 안에서도 iptables 방화벽을 열어야 됩니다. iptables 리셋하는 방법도 있는데, 나중에 다른 글에서 다루겠습니다. 
`sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT`

iptables에 80 포트 추가

클라우드 가상 방화벽도 열어야 됩니다. 서브넷을 선택합니다.

서브넷 선택

보안 목록에 `Default Security List*`를 선택합니다.

보안 목록 선택

`수신 규칙 추가`를 선택하고 소스 CIDR은 `0.0.0.0/0`, 대상 포트 범위에 `80`을 입력하고 추가합니다.

80 포트 추가

브라우저에서 nginx 화면을 확인할 수 있습니다. 역시 오라클이라 빨간색으로 테마를 꾸며놨습니다.

브라우저 확인

 

https://okjsp.tistory.com/1165644382

 

오라클 클라우드 무료로 사용시 주의사항

무료에는 대체로 조건이 있습니다. 그냥 막 퍼주는 것은 아닙니다. 유휴 컴퓨팅 인스턴스 Idle Compute Instances Important 유휴 컴퓨트 인스턴스 회수 Reclamation of Idle Compute Instances 유휴 상시 무료 컴퓨

okjsp.tistory.com

참고:

 

astro를 통해서 빠르고, 가볍게 웹사이트를 만들 수 있습니다. 아래 이미지는 next.js와 용량을 비교한 것입니다.

capture from: https://astro.build/

Astro는 빠르게 콘텐츠 중심의 웹사이트를 구축하기 위한 올인원 웹 프레임워크입니다.

  • Component Islands: 더 빠른 웹 사이트 구축을 위한 새로운 웹 아키텍처입니다.
  • 서버 우선 API 설계: 사용자 장치에서 값비싼 작업을 제거합니다.
  • 제로 JS, 기본적으로: 속도를 늦추는 JavaScript 런타임 오버헤드가 없습니다.
  • 에지 지원: Deno 또는 Cloudflare와 같은 글로벌 에지 런타임을 포함하여 어디에나 배포할 수 있습니다.
  • 사용자 지정 가능: Tailwind, MDX 및 100개 이상의 기타 통합 중에서 선택할 수 있습니다.
  • UI에 구애받지 않음: React, Preact, Svelte, Vue, Solid, Lit 등을 지원합니다.

파일 기반의 라우팅을 제공하기 때문에, Next.js의 특징을 가져왔습니다. https://docs.astro.build/en/core-concepts/routing/

# Example: Static routes
src/pages/index.astro        -> mysite.com/
src/pages/about.astro        -> mysite.com/about
src/pages/about/index.astro  -> mysite.com/about
src/pages/about/me.astro     -> mysite.com/about/me
src/pages/posts/1.md         -> mysite.com/posts/1

Astro Islands라는 아일랜드 아키텍처를 사용하는 것이 특징적입니다.

Source:  Islands Architecture: Jason Miller

시작은 node.js 기반에서 쉽게 시작할 수 있습니다.

npm create astro

생성된 폴더로 이동해서 `npm run dev` 로 프로젝트를 바로 실행할 수 있습니다.

https://docs.astro.build/en/getting-started/

 

Getting Started

A basic intro to Astro.

docs.astro.build

소개 동영상: https://www.youtube.com/watch?v=dsTXcSeAZq8 

astro 100초 소개

 

adobe가 macromedia를 인수한 뒤에 웹 생태계에 많은 영향을 주고 있습니다. 

요즘 페북에서 많이 언급되는 개발용 에디터가 Brackets입니다.


매우 가볍습니다. 용량은 34메가. 참고로 이클립스 웹 개발용(JavaEE 패키지)은 247메가입니다. 1/7 사이즈입니다.

http://brackets.io


홈페이지에서 얘기하는 Code the Web은 웹 개발용 편집기라는 의미가 담겨 있습니다.


brackets의 소스는 github에서 오픈소스로 개발되고 있습니다. adobe 에서 관리하는 프로젝트입니다. https://github.com/adobe/brackets


File > Live Preview (단축키 Ctrl+Alt+P)를 통해서 HTML/CSS/JS의 라이브 편집이 가능합니다. 


파일을 저장하지 않아도 크롬브라우저에서 바로 확인이 가능합니다. 


자바스크립트 파일 편집할 때는 JSLint가 바로 적용됩니다. 저장할 때마다 JS의 코드를 검사해서 알려줍니다.


JSLint에서 보이는 에러를 줄이기만 해도 코드가 예뻐집니다.


윈도우, 맥, 리눅스에서 모두 사용 가능하기 때문에 sublime text와 경쟁이 될 것 같습니다. 오픈소스로 만들어지는 것이기 때문에 발전속도가 꽤 빠를 것으로 예상됩니다.


테스트 자동화를 위한 것 중에서 브라우저를 통한 테스팅을 자동화 시킨 것 중 추천할 만한 것이 Selenium 입니다. 쉬운 사용법과 Ajax 호출까지 지원되는 등 다양한 테스트를 녹화해서 사용할 수 있습니다. 이에 대한 사용법과 Ant와 Eclipse 에서도 사용하는 법이 소개되어 있습니다.

요약: Selenium은 자동화된 웹 애플리케이션 테스트에 사용하는 테스트 프레임워크입니다. Selenium RC(Selenium Remote Control)에 익숙해지면 다양한 브라우저를 대상으로 웹 애플리케이션을 테스트하여 웹 애플리케이션의 품질이 최상의 상태가 되도록 할 수 있습니다.

http://www.ibm.com/developerworks/kr/library/wa-testweb/index.html


Selenium에 관해서는 오래 알아왔는데 블로그에는 첫 포스팅이군요.


세미나 하나 소개합니다.
저도 발표합니다만 경준호(http://firejune.com/)님을 비롯해 황리건님과 조범석(아저씨)의 발표가 기대됩니다.

  • iUI는 okjsp의 모바일 사이트에 적용된 기술입니다. http://www.okjsp.pe.kr/m/ 
  • 웹킷의 개발도구는 firebug와 비슷한데, 이에 대한 소개를 합니다.

 

안녕하세요. WebDevMobile 입니다.

8월 열린세미나를 안내해 드립니다.
8월 휴가철에 많이들 떠나셨을 것으로 생각되는데 웹데브모바일의 세미나는 계속됩니다. ^^
HTML5 실제 서비스 적용 사례와 모바일 UX 관련된 토픽으로 준비해 보았습니다. 

  • 일시 : 8월 14일 토요일 오후 1시 30분
  • 장소 : 서초역 한국HRD 아카데미 지하1층 Blue 대회의실 (서초역 8번출구에서 5분거리/약도하단참조)
  • 참가비 : 22,000원 부가세포함 (세금계산서 문의 webdevmobile@gmail.com)
  • 참가인원 : 80명
  • 접수 :  입금순 80명 입금시 자동마감 (80명 이후 입금자 환불처리)
  • 입금정보 : 국민은행 022-21-0654-618 조만영
  • 환불안내 : 8월 13일 밤 12시이전에 불참통보하신 분에 한해 환불, 그외 미참석하신 분들은 환불안됨

프로그램

13:30 - 14:20

hrg8_bigger.PNG

황리건 과장 /
UX Evangelist 

한국마이크로소프트http://uxfactory.com운영자

모던 웹디자인 트렌드와 이를 준비하는 IE9 



최근 웹디자인의 스타일이 새로운 트렌드와 브라우저의 혁신으로 크게 달라지고 있습니다. 사용자들의 눈을 사로잡는 웹사이트들이 기존에 우리가 알고 있던 웹과는 또 다른 모습이 되고 있어요.
해외에서는 이러한 웹을 가르켜 현대적인 웹, 즉 모던 웹이라고 하고, 모던 웹디자인 스타일이 널리 알려지고 있어요.
국내에서는 다루어 진 적이 별로 없는 모던웹디자인 트렌드를 살펴보고, 모던 웹을 준비하는 지난 주 공개된 IE9 플랫폼 프리뷰 4탄도 살펴보도록 합니다.


14:20 - 14:30 Q&A
14:30 - 15:20

kenu_profile.png 
허광남 팀장

(주)모비젠

/ MA연구팀 
http://okjsp.pe.kr 운영자

iUI와 웹킷의 모바일웹 개발도구

  • 모바일웹 라이브러리 iUI 
    1. iUI 어디에 쓸까 
    2. iUI 개발가이드
  • Webkit의 모바일웹 개발도구 
    1. 자바스크립트 개발 멋있게 
    2. Webkit 개발도구의 주요 기능들 
    3. 나는 어떤 녀석이 로딩 안되고 시간끄는지 알고 있다. 
    4. 모바일웹 브라우저 에뮬레이터


15:20 - 15:30 Q&A
15:30 - 15:40 Coffee Break
15:40 - 16:30

 firejune_profile.jpg

경준호님(파이어준)

CSS3의 특징과 사용 방법
  1. 예제를 통한 css3 사용방법
  2. CSS3를지원하지 않는 환경 고려하기
  3. CSS3로 인한 작업환경


16:30 - 16:40 Q&A
16:40 - 17:30

codefarmer_73.jpg

조범석대리(농장장) 

GS홈쇼핑 IT 혁신팀 근무
모바일 웹 서비스에 신기술 도입 프로세스와 실무사례(HTML5/CSS3)
  • 시간과 기술은 우리를 기다려 주지 않습니다  
  • 일정의 무제
  • 환경 및 기술의 변화  
  • 우리는 준비되어 있어야 합니다.  
  • 스마트하게 일하기  자료 수집  개발 도구  
  • 그러면 필요할 때 달릴 수 있습니다.
  • 실무 사례 - CSS3 Animation/ HTML5 localStore 를 이용한 Client DB  
  • 그 이후



17:30 - 17:40 Q&A
17:40 - 18:00 경품 추첨 및 종료
@estima7 님의 트위터를 통해서 알게된 정보입니다.
http://www.webdirections.org/sotw10/ 에서 가져온 그림이 많은 것을 말해주고 있습니다.

개발에 편한 브라우저가 Firefox가 1위인 것은 당연하다 생각되는데, Safari가 2위인 것도 한국인으로서는 의외이고, 구글 크롬브라우저가 3위입니다.
테스트 브라우저에서 IE의 위상은 최종 사용자에서 IE의 비율을 제대로 반영한 것이 아닌가 생각됩니다.
모바일 브라우저에서는 모바일 사파리가 압도적이고, javascript 라이브러리에서 jQuery의 78% 점유율은 대단하게 느껴집니다.

국내 웹 개발자들의 현황과는 다르다고 생각이 되는데, 지난 번 Safari 브라우저의 개발자 지원 도구를 보면서 상당히 진보했다고 느꼈는데, 찬찬히 현재 개발환경을 개선할 점을 찾을 수 있지 않을까 생각됩니다.

http://www.webdirections.org/sotw10/ 에 더 자세한 정보들이 담겨있습니다.

sponsored post : [Adobe RIA 공식 사이트(www.adoberia.co.kr)]


아이폰에서 접속하는 웹페이지의 로그인 아이디 입력은 번거롭게 만듭니다. 첫글자가 자동으로 대문자로 입력되도록 shift키가 켜져있기 때문이죠.

Safari 브라우저에 특화된 속성이 있습니다.

<input type="text" id="userid" value="" autocapitalize="off"/>

마찬가지로 autocorrect="off" 를 추가하면 맞춤법 검사로 인해 내용이 바뀌는 것도 방지할 수 있습니다.
관련글: 
http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TextandWeb/TextandWeb.html


sponsored post : [Adobe RIA 공식 사이트(www.adoberia.co.kr)] 

http://live.eclipse.org/
사용자 삽입 이미지

이클립스 홈페이지 우측 상단의 아이콘 중에 라이브 이클립스 사이트로 이동하도록 되어있습니다.

웹 세미나를 줄여서 웨비나라고 부르는데, 동영상, pt, 채팅이 고스란히 재현되는군요. 제품은 adobe사의 breeze를 이용했습니다만 컨텐츠가 장난이 아니게 쌓여있습니다. 계속 쌓이고, 또 앞으로 있을 웨비나에 대한 스케줄도 공시하고 있습니다.

mylyn2.2 에 대한 전세계 이클립스를 사용하는 개발자들의 관심이 뜨거운 것도 알 수 있습니다.

자주 가 봐야겠습니다.

이클립스를 사용해서 개발을 하는 것은 기존 텍스트 에디터를 이용해서 작업하는 것과 많은 차이를 갖고 있다. 특히 웹 애플리케이션 개발에서는 더 많은 차이가 있게 되는데, 우선 언급해 볼 것이 서비스에 구성된 디렉토리와 개발에 사용되는 디렉토리의 차이점이다.

웹 애플리케이션은 서블릿 스펙에 따라서 디렉토리가 정해진 규칙을 갖고 있다.

/WEB-INF/ 브라우저를 통해서 접근이 불가능한 웹 애플리케이션 핵심정보들을 포함하고 있는 디렉토리
/WEB-INF/classes/ 패키지에 따른 디렉토리별 class파일과 properties 파일이 위치하는 곳
/WEB-INF/lib/ 웹 애플리케이션에서 사용되는 jar 파일이 존재하는 곳
/META-INF/context.xml 톰캣에서 사용되는 manager를 통한 배포용 웹 애플리케이션 Context정보 파일
브라우저를 통해서 접근 가능한 리소스들은 그 외의 디렉토리에 놓으면 된다.
특히 브라우저의 JVM 위에서 돌아가는 애플릿 class와 관련 jar 들은 /WEB-INF/ 밖에 위치해야 한다.
이 디렉토리들을 묶어서 Context 라고 얘기한다.

서비스와 관련된 디렉토리 구조가 위와 같고, 개발용 디렉토리 구조는 java 파일이라는 특징 때문에 다음과 같이 구성한다.

/src 패키지에 따른 디렉토리별 java 파일과 properties 파일이 존재하는 곳
/WebContent/ 앞에 언급한 브라우저를 통해서 접근 가능한 리소스들. 웹 애플리케이션의 컨텍스트 루트 디렉토리에 해당.
/WebContent/WEB-INF/ 앞에 언급했던 /WEB-INF/ 디렉토리와 같은 성격
/build/classes  /src 하위 자바파일의 컴파일된 class 들이 놓이는 곳. properties 파일은 자동 복사되는 곳.


개발 디렉토리와 WAS의 서비스되는 디렉토리의 매핑 즉 자연스런 연결은 빌드 툴인 ant를 통하거나 Eclipse같은 IDE에서 자동으로 해준다.

이클립스의 경우 Servers 라는 프로젝트가 웹 프로젝트와 별개로 생성이 된다. 여기에서 설정되는 서버의 세팅은 기본적으로 설치된 세팅과 별도로 운영된다. 즉 톰캣이 설치된 디렉토리의 conf 에 있는 설정과는 별개로 Servers하위의 서버별 server.xml 의 파일에 설정된 내용으로 동작이 된다는 뜻이다.
<%= request.getRealPath("/") %> 를 통해서 확인해 보면 이클립스에서 운영하는 디렉토리가 완전히 엉뚱한 곳에 존재함을 알 수 있다. 웹 프로젝트에서 파일을 변경하면 자동으로 파일이 해당 위치로 복사된다.


관련자료:
http://tomcat.apache.org/tomcat-4.1-doc/appdev/index.html 영문
http://www.apache-korea.org/tomcat/tomcat-4.1-doc/appdev/index.html 번역문

+ Recent posts