Native Android 개발할 때 PHP로 MySQL에 http 서버통신 하기

이미지
2017년 서울시 앱공모전에 참가하면서 안드로이드 앱을 개발하는 과정에서 php를 이용해서 서버통신을 하게 되었다. 이 과정에서 깔끔하게 정리된 코드를 유투브에서 찾아서 내가 개발하는 앱에 커스터마이징해서 사용했다. 괜찮은것 같아서 블로깅하려 한다. 본인은 안드로이드 개발할 때 서버를 구글 클라우드 플랫폼을 이용했다. VM 인스턴스를 이용해서 우분투 환경에서 APM으로 서버를 구축했다. 먼저 아래에 참고한 유투브 링크  https://www.youtube.com/watch?v=8Ou1ERM2MOw&index=4&list=PLk7v1Z2rk4hjQaV062aE_CW68xgXdYFpV 우선 php 폴더밑에 includes 폴더와 v1 폴더를 두고 includes폴더 밑에 mysql에 연결과 관련된 정보들 DBname, DBuser, DBpassword, DBhost을 관리하고 연결한다. 그리고 DbOperations에서는 Create, Update, Delete, Select DML을 처리하게끔 함수를 짜놓는 구성이다. v1밑에 php파일들은 DbOperations의 함수들을 불러서 각각 사용할수 있도록 구성한다. Constants.php <?php define('DB_NAME', '너의 디비이름'); define('DB_USER', '접속할 사용자 이름'); define('DB_PASSWORD', '비밀번호'); define('DB_HOST', '로컬접속? 혹은 원격접속?'); DbConnect.php <?php class DbConnect{ private $con; function __construct(){ } function connect(){ include_once dirnam...

대학생 코딩 과제 대행 java, python, oracle 여섯 번째

https://open.kakao.com/o/s3aMpbA 이번에는 다섯 번째 과제를 의뢰했던 사람이 연이어 아래와 같은 내용의 과제를 의뢰했다. # 7 주차 강의자료: 함수 """ 제출 시에 파일 형식을 꼭 지켜주세요. 이름_week07_HW.py (예. 이재호_week07_HW.py) """ ## 주민등록번호를 만들어주는 함수 CN_maker() 를 만들어 봅시다. # CN_maker() 함수의 매개변수는 사용자 정보가 포함된 딕셔너리이며 # 이 딕셔너리의 Key는 다음과 같습니다. # 'Year': 출생년도. 1900년 ~ 2099 년으로 범위를 제한합니다. (예) 1986 # 'Month': 출생한 달. 1 ~ 12 월로 범위를 제한합니다. (예) 12 # 'Day': 출생한 일. 각 달에 맞게 범위를 제한합니다. 2 월은 무조건 28 일로 가정합니다. (예) 22 # 'Sex': 성별. 남자, 남성, 남 모두 가능하도록 합시다. (예) 남 # Key 정보들은 사용자로부터 입력을 받습니다. # 입력을 받는 방법은 # CN_maker() 함수 안에 있어도 되고, # 함수 밖에 있어도 되고, # 다른 함수로 선언해서 사용해도 되고, # 다른 함수로 선언해서 CN_maker() 함수 안에 사용해도 됩니다. #함수 리턴값으로 출력해도 무관함!!!조건에 맞춰서 만들면 됨! #조건이 충족안되면 '다시 입력해주세요' 하기! # 결과적으로 ## 마지막 여섯 자리는 ******로 고정합니다. """ (실행 예시) ++++++++++++++++++++++ ++++주민등록번호 생성기++++ ++++++++++++++++++++++ 개인 정보를 입력해 주세요. 년도: 1986 달: 12 일: 22 성별: 남자 당신의 주민등록번호는 861222...

대학생 코딩 과제 대행 java, python , oracle 다섯 번째

https://open.kakao.com/o/s3aMpbA 이번에는 아래와 같은 과제를 파이썬3로 의뢰 받았다. ## 주민등록번호 유효성 검사기 # 주민등록번호는 일정한 규칙으로 이루어진 숫자의 연속입니다. # 이 규칙을 이용하면, 어떤 숫자열이 입력으로 들어왔을 때, # 이 숫자열이 적합한 주민등록번호인가를 판별할 수 있습니다. # 주민등록번호에 반영된 규칙은 매우 많지만, # 두 가지로 제한합니다. # 1. 첫 6 자리는 생년월일입니다. 년도는 00 ~ 99 까지 가능하고, 월은 01 ~ 12 까지 가능합니다. 일은 01 ~ 31 까지 가능합니다. #   (각 월에 따라서 일의 제약이 달라집니다. 2월은 28일까지 인 것으로 해주세요.) # 2. 7 번째 숫자는 1 ~ 4 만 허용합니다. # 1 : 1900 년대에 태어난 남자 # 2 : 1900 년대에 태어난 여자 # 3 : 2000 년대에 태어난 남자 # 4 : 2000 년대에 태어난 여자 # 입력은 ****** - ******* 형식으로 입력을 받는다고 가정합니다. # 출력은 유효한 경우에는 생년월일과 성별을 출력하고, # 유효하지 않은 경우에는 유효하지 않다는 메세지를 출력하도록 합시다. # 입력값으로 특정 값을 받으면 프로그램이 종료되도록 만듭시다. """ (실행 예시) 확인하고 싶은 주민번호를 입력해주세요: 940822 - 1434652 1994 년 8 월 22 일 생 남자입니다. 확인하고 싶은 주민번호를 입력해주세요: 990231 - 2098367 유효하지 않은 주민등록번호입니다. 확인하고 싶은 주민번호를 입력해주세요: 종료 프로그램을 종료합니다. """ # -*- coding:utf-8 -*- while (True):     print('"""')     print()     day31_month = [1, 3, 5, 7,...

github 협업하면서 Pull Request 받아서 Merge 한 것과 내가 Commit한 것들 취소해서 특정버전으로 되돌리기

이미지
위에서 아래처럼 commit 과 merge를 취소하고 버전을 되돌리기 파란색 선의 변화를 보면 된다. github 버전관리툴을 사용하면서 다른사람들과 협업할 경우,  내가 겪은 이슈들을 한 번 블로깅 해보려고 한다. 공모전을 참가하면서 안드로이드 앱을 하나 만들게 되었다. 총 본인을 포함하여 5명의 개발자들이 협업을 하였다. 개발 파트를 나눠서 진행 하던 도중 한 팀원이 Pull Request를 보냈고, 크게 의심하지 않고 검토 없이 Merge를 했다가 여러 버그들이 발생하는 문제들이 발생했다. 이럴 경우, 유용한 방법을 블로깅 해보려고 한다. git log를 통해 commit과 merge 기록들을 본다. 현재 버전은 Fix Serious Bug step 1이다. 여기서 내가 돌아가고 싶은 버전은... commit 메세지가 잘려서 안뜨는데 요약하자면 3단계 전이다. 먼저 git reset HEAD^ 라는 커맨드를 실행해서 한단계 전으로 돌린다. 다시 log를 찍어보면  Fix Serious Bug Step 1버전이 취소되고 한 단계 이전 버전으로 돌아왔다. 여기서 git reset HEAD~2 라는 커맨드를 실행해서 현재에서 2단계 이전으로 되돌린다. 즉 내가 되돌리기로 원하는 버전으로 간다. 다시 log를 찍어보면 이제 내가 원하는 버전으로 되돌렸다. 그럼 이제 master에 변경사항들을 밀어넣어줄 차례이다. git commit -am "Back to the Merge" 로 커밋을 해주고 git push origin +master  러 강제적으로 밀어 넣어서 커밋과 머지 이전으로 되돌렸다.

javascript setInterval() , clearInterval()을 이용한 애니메이션 예제2

이미지
div를 좌우로 1000px씩 왕복이동 하도록 한 후, 마우스를 hover 했을경우 이동을 정지하도록 그리고 마우스를 out 했을 경우 원래 진행방향으로 이동하도록 짜보았다. <!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <title></title>     <style media="screen">       #box1{         border: 1px solid red;         background-color: blue;         width: 200px;         height: 200px;         position: relative;         left: 100px;         top: 100px;       }     </style>   </head>   <body>     <script type="text/javascript">     var left =0;     var timer= setInterval("move_to_left()",50);     var direct = false;     // var time2;     function...

javascript setInterval() , clearInterval()을 이용한 애니메이션 예제

이미지
div에 200 x 200에 배경색 넣고 마우스를 hover 했을경우, opacity를 서서히 0까지 감소시키도록 2가지 방법으로 짜보았다. <!DOCTYPE html> <html>   <head>     <style media="screen">       #box1{         border: 1px solid red;         background-color: blue;         width:200px;         height: 200px;         opacity: 1;       }       #box2{         border: 1px solid red;         background-color: blue;         width:200px;         height: 200px;         opacity: 1;       }     </style>     <meta charset="utf-8">     <title></title>   </head>   <body>     <script type="text/javascript"> ...

대학생 코딩 과제 대행 java, python, oracle 네 번째

이미지
https://open.kakao.com/o/s3aMpbA 캐나다 칼턴 대학교에서 Introduction to Computer Science 1수업의 퀴즈 의뢰가 들어왔다. 총 5문제다. Python3 으로 풀어야 된다고 의뢰했다. r1 = input ( "what is the first circle's radius?" ) r2 = input ( "what is the second circle's radius?" ) r1 = float ( r1 ) r2 = float (r2) r1_circumference = 2 * math.pi * r1 r1_area = math.pi * r1 * r1 r2_circumference = 2 * math.pi * r2 r2_area = math.pi * r2 * r2 if (r1_circumference > r2_circumference) : print ( "The first circle is bigger than second circle " ) elif (r1_circumference < r2_circumference) : print ( "The second circle is bigger than first circle" ) elif (r1_circumference == r2_circumference) : print ( "The first circle is same to second circle" ) Z만 출력! i = 8 while ( i < 39 ) : print ( i ) i += 6 for i in range ( 2 , 11 , 2 ) : for j in range (i) : if (i == 4 and j == 1 ) : ...