5월, 2018의 게시물 표시

AWS Elastic Beanstalk 에서 .ebextensions을 활용하여 scouter agent(host) 백그라우드 프로세스 기동하기

이미지
이번에 IBK창공기업과 AWS Elastic Beanstalk(이하 EB)을 이용하여 어플리케이션을 개발하고 유지보수 하는 프로젝트를 진행하게 되었습니다. 이 어플리케이션은 Spring Boot 기반에 백앤드 API 이었고 별도의 모니터링이 없는 상태에서 로그만 확인하고 있었습니다. 그래서 저희는 APM 오픈소스인 Scouter를 제안하였고, EB에 Scouter를 적용하는 과정을 설명하려고 합니다. AWS Elastic Beanstalk AWS에서는 사용 EC2 인스턴스를 많이 사용해야 돈버는 구조이므로 EB라는 서비스를 출시하였습니다. 단순히 말해 어플리케이션 제작후 손쉽게 서버를 생성하여 배포하는 서비스라고 생각하시면 됩니다. < AWS BeanStalk 워크플로우 > 손쉽게 서버를 생성해야 EC2 인스턴가 자꾸자꾸 늘어나게 되니깐요. 아무튼 이런 구조에서 개발자는 서버 아키텍처에 대한 부담을 줄이면서 손쉽게 백앤드 어플리케이션을 구축 할 수 있습니다. Scouter 오픈소스 APM인 Scouter는 JVM(WAS, Standalone application)을 사용하는 어플리케이션 및 OS 자원에 대한 모니터링 모니터링 기능을 제공합니다. APM : Application performance montoring / application performance management 모니터링 대상 (현재) Java application - Web application (on Tomcat, JBoss, Resin ...), Standalone java application OS - LInux, Windows, Unix 모니터링 대상 (TOBE) Redis, Apach HTTPD, nginX, Nodejs... < Scouter 화면 예시 > 상세내용은 https://github.com/scouter-project/scouter/blob/master/README_kr.md 를 참고하기 바

[AWS] Elastic Beanstalk 데이터베이스 연동 for Node js

이미지
안녕하세요. 남산돈가스 입니다. 지난 번에 이어서 Elastic Beanstalk에 대한 포스팅을 조금 더 이어가보려고 합니다. 저번 포스팅에서는 eb cli를 이용하여 로컬 작업환경에서 유연하게 eb를 컨트롤하는 법을 알아 보았습니다. 이번 포스팅에서는 Elastic Beanstalk 환경에서 데이터베이스(RDS)를 생성하고, 직접 연동하는 법을 소개 해드리려고 합니다. 연동 예제는 Node js기반으로 설명하고, Node js 에서의 DB 접속은 sequelize 라는 npm 모듈을 이용하여 설명드리겠습니다. 먼저, 지난 포스팅에서 이용했던 eb create 라는 명령어를 이용해 새로운 환경을 만들겠습니다. eb create 명령어를 이용하여 "eb-express-staging"이라는 환경을 새로 생성하였습니다. 콘솔로 이동해보니, 환경이 정상적으로 생성 된 것을 아래와 같이 확인하실 수 있습니다. 새로 생성한 환경을 선택하고 왼쪽 탭에 구성으로 가보면, "eb-express-staging" 환경의 구성정보를 확인하실 수 있습니다.  그 중에서 하단에 데이터베이스 항목을 보시면 설정 없이 비어있는 것을 확인하실 수 있습니다. 데이터베이스를 생성하고 연동하기 위하여 데이터베이스 영역 밑 '수정'을 클릭합니다. 데이터베이스 수정페이지에선, 현재 생성되거나, 설정되어있는 DB가 없는 경우 새로 생성할 수 있습니다. DB 엔진, 버전, 인스턴스 종류, 용량, username, password 등 기본적인 정보를 입력한 뒤 적용을 선택합니다. 적용을 누르고, 대략 10~15분이 지나면 새로운 DB가 생성 된 것을 확인하실 수 있습니다.  이렇게 생성 된 DB는 실제 RDS 콘솔에서도 확인하실 수 있습니다. Elastic Beanstalk 콘솔에서 기본적으로 생성한 정보들 이외에도 상세 설정 정보들은 RDS 콘솔

[Android] Shared Element Transition (Kotlin)

이미지
안녕하세요. 명동콜링입니다. 오늘은 안드로이드에서 Activity간 변환 애니메이션에 사용하는 Shared Element Transition을 간단하게 소개하려 합니다. Shared Element Transition이란 Android 5.0 (Lollipop)부터 나온 개념으로, Acvtivity를 전환할 때 A Activity의 지정 컴포넌트를 B Activity와 마치 공유하는 듯한 느낌으로 애니메이션 효과를 주는 기법을 이야기 합니다. 위와같이 마치 하나의 액티비티 내에서 애니메이션을 놓은 듯한 느낌이 드는 Activity전환 기법이라고 할 수 있습니다. 간단한 개요이기 때문에 Activity -> Activity로 이동하는 방법을 알아보도록 하겠습니다. 먼저 A Activity의 레이아웃을 보도록 합니다 Shared Element Transition을 하기 위해서는 애니메이션 처리 할 대상이 A와 B에 존재해야 하며, 각 객체마다 이름을 맞춰야 애니메이션을 전달해줄 수 있습니다. 그 이름을 맞추는 부분이 바로 transitionName이라는 곳입니다.  XML에서는 android:transitionName을 사용하며, Java, Kotlin내에서도 setTransitionName이나 ViewCompat.setTransitionName으로 설정이 가능합니다. 지금은 단일 대상만 애니메이션을 적용하기 때문에 ImageView하나에 imageView라는 이름으로 설정을 해 놓은 상태입니다. 다음으로, B Activity의 레이아웃입니다. 여기에도 transitionName을 imageView로 맞춰놓았습니다. 이렇게 했다고 하여 자동으로 액티비티가 애니메이션 처리되지 않습니다. Activity에서 애니메이션을 허용하기 위해서는 style.xml 에서 다음과 같은 옵션을 넣어주어야 합니다. <item name= "android:windowContentTransition

[AWS] Elastic Beanstalk eb cli 활용하기

이미지
안녕하세요. 남산돈가스입니다. 얼마 전, Elastic Beanstalk로 손쉽게 서버를 구성해보면서, eb cli를 조금 더 유연하게 활용해볼까 라는 생각에 금주 포스팅은, eb cli 활용법에 대한 글을 작성해보려고 합니다. 선행으로 eb cli가 설치되어있다고 가정하고 포스팅을 진행하려고 하니, 아직 eb cli 설치를 하지 못하신 분은  AWS Elastic Beanstalk 명령줄 인터페이스(EB CLI) 설정하기  를 참고하시면 될 것같습니다. eb cli 설치가 되었다면, 터미널에서 eb -h 라는 명령어를 입력해봅니다. commands: abort Cancels an environment update or deployment. appversion Listing and managing application versions clone Clones an environment. codesource Configures the code source for the EB CLI to use by default. config Modify an environment's configuration. Use subcommands to manage saved configurations. console Opens the environment in the AWS Elastic Beanstalk Management Console. create Creates a new environment. deploy Deploys your source code to the environment. events Gets recent events. health Shows detailed environment health. init Initializes your directory with the EB CLI. Creates the

펫어비앤비–반려동물과 함께 할 수 있는 숙소

이미지
안녕하세요~ 오늘은 반려동물과 함께 이용 가능한 반려동물 여행 숙소에 대해서 간략하게 소개해드리겠습니다.~ 펫어비앤비 반려동물과 함께 할 수 있는 숙소 퍼피게스트하우스 강원 양양군 서면 남대처로 530-3 넓은 잔디 마당에서 뛰어 놀 수 있고, 어질리티도 설치 되어 있습니다. 전 견종 숫자 제한 없이 무료입니다. 반려견, 반려묘 없이는 예약이 불가합니다. 반려동물 전용 수영장에서 더위를 식힐 수 있습니다. 즐거운 추억을 만들어 보세요~ 게스트하우스 내에 공동 바스룸이 있습니다. 반려동물 바스룸(드라이룸, 에어탱크, 미용스텐드, 미용도구 구비) 무료사용이 가능합니다. 프렌즈 강원도 강릉시 하나길 117-4 안전 울타리가 설치되어 있는 넓은 잔디 마당에서 즐거운 시간을 보내세요~ 반려견 전용 수영장에서 사랑하는 반려견과 함께 더위를 식힐 수 있습니다. 야외 활동 후 반려동물도 깨끗하게 씻을 수 있는 애견 샤워장이 있습니다.

[반려동물 이야기] 반려동물이 먹으면 좋은 과일, 먹으면 안되는 과일

이미지
반려견들이 먹어도 되는 음식은 어떤게 있을까요 ? 한눈에 보기 쉽게 정리해 보았어요 ~ 반려견이 먹어도 괜찮아요 파인애플, 바나나, 레몬, 키위, 브로콜리, 오이, 고구마, 사과, 토마토, 딸기, 당근, 오렌지 반려견이 먹으면 안되요 ㅠ 반려견들이 먹으면 독이 되는 음식은 어떤게 있을까요? 한눈에 보기 쉽게 정리해 보았어요 포도, 아보카도, 커피, 양파, 날달걀 (날계란), 초콜릿, 우유, 마늘, 버섯 더 자세한 정보는 이곳을 참조해보세요~! http://m.toriter.com/safe/4294967239 그런 눈으로 쳐다봐도 안돼~! 복둥이 님의 둥이

웹 개발 에디터 비교(혹은 node.js 개발)

이미지
node.js 를 활용한 웹개발 및 서버용 API를 서버를 개발하면서 좀더 개발하는데 유용한 에디터가 무엇인가에 대한 고민을 많이 하게 되었습니다. 모 어짜피 이글의 뻔한 결론은 자기한테 맞는 에디터가 가장 좋은 에디터라고 할 수 있겠지만 주관적이지만 괜찮은 에디터(?? IDE)를 소개드리려고 합니다. ATOM <홈페이지 : https://atom.io/ > ATOM의  제일 중요한 특징은 아무래도 무료라고 할수 있습니다. 기존의 ultra edit, ublime Text, Edit Plus 는 유료이지만요 그리고 전세계 사용자들이 업데이트 하는 플러그인이 큰 장점이고요 WIN, LINUX, MAC 모두 설치가 가능합니다. 하지만, 이것은 에디터 이므로 개발에 도움을 주는 자동완성이라든지 pre컴파일 등을 제공하는 부분은 한계가 있습니다. 다운로드 : https://atom.io/ 이클립스 Eclipse(이하 이클립스)는 기본적으로 자바를 지원하는 대표적인 통합 개발 환경(Integrated Development Environment, IDE)입니다. <이클립스: https://www.eclipse.org/ > 가장 큰 장점으로는 크로스 플랫폼(cross-platform)을 지원한다 자바를 기본으로 한 개발도구이기에 반드시 자바를 설치해야만 이용 이클립스로 웹개발은 가능하지만 자바를 개발하는데 최적화된 도구이므로 그렇게 추천하지는 않습니다. 간혹 node.js 개발도 이클립스로 진행하기도 하지만 이것도 비추입니다. 자바기반 IDE라 어플리케이션 자체적으로 무겁습니다. 울트라 에디트 울트라 에디트 이전부터 유료 에디터로 몇가지 부분에 큰장점이 있습니다. <울트라에디트: http://www.ultraeditkorea.com > 기본 텍스트 에디트 기능이 충실하며(편집,검색,모두바꾸기, 파일비교 등) FTP,SFTP를 통한 원격 텍스트 파일 편집이 무지하게 편합니다. Hex 코드를 바로 편집할 수 있으며, 최대 2GB 파일까지 열

[AWS] SES 샌드박스 환경 벗어나기

이미지
지난 포스팅에서 SES 를 활용한 이메일 발송 테스트를 진행해 보았습니다. 지난 포스팅 보러가기(AWS SES 를 활용한 메일발송) 하지만 별도의 요청이 없는 경우 샌드박스 환경 으로 구성됩니다. 확인된 이메일 주소로만 메일 발송이 가능한 문제가 발생하여 테스트 용도 이외에는 활용이 불가능 합니다. 실제 서비스에 적용하기 위해서는 샌드박스 환경에서 제외되도록 AWS 에 요청을 진행해야 합니다. 1. AWS 콘솔에 로그인 합니다. 2. Support Certer – Create  Case – SES Sending Limit Increase 항목으로 이동합니다.   https://console.aws.amazon.com/support/v1?region=us-east-1#/case/create?issueType=service-limit-increase&limitType=service-code-ses 3. 상세 내용을 입력 합니다. - Region : AWS SES 서비스가 설정된 리전을 선택 합니다. - Limit : Desired Daily Sending Quota (필요한 일일 발신 할당량) 을 선택합니다. - New limit value : 원하는 신규 발신 한도를 입력합니다. - Mail Type : 사용하고자 하는 이메일 발신 유형을 선택합니다. - Website URL : 서비스 중인 웹사이트 URL 을 선택합니다. (지원센터에서 서비스 파악용도로 사용됨으로 알맞게 입력하시면 됩니다) - My email sending complies with the AWS Service Terms and AUP (발신 이메일이 AWS 서비스 약관 및 AUP를 준수함) : Yes 선택 - I only send to recipients who have specifically requested my mail (내 메일을 요청한 수신인에게만 보내기) : Yes 선택 - I have

Android CardView의 각 속성 설명

이미지
안녕하세요. 명동콜링입니다. 오늘은 Android에서 사용하는 컴포넌트 중에 하나인 CardView에 대해 알아보려 합니다. CardView는 Android 5.0 (Lollipop)부터 적용된 Material Design에 맞춰 나온 UI로 단어 그대로 크레딧 카드 하나가 놓여져있는 모습과 닮은 컴포넌트라고 할 수 있습니다. 이 컴포넌트의 특이한 점은 일반 UI로 종속이 되어있는 것이 아닌, 다른 Dependency에 분류되어 Gradle을 통해 compile(implement) 시켜주어야만 사용을 할 수 있습니다. 대략적인 UI와 컨셉이 어떻게 되어있는 지는 https://developer.android.com/guide/topics/ui/layout/cardview 위의 해당 구글 개발자 사이트에 잘 설명되어있습니다. 그러나 해당 컴포넌트를 저 문서로만 보고 XML내에서 UI를 그리기에는 알아보아야 할 몇가지 Attribute들이 있기 때문에 이번 포스팅에서는 그 Attribute들을 알아보는 시간을 가지려 합니다. 그럼 CardView에는 어떤 XML Attribute들이 있는지 보도록 합시다 먼저 Google Android API Documents에 나온 XML Attribute들의 목록입니다. 확연히 들어오는 것은 각 Attribute마다 명시되어야 할 설명들이 하나도 적혀있지 않다는 것입니다. 게다가 기본적으로 제공하는 UI가 아니어서인지 XML에서 Attribute를 사용할 때에도 네임스페이스를 따로 추가해야 합니다. 바로 xmlns:app이 그 해당사항이 됩니다. 그래서 CardView만의 XML Attribute를 사용하기 위해서는 기존의 "android:" 가 아닌 "app:" 으로 사용해야 합니다. 참 친절하지 않은 상황이기 때문에 일일히 어떤 요소가 있는 지 파악해보도록 합시다. 1. app:cardBackgroundColor  backgro

[반려동물 이야기] 월화수목금토일

이미지
귀여운 개린이 묘린이들로 보는 월화수목금토일 공감 가시나요..?ㅎㅎ