안드로이드 HTTP 보안 정책
·
Android
안드로이드와 서버와의 통신중 에러가 발생했습니다. 원인은 안드로이드 9 Pie 부터 강화된 네트워크 보안 정책으로 HTTPS가 아닌 HTTP 프로토콜은 안드로이드가 보안상의 이유로 접속을 제한 합니다. HTTPS는 SSL/TLS 프로토콜을 사용하여 데이터의 암호화 및 통신을 제공합니다. 보통 로컬 환경에서 테스트 경우 AndroidManifest.xml 파일에 android:usesCleartextTraffic="true"을 설정해주거나특정 도메인만 허용 시키는 xml 파일을 작성해 테스트하는 방법이 있는데 이왕 하는거 SSL에 대해서 알아보고 직접 적용 시켜 보겠습니다. 제목은 안드로이드 HTTP 보안 정책인데 사실 내용은 기존 Nginx 서버에 SSL 적용하기랍니다 HTTPS 및 SSL을 사용한 보안..
Android Network Programming 2
·
Android
Android Network Programming 1 이 글 을 마지막으로 기본적인 Docker 기반의 서버 구축이 완료 되었습다. 추후 테이블도 변경하고 수정할 사항이 많겠지만 빨리 내가 직접 만든 서버와 통신을 해보고 싶어서 메다닥 달려왔습니 chanho-study.tistory.com 이전 글에서는 Retrofit Annotation을 알아보며 마무리 했었습니다. 이번엔 Retrofit으로 이미지를 전송하기 위한 Annotation에 대해 알아볼게요. 이 함수는 이미지 전송을 위한 예시 함수입니다. 하나씩 뜯어보죠 @Multipart @POST(URL_TO_UPLOAD_IMAGE) suspend fun uploadImage( @Part image: MultipartBody.Part ): Respon..
Android Network Programming 1
·
Android
이 글 을 마지막으로 기본적인 Docker 기반의 서버 구축이 완료 되었습다. 추후 테이블도 변경하고 수정할 사항이 많겠지만 빨리 내가 직접 만든 서버와 통신을 해보고 싶어서 메다닥 달려왔습니다. 안드로이드 파트인 만큼 기초부터 탄탄히 쌓고 가고 싶어서 우선적으로 책에 있는 내용을 정리하려 합니다. 개인적으로 책을 처음부터 쭉 훑어보고 필요할 때 그 내용을 보는게 가장 기억에 잘 남는거 같네요 :) Error: Connect econnrefused 예... 처음엔 누구나 그럴싸한 계획을 갖고 있죠... 금방 끝날 줄 알았던 도커는 저를 참교육 하기 시작했습니다. 범인은 바로 요녀석입니다. Node에서 MySQL과 연결이 무슨 짓을 해도 안되던 겁니다 chanho-study.tistory.com Do it..
Android Studio MySQL 연동 6
·
Android
마지막으로 PHPMYADMIN을 설치해 보겠습니다. 1. PHPMYADMIN이란 ? mysql을 GUI(사용자 인터페이스)로 좀 더 편리하게 관리 할 수 있는 소프트웨어 도구입니다. 1. 다운로드 다운로드 중 분홍색 화면에 apache 등 서버를 선택하는 화면은 Tab을 눌러 skip 해줍니다. sudo apt install phpmyadmin -y 2. Nginx 웹 서버가 phpMyAdmin 파일을 올바르게 찾고 제공하려면 설치 파일에서 Nginx 문서 루트 디렉터리로 심볼릭 링크를 만들어야 합니다. sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin 3. 주소창에 public ip 주소/phpmyadmin을 입력해서 다음과 같은 창이 나오면 정상적..
Android Studio MySQL 연동 5
·
Android
이제 대망의 MySQL을 설치할 차레다 1. 업데이트 및 MySql 다운로드 sudo apt-get update sudo apt-get install mysql-server mysql-client -y 2. MySql 접속 및 데이터 베이스 생성 sudo mysql -u root -p create database table_name default character set utf8; 3. 계정 생성 create user 'user_name'@'%' identified by 'password'; //create user '202144091'@'%' identified by '202144091'; 4. 권한 부여 및 종료 grant all privileges on *.* to 'user_name'@'%'; e..
Android Studio MySQL 연동 4
·
Android
이번에는 PHP를 다뤄보겠습니다! 1. PHP란? C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어 2. 설치 1. putty php 다운로드 sudo apt-get install php -y sudo apt-get install php-fpm -y 2. 경로 이동 / default 파일 열기 cd /etc/nginx/sites-available/ sudo vi default 3. inde index.html index.htm index.nginx-deian.html 옆에 index.php라고 입력 해준다. root경로(/var/www/html)에 있는 index.php 파일을 읽겠다는 의미이다. 여기서 주의할 점이 있는데 반드시 본인이 설치한 php-fpm 파일의 버전을 확인해..
Android Studio MySQL 연동 3
·
Android
이번엔 간단한 코드 에디터인 SubLime Text을 설치해보자 1. 설치 설치 경로 : https://www.sublimetext.com/ 📌 STFP/FTP 설정 (에디터 → FileZila → Web Server 의 과정을 에디터 → Web Server로 바꿔주는 과정!) * Ctrl + shift + p → Package Control: Install Package * Ctrl + shift + p → sftp * File → Open Folder → SFTP/FTP → Map to Remote * save_before_upload → true host : EC2 Public IPv4 DNS user : EC2 userName password : EC2 password file_permission..
Android Studio MySQL 연동 2
·
Android
이번에 주제는 Nginx 입니다. 1. Nginx란 Nginx는 높은 성능과 안정성으로 현재 가장 많이 사용되고 있는 웹 서버입니다. Apache(아파치)와 비교했을 때 더 빠르고 가벼우며 대규모 어플리케이션 처리에 적합하다는 장점이 있습니다. 여기서 웹 서버란 클라이언트 요청에 따라 HTML, CSS, JS 같은 정적인 파일을 응답해 제공하는 소프트웨어 입니다. 웹 서버는 HTTP 프로토콜을 사용해 클라이언트와 통신합니다. WAS(Web Application Server)란 것도 존재하는데 WAS의 경우 동일하게 클라이언트의 요청을 처리하지만 동적인 요청을 처리 하고 애플리케이션 로직을 실행할 수 있도록 구성되었다는 점에서 웹 서버와 차이점이 있습니다. 예를 들어 Database CRUD, 회원가입 ,..