본문 바로가기
반응형

분류 전체보기379

JSON to Kotlin Class 플러그인 통해 데이터 클래스 생성하기 API에 대한 작업을 하다보면, JSON형식의 데이터를 kotlin의 data클래스로 만들어야 하는 경우가 생깁니다. 비록 Kotlin이 Java에 비해 데이터 클래스의 코드길이를 상당히 줄여주었음에도, 이 단순 작업은 지루하면서도 시간이 걸리는데요. 이러한 단순작업을 간단하게 해주기 위해 플러그인을 사용할 수 있습니다. Kotlin Data 클래스를 위한 플러그인이 바로 Json To Kotlin Class플러그인 인데요. 오늘은 이것을 사용하는 방법에 대해서 정리해 보도록 하겠습니다. 1. Plugin 설치오기 안드로이드 스튜디오에서 플러그인을 얻어오기 위해서는 다음과 같은 과정을 거치면 되는데요. 가장 먼저 Preference창을 엽니다. 아래 이미지와 같이 좌측의 네비게이션 창에서 plugin을 .. 2021. 2. 21.
기존 프로젝트를 Bitbucket과 SourceTree로 올려보자 개발 과정에서 갑자기 아이디어가 떠올라, 아무 생각 없이 안드로이드 프로젝트를 시작해보다가, 나중에 앱 마켓 출시를 목표로 본격적인 개발을 하게 되는 경우가 있습니다. 이런 상황에서, 프로젝트 관리와 형상 관리를 체계적으로 하기 위해, 기존 프로젝트 폴더를 Bitbucket과 같은 형상 관리 도구로 옮기는 작업이 필요한데요. 오늘은 이것의 방법에 대해서 정리해 보겠습니다. 1. 작업 순서 기존 프로젝트를 bitbucket 으로 올려서 관리를 시작할 때는 다음의 순서를 따르면 됩니다. Repository를 생성 기존 프로젝트에서 LocalRepository를 Add remoteRepository를 LocalRepository와 연결 위의 순서대로 하나씩 보도록 하겠습니다. 1. remote Reposito.. 2020. 10. 17.
targetSdkVersion 업데이트 Android10 Q API29 업데이트 강제사항 2020년 8월부터는 구글로부터 아래와 같은 이메일을 보신 분들이 있으실 텐데요. 추가로 해야할 테스트나 코드수정은 부담이지만, 정확히 2020년 11월 2일부터는 API29 이상을 타게팅하지 않으면 업데이트가 되지 않으므로 반드시 해 주어야 합니다. 따라서 미리부터 준비하고 테스트를 해서 유저에게 문제가 되지 않도록 해 주어야 할 텐데요. 오늘은 이것을 할 때 주의해야 할 점들에 대해서 정리해 보도록 하겠습니다. 1. targetSDKVersion수정 targetSdkVersion자체는 쉽게 수정할 수 있습니다. app레벨의 build.gradle을 아래와 같이 수정해 주기만 하면 되는데요. 먼저 targetSdkVersion을 29로 수정해 줍니다. compile시에 사용하는 SDK버전을 설정하는, .. 2020. 10. 9.
안드로이드앱 내부배포시 Play 프로텍트 문제 해결 # 내부 테스트 안드로이드 기기에 직접 배포해서 테스트를 할 때 Play프로텍트에 의해서 차단되는 문제가 발생하게 되는데요. 오늘은 이 문제를 해결하는 방법에 대해서 정리해 보도록 하겠습니다. 1. Play 프로텍트 문제 아래는 안드로이드 기기의 download폴더에 apk파일을 저장해서 실행하면 나오는 화면입니다. 앱스토어에 정상적으로 배포되고 있는 앱이지만, 개발자계정의 GooglePlayConsole의 키가 포함되어 있지 않아서 생기는 문제입니다. 무시하고 설치해도 일부 기능은 사용할 수 있지만, 위치정보등이 정상적으로 동작하지 않으므로 제대로 테스트를 할 수 없는 경우가 많습니다. 2020. 10. 8.
Full Screen Intent Notificaiton 에 관한 정리 # 풀스크린 인텐트 오늘은 Full Screen Intent에 대해서 정리해 보도록 하겠습니다. 다만 Notification의 기본에 대해서는 다른 글에서 다루고 있으니, 이 글에서는 fullScreenIntent에 관한 부분만 다루도록 하겠습니다. 1. Full Screen Intent 전화가 오는 경우나 알람시계와 같이 특정시간에 즉시 그리고 분명하게 유저에게 알려야 하는 경우가있는데요. 스테이터스바에 노티를 보여주는대신에 해당 intent를 launch시켜주어야 할 때가 있습니다. 전체화면 노티라고 생각해 볼 수 있겠지요. 알람앱에게 있어서는 필수적인 부분이라고 할 수 있습니다. 알람이 울리는 즉시 사용자가 알아채고 알람을 Off시키는 노력을 해 주어야 하니까요. Notification.Builder클래스의 함수 AP.. 2020. 10. 2.
Android4를 지원하지 않는 라이브러리들 정리 # API21 이상 안드로이드 개발자들에게 많이 쓰이는 라이브러리인 OKHttp나 Retrofit에서는, 안드로이드5미만의 기기를 지원하지 않겠다고 합니다. 실제로 GalaxyS3같은 안드로이드4기기의 사용자들은 많이 줄어들고 있기는 한데요. 어떻게 해야할까요? 포기해야할까요? 우선 현재 기기들의 API별 분포부터 보도록 하겠습니다. 1. API21이하(Android5미만)를 포기해야 할까? Android Studio에서 Create New Project로 프로젝트를 생성하려고 하면, Minimum SDK를 설정해야하는 부분이 있는데요. 바로 아래에 Help me Choose라는 링크가 있는데, 이를 클릭하면 아래와 같이 가장 최신의 버전별 기기분포를 볼 수 있습니다. 일부 라이브러리들이 API 21이상을 지원하겠다고 하고.. 2020. 8. 5.
Join 에 관해서 정리해 보겠습니다. #SQL 오늘은 관계형 데이터베이스의 핵심인 Join에 대해서 정리해 보도록 하겠습니다. 1. Join 중복정보를 제거하기 위해, 정규화가 된 테이블들이 있을 때, 조각나있는 여러 테이블의 정보를 한번에 합쳐서 Query해야 하는 경우가 발생하는데요. 이 때 여러 테이블들을 합쳐서 필요한 정보를 찾아내는 방법이 JOIN 인데요. 2. Join의 종류 Join의 종류는 테이블을 어떻게 합치느냐에 따라서 달라지는데요. 이를 이해하기 위해서 벤다이어그램을 이용하면 좋습니다. 이에 따라서 크게 LEFT JOIN, RIGHT JOIN, INNER JOIN, FULL OUTER JOIN으로 나눠볼수 있을 텐데요. 하나씩 알아보도록 하겠습니다. 2-1. LEFT JOIN 아래와 같이 A테이블에서 필요한 일부 정보를 B에서 가.. 2020. 5. 22.
MySql 의 기본 사용법과 주요 명령어들 총정리 오늘은 Mysql의 기본 사용법과 주요 명령어들에 대해서 정리해 보도록 하겠습니다. 1. MySql접속 MySQL을 이용하기 위해서는 접속을 해 주어야 하는데요. 먼저 Terminal을 이용해서 접속하는 방법부터 알아보겠습니다. 1-1. Terminal 이용한 접속 MySql이 설치된 디렉토리로 먼저 찾아가야 하는데요. 저의 Mac기준으로는, /usr/local/mysql-5.7.10/bin 여기에 있네요. 버전별로는 상이하나, 앞의 /usr/local정도만 기억해도 나머지는 찾을 수 있을 것 같네요. mysql디렉토리의 bin디렉토리에 있는 mysql을 아래와 같이 실행시켜주면 됩니다 ./mysql -u root -p (앞에 ./를 붙인것은 제가 리눅스기반인, mac에서 작업을 하기 때문입니다.) Us.. 2020. 5. 21.
JWT(Json Web Token)와 세션관리에 대해서 알아보자 오늘은 JWT(Json Web Token)와 세션관리에 대해서 정리보겠습니다. 1. JSON Web Token(JWT) JWT는 토큰 정보와, 해당 토큰이 유효함을 증명할 수 있는 signature가 포함되어 있는 토큰인데요. JWT는 Header, Payload, 그리고 Signature로 구성되어 있습니다. 1-1. Header Header에서는 토큰의 유형과 사용된 서명 알고리즘을 지정합니다. 비대칭인 'RS256'과 같은 알고리즘을 쓸 수도 있고, 'HS256'을 쓸 수도 있겠지요. 아래에서는 'HS256'알고리즘을 사용하였습니다. { "alg": "HS256", "typ": "JWT" } 1-2. Payload Payload에는 토큰이 전달하고자 하는 실제 데이터가 담겨 있습니다. 이 부분에는 .. 2020. 5. 18.
Room을 이용해서 Offline Cache 구현하는 방법 정리 #Android 오늘은 구글의 Room Persistence Library를 이용하여, Offline Cache를 구현하는 방법에 대해서 정리해 보도록 하겠습니다. 참고로 Room Library의 기본적인 구현에 대한 것은 아래 글을 참조해 주세요. >> Room Persistence Library에 대해서 정리해 봅니다 #Android #SQLite 1. Offline Cache 만약 Instagram이나 Facebook의 이용자들이, 와이파이나 LTE 등이 동작하지 않는 엘리베이터 같은 곳에 가게 되었다고 가정하겠습니다. 이런 상황에서 앱을 키면 사용자들은 어떻게 되기를 원할까요? 사용자들은 예전에 보고 있던 피드들이 나오기를 원하는데요. 이러한 구조를 만들기 위해서는, 네트워크를 통해 받은 데이터들을 로컬에서 저장.. 2020. 5. 14.
HTTP Caching에 대해서 정리해 봅니다. #Cache 오늘은 HTTP Caching에 대해서 정리해 보도록 하겠습니다. 1. HTTP Caching? 매번 Server에 같은 파일에 대해서 요청하는 것은, Server에 부담이 될 뿐만이 아니라, 다운로드 되는 속도때문에 매번 로딩하는 시간이 걸리게 됩니다. 그래서, 리소스의 복사본을저장해 놓고, 같은 파일에 대해 Request를 할 때, 다시 똑같은 요청을 하지 않고 기존의 저장된 파일을 이용하도록 하는 기술이, Caching인데요. 2. HTTP Caching 설정하는 방법 Http Caching를 설정하기 위해서는, 아래와 같이 Cache-Control 헤더를 사용해 주면 되는데요. 설정할 수 있는 값들에 대해서 알아보도록 하겠습니다. Cache-Control: no-store 2-1. Cache사용여.. 2020. 5. 13.
RDS Replica의 부하를 분산하는 방법 #Route53 #AWS 이전의 글에서 RDS의 Instance를 복제해서 Replica를 만드는 방법을 정리해 보았었는데요. 이렇게 복제된 Replica에 Request를 분산하는 방법에 대해서 정리해 보도록 하겠습니다. 1. 부하를 분산할 Replica의 EndPoint 복사 가장 먼저 할 일은 Load를 분산시킬 Replica서버들의 EndPoint들을 적어두는 것 인데요. 먼저 RDS > Databases 에서 부하를 분산시킬 Replica 인스턴스의 EndPoint들을 메모장 같은 곳에 복사해 놓습니다. EndPoint들은 Instance를 선택한후 Connectivity & Security에 적혀있는데요. 이곳에서 정보를 Drag해서 복사해 주면 됩니다. 참고로 port번호는 필요하지 않습니다. 2020. 5. 12.
vararg 로 가변 인자를 전달하는 방법 #Kotlin Kotlin에서 n개의 가변되는 인자를 전달하는 방법은 어떻게 표현할 수 있을까요? 오늘은 이 방법에 대해서 정리해 보도록 하겠습니다. 1. 가변인자 가변인자는 인자의 수가 유동적인 경우에 사용하는 데요. 쉽게 생각할 수 있는 곳이, 바로 Room Persistence Library를 이용해서, insert를 사용하는 경우입니다. 사용하는 방법은 아래와 같이 인자앞에 vararg라는 지시어를 사용해 붙여서 사용해 줍니다. 어디에 사용하는지는 알았는데, 실제로 어떻게 n개의 인자를 넣어줄 수 있을까요? 아래와 같이 들어온 인자들에 for in 문을 사용해 줄 수 있습니다. 이렇게 하면, 기존처럼 list를 인자로 받을 필요가 없어지는데요. 들어온 input 인자는 Array객체로 해당하는 메소드들을 모두 .. 2020. 5. 11.
RDS를 복제해 주는 Replication 설정하기 #Master #Slave #AWS AWS의 EC2를 확장할 때와 DB 서버를 확장할 때는 약간 다르게 접근해야 하는데요. RDS를 확장할 때의 전략중 하나가, 읽기 전용 서버들을 복제해서 부하를 분산시킬 때 사용하는 Replication입니다. 오늘은 이 방법에 대해서 정리해 보도록 하겠습니다. 참고로 이글은 RDB를 생성했다는 가정하에 쓰는 글이기 때문에, RDB생성은 아래 링크를 참조해 주세요. >> RDS 관계형 데이터베이스 서버 생성하기 #Free Tier #AWS 1. DB의 특성과 Read and Write DataBase 서버 사용의 특징은 Read가 Write보다 훨씬 많다는 것입니다. 대부분의 조회에 쓰이는 Select문의 빈도가 매우 높구요. 프로필 수정이나 컨텐츠 게시 및 삭제등에 쓰이는, insert, udpate,.. 2020. 5. 9.
EBS(Elastic Block Storage)에 대한 정리 #EC2 #AWS 오늘은 AWS의 EBS(Elastic Block Storage)에 대해서 정리해 보도록 하겠습니다. 1. EBS AWS를 시작한지 얼마되지 않아서, EC2를 몇번 사용하지 않으신 분들은, 나는 EBS(Elastic Block Storage)같은 서비스를 사용한 적이 없다고 하실수도 있는데요. 사실은 EC2를 생성할 때, 혹은 RDS를 생성할 때, 저장공간에 대한 옵션을 설정한 적이 있으실텐데요. 이 때, EBS에 대한 설정을 하고 있는 것 입니다. EC2를 생성할 때 4번째 단계에서 보게되는, 아래의 화면은 EBS에 대한 옵션을 설정하는 화면이었습니다. EBS Volumes을 추가할 수 있다는 설명도 이제 보이실 것 같습니다. 참고로 EBS에서 말하는 하나의 Volume이 바로 하나의 디스크입니다. 처음.. 2020. 5. 8.
AWS와 Firebase 비용에 관한 생각 정리 오늘은 AWS와 Firebase의 비용을 비교해 보고 생각해 보려고 합니다. 여기서 언급하는 가격이나 수치는, 절대적인 것이 아니며, 하나의 의견으로 참고만 해 주세요. 1. AWS Calculator vs Firebase Calculator 두 서비스 다 요금을 미리 계산해 볼 수 있는 계산기를 제공해 주는데요. AWS가 제공하는 서비스가 많은만큼 굉장히 다양한 서비스에 대한 계산이 가능합니다. 아래링크를 통해서 확인 가능하구요. >> https://calculator.aws/ 이에 반해 Firebase Calculator는 아래링크에서 확인할 수 있는데요. >> https://firebase.google.com/pricing/ 화면하단에 사용하는데로 요금을 내는 Blaze Plan에 대한 계산기를 이.. 2020. 5. 7.
사용자수에 따른 AWS 아키텍처 설계하기 AWS의 Scalable한 서비스들을 효율적으로 사용하기 위해서는, 사용자수에 맞추어서 아키텍처를 효율적으로 설계할 필요가 있는데요. 늘어나는 사용자수에 따라서 어떻게 설계해야 할지 정리해 보도록 하겠습니다. 다만 여기서 정리하는 아키텍처는 절대적인 정답이 아니므로, 서비스의 특징에 따라서 변경해서 설계해야 겠지요. 1. 100명 이상의 사용자 아주 초기의 아키텍처가 되겠네요. 100~999명 정도의 사용자를 가지고 있다면, 아래 정도의 솔루션이면 될 것 같은데요. 아직까지는 웹앱이 들어가 있는 EC2서버와 RDS가 있으면 충분합니다. 서버가 한 대이므로, 아래 이미지와 같이 Elastic IP를 이용한 고정 IP주소와 Route53을 연결해 주어도 되고, 단순한 App Server라면, IP주소로 연결.. 2020. 5. 6.
HTTPS와 SSL, 그리고 공개키에 관한 총정리 #TLS #공개키 #대칭키 오늘은 웹기술에 있어서 매우 중요한 HTTPS를 이해하기 위해서, HTTPS와 TLS/SSL 그리고 이에 사용되는 공개키 알고리즘에 대해서 정리해 보도록 하겠습니다. 1. HTTP HTTP는 Hyper Text Transfer Protocol의 약자인데요. Protocol이라는 것은 네트워크를 통해서 컴퓨터간에 데이터를 이용해 정보를 주고 받을 때, 정해진 순서나 문법을 말합니다. 여기에 사용되는 HTTP메세지는 크게 두가지가 있는데요. Request와 Response가 바로 그것입니다. Request와 Response의 과정을 좀 더 구체적으로 보면, 만약 유저가 특정주소를 입력하면, 브라우저는 해당 페이지에 필요한 컨텐츠를 보여주기 위해, 아래와 같은 HTTP GET리퀘스트를 보내구요. 서버는 이에 .. 2020. 5. 4.
ELB에 무료 SSL인증서 받아서 설정하기 #ACM #HTTPS #AWS 오늘은 ELB(Elastic Load Balancer)에 SSL인증서를 붙여서 사용하는 방법에 대해서 정리해 보도록 하겠습니다. 참고로 ELB에 대해서는 아래 글을 참조해 주세요. >> ELB(Elastic Load Balancer) 생성해서 부하분산 적용하기 #AWS 1. ELB에 SSL 인증서 설정하기 1-1. ELB Listener 설정 이전에 SSL인증서를 설정하지 않았다면, ELB의 Listeners탭에 들어가면, 아래와 같이 되어있을텐데요. 명시적으로 SSL Certificate이 없다고 나오고 있습니다. 아래 이미지와 같이, 해당 Listener를 선택해서 Edit버튼을 눌러줍니다. Edit버튼을 눌러주면, 아래와 같이 설정화면이 나오는데요. 아래 이미지와 같이, HTTPS로 설정해 주면 포.. 2020. 5. 2.
Route53을 이용해 도메인과 ELB 를연결하는 방법 #AWS 오늘은 AWS의 Route53을 이용해 도메인과 ELB 를연결하는 방법에 대해서 정리해 보도록 하려고 하는데요. 먼저 Route53에 대해서 알아보도록 하겠습니다. 1. Route53 Route53을 처음 키게 되면, 아래와 같이 Route53의 기능들을 설명한 선택 화면이 나오는데요. 크게는 첫번째인 DNS(Domain Name System)을 관리하는 기능과, Traffic을 관리하고 서버상태를 관리해주는 기능이 있구요. 마지막으로는 Domain을 구입할 수도 있습니다. 참고로 AWS에서 도메인을 구매하는 것은, 과정도 편하고 수수료도 비싸지 않은 편이어서, 환율이 낮을때는 특히나 괜찮은 것 같습니다. 게다가 Hosted Zone까지 자동으로 설정을 해 주니 더욱 좋네요. 이 글에서는 DNS를 관리하.. 2020. 5. 1.
DNS(Domain Name System)에 대한 총정리 #IP주소 #DNS Server 오늘은 Web의 DNS(Domain Name System)라는 것에 대해서 정리해 보도록 하겠습니다. 1. DNS 세상에 존재하는 모든 컴퓨터들은 그것이 작은 스마트 폰이던 거대한 서버컴퓨터 이던, 인터넷에 연결되어 있다면, 하나의 host라고 할 수 있습니다. 이 host들이 서로 커뮤니케이션 하기 위해서는 숫자를 이용합니다. 이 넘버들이 바로 IP주소(예> "3.242.23.132")라고 하는 것 인데요. 그런데 이 넘버들은 사람이 일일히 기억하고 구분하기 어렵습니다. 마치 홍길동씨 전화번호를 등록하고 홍길동씨로 검색하여 찾아서 전화를 걸듯이, 컴퓨터도 찾아갈때, 숫자로 구성된 IP주소보다는 "test.com"과 같이 Domain Name을 이용하도록 한 것이지요. 2. 본인의 컴퓨터에서 DNS구현 .. 2020. 4. 30.
RDS 백업과 복원하기 #AWS AWS에서 RDS쓰면서 해야하는 백업과 복원도 알아 두어야 하는데요. 오늘은 이 부분에 대해서 정리해 보겠습니다. 1. RDS 백업 먼저 Services > RDS에서 왼쪽의 Instances를 선택해 줍니다. 나오는 화면에서 백업하고자 하는 DB Instance 를 선택하고, Actions 드롭다운 메뉴를 선택해 줍니다. (혹은 Instance위에서 우측마우스 버튼을 눌러주어도 됩니다.) 나오는 메뉴 중 take snapshot을 아래 이미지와 같이 선택해 줍니다. 그럼 아래와 같은 이미지가 나오는데요. Snapshot의 이름을 정해주고, 우측하단의 take snapshot버튼을 눌러줍니다. 주의 해야할 것은, 백업을 하는동안 DB에 액세스가 되지 않을 수 있다는 사실입니다. 이제, RDS > Snap.. 2020. 4. 28.
EC2 시작시 사용할 Shell Script 및 Cloud-init 작성하기 #AWS 오늘은 EC2 최초 실행시에 사용할 Shell Script의 사용방법에 대해서 정리해 보겠습니다. 새로 부팅할 서버를 만들 때 마다, 서버에 접속해서 서버실행 명령어를 내리는 것은 비효율적일 수 있습니다. 이럴 때, Shell Script를 사용해 주어서 자동으로 필요한 패키지 설치등이나, 웹서버 실행을 해 주면 되는데요. 오늘은 이것에 대해서 정리해 보도록 하겠습니다. 본격적으로 Script를 작성하기 전에, EC2인스턴스의 이미지를 생성해서, EC2이미지로부터 생성할 때 스크립트를 적용하는 것에 대해서 정리해 보겠습니다. 참고로 EC2를 생성하는 구체적인 방법에 대해서는 아래글을 참조해 주세요. >> AWS EC2 서버 론칭하는 방법 정리 1. Image 생성 및 EC2 론칭 먼저 EC2 > Inas.. 2020. 4. 27.
Script를 실행하는 방법:Linux Bash Shell Script 오늘은 Bash 스크립트를 실행하는 방법에 대해서 정리해 보도록 하겠습니다. 1. 실행할 스크립트 작성 먼저 실행할 스크립트를 작성하겠습니다. 간단하게 "Hello World"를 출력하는 Script를 작성할텐데요. Shell Script파일 작성시 확장자는 다음과 같습니다. .sh 이번 테스트를 위해서, touch 명령어로 'test1.sh'라는 이름의 파일을 생성하겠습니다. touch test1.sh 파일을 생성하고 nano나 vi 에디터로 아래 코드를 작성해 보겠습니다. 첫줄의 "#!/bin/bash"는 실행하는데, bash 쉘을 이용한다고 선언하는 것 입니다. 나머지는 심플한데요. "TEST"라는 변수에 "Hello Test"라는 단어를 저장하고, echo명령어를 이용해서 TEST라는 변수에 담긴.. 2020. 4. 25.
ELB(Elastic Load Balancer) 생성해서 부하분산 적용하기 #AWS AWS를 이용하여 실제 서비스에 적용한다고 할 때, 필수적이라고 할 수 있는 부분 중 하나가, load를 분산해주는 Load Balancer 인데요. 트래픽이 늘어나거나, 줄어들었을 때, 그에 맞추어서 Instance의 수를 늘린다고 해결되는 것이 아니라, 유저의 트래픽을 늘어난 Instance에 분산시켜 주어야 하기 때문인데요. 오늘은 부하분산을(Load Balancing) 해주는, Elastic Load Balancer에 대해서 정리 해 보겠습니다. 1. ELB 생성 먼저 Services > EC2에서, Load Balancing> Load Balancers를 선택해 줍니다. 우측에 나오는 화면에서, 파란색의 create Load Balancer버튼을 눌러서 생성을 시작합니다. 그럼 아래와 같이 Lo.. 2020. 4. 24.
EC2에서 RDS서버에 접속하기 #MySQL Client #AWS EC2와 RDS Instance를 론칭하였다면, VPC내의 EC2에서 RDS에 접근할 수 있도록 해 주어야, 작업을 하는 것이 용이한데요. 오늘은 EC2에서 MYSQL이 설치된 RDS에 접근하는 방법에 대해서 정리해 보겠습니다. 참고로 RDS서버를 생성하는 방법은 아래 글을 참조해 주세요. >> RDS 관계형 데이터베이스 서버 생성하기 #Free Tier #AWS 1. MYSQL CLIENT 설치 EC2(Ubuntu)에서 MySQL서버에 접속해서 데이터를 보기위해서는, MySQL 클라이언트가 설치되어 있어야 하는데요. 먼저 Ubuntu에서 MySQL Client를 설치해 주겠습니다. 설치를 하기전에 apt-get update는 좋은 습관이지요. sudo apt-get update; 이제 mysql-cli.. 2020. 4. 23.
RDS 서버 생성하는 방법 정리 #관계형 데이터베이스 #Free Tier #AWS 오늘은 관계형 데이터베이스 서버인, AWS의 RDS를 생성하는 방법에 대해서 정리해 보겠습니다. 정리하면서 Free Tier에 해당하는 옵션을 설정할 수 있도록, 해당하는 옵션들에 대해서도 알아보도록 하겠습니다. 1. 자주 쓰이는 시스템 에러로그 먼저 콘솔화면에서 아래와 같이 Services > Database > RDS를 선택해 줍니다. 나오는 화면에서 왼쪽 메뉴에서 Databases를 선택해 주면 아래와 같은 화면을 볼 수 있는데요. 이제 Create database를 선택해 줍니다. 그러면, AWS에서 제공할 수 있는, 데이터베이스 서버 엔진의 종류와 옵션을 선택하라고 나옵니다. 한가지 중요한 것은 Amazon Aurora는 Free Tier가 적용되지 않는다는 점 인데요. 아래 이미지의 아랫부분을.. 2020. 4. 22.
NGINX에 대한 정리 #Upstream #Reverse Proxy #Proxy_pass 오늘은 웹서버인 Nginx에 대해서 정리해 보도록 하겠습니다.1. NGINX 의 용도주로 NodeJS같은 웹 애플리케이션 앞에 배치되어 사용되어 지는 NGINX는 주로 어떻게 사용되어 지는 것 일까요?개인적으로 주요 용도는 아래 두가지를 볼 수 있을 것 같습니다. 1-1. 정적인 리소스를 Serve해 주는 것유저로부터 어떠한 요청이 들어왔을 때,이미지나 CSS같은 정적인 리소스(Static Content)에 대한 request들을 NGINX에게 맏기고,동적으로 계산되거나 전달되어야 하는 것들은 NodeJS같은 애플리케이션 서버에게 맡깁니다.마지막으로 데이터베이스에 대한 리퀘스트들을 위해서 DB서버를 사용하는 것이지요.이렇게 분할해서 보다 효율적으로 서버를 관리하는 용도로 NGINX를 사용합니다. 1-2... 2020. 4. 21.
AWS EC2 서버 론칭하는 방법 정리 보통 AWS를 시작하고 제일 먼저 하는 것은, EC2서버를 론칭 해 보는 것인데요. 오늘은 이것에 대해서 정리해 보도록 하겠습니다. 1. EC2 론칭하기 FreeTier에 해당하는 Instance를 선택해서 EC2 서버를 론칭할 텐데요. (참고로 FreeTier에 대한 내용은 아래 링크를 참조해 주세요.) >>AWS 프리티어(Free Tier) 와 사용량 확인하는 방법 1-1. Launch Instance 먼저, 메인화면의 콘솔에서 Services> EC2를 선택해 줍니다. 클릭하면 아래와 같은 화면을 볼 수 있을 텐데요. 왼쪽 메뉴화면에서 Instances > Instances를 선택해 줍니다. 그리고 우측 화면에서 Launch Instance를 선택해 줍니다. (최근에 AWS콘솔화면이 자꾸 바뀌고 있.. 2020. 4. 16.
AWS사용시 MFA(멀티팩터인증) 사용하여 보안을 강화하는 방법 #2FA #Google OTP AWS와 관련해서 해킹으로 인하여 과하게 요금을 부과당하게 되었다는 이야기를 가끔 커뮤니티에서 보게 되는데요. 특히 일반적인 비밀번호만 설정하였을 경우 더욱 그렇습니다. 이에 대비해서 훨씬 안전한 멀티팩터인증을 사용해 좀 더 보안을 강화할 수 있는데요. 오늘은 이 방법에 대해서 간단히 정리해 보도록 하겠습니다. 1. MFA 설정 AWS를 많이 사용하지 않으신 분들에게는 어디서 이것을 설정할지 조금 어려울 수 있는데요. 이에 과한 설정은 "내 계정"에 있지 않구요. 내 보안 자격증명에 있습니다. 아래 이미지에서 가르키는 대로 내 보안 자격증명을 클릭하면 나오는 메뉴에서, 멀티 팩터 인증(MFA)를 클릭해 줍니다. 그럼 아래와 같이, MFA활성화 버튼이 나오게 되는데요. 이를 클릭해 줍니다. 그럼 어떤 MF.. 2020. 4. 15.