본문 바로가기

FALL in

php, mysql 연결 실패 문제 if(!$conn = mysqli_connect('localhost', '사용자계정', '패스워드')) echo "mysql 연결실패";else echo "mysql 연결성공";?>위와 같은 간단한 php를 만들어 php와 mysql 연결을 테스트해봤을때 계속 mysql연결실패가 나왔었다. 오류는  No such file or directory  이다.구글에 검색해보고 많은 시도를 해본결과 php의 mysql 소켓과 mysql의 mysql 소켓이 서로 다른곳에 있다는 문제였다.php info를 실행해보면mysql.default_socket/var/mysql/mysql.sockmysql소켓이 위의 위치에 있는걸 알수있는데mysql에서 status; 를 입력하면UNIX socket: /tmp/mysql.s.. 더보기
맥에서 웹서버 만들기 맥에는 기본적로 apache와 php가 설치되어있다.sudo apachectl -vsudo php -v명령어를 사용하면 버전을 볼수있다. 웹서버를 만들어주기 위해는 apache를 활성화 시켜주면되는데 일단 터미널에서 sudo apachectl start를 실행하고웹브라우저에서 localhost나 자신의 ip주소를 입력하면 It works!라는 문구를 볼수있다. 아파치 기본설정을 하기위해 cd /etc/apache2 위의 명령어로 etc폴더에있는 아파치 폴더로들어간다. (/private/etc/apache2폴더도 있는데 이유는 모르겠지만 /etc/apache2안의 파일을 변경하면 저절로 /private/etc/apache2의 파일도 변경된다.) sudo vi httpd.conf위의 명령어로 httpd.co.. 더보기
[javascript] url에서 소스 긁어오기 (XMLHttpRequest() 브라우저 문제) (이 코드는 인터넷익스플로러에서는 원래 실행이안된다.) 단순히 url에서 소스를 alert 해주는 코드인데 실행이 되는브라우저, 안되는 브라우저가있었다.우선 사파리에서는 실행이 되었다. 파이어폭스나 크롬에서는 실행이되지 않았다. 이전에 openweathermap api를 사용할때는 잘되었는데 왜 안되는지 의문이었다. 생활코딩에 물어본결과 보안의 문제였는데 (파이어폭스의 웹개발도구의 웹콘솔을 실행해보면 교차 원본 요청 차단: 동일 출처 정책으로 인해 [요청한 도메인]에 있는 원격 자원을 읽을 수 없습니다. 자원을 같은 도메인으로 이동시키거나 CORS를 활성화하여 해결할 수 있습니다.라는 에러가 나온다.) 크롬에서는 Allow-Control-Allow-Origin이라는 확장도구를 깔아서 해보라는것이였다.일단.. 더보기
[Javascript] Json/Openweathermap(날씨 API) 사용하기 Javascript에서 날씨를 불러오기위해 구글에 검색했더니 구글날씨, 기상청, openweathermap 등이 나왔다.구글날씨 api는 사용이 종료되었다고 해서 openweathermap api를 이용하기로했다. - Openwathermap API 사용법먼저 openweathermap 홈페이지에 들어가서 가입을 한다.(https://openweathermap.org)가입을하면 API key를 받게되는데 이것을 이용해서 api를 사용하게된다.가입을하고 my home페이지에서(my home 페이지는 로그인상태에서 상단의 sign in이나 sign up버튼을 누르면 나온다.) API keys버튼을 누르면자신이 api key를 볼수있다. 무료, 스타트업 계정은 api key가 다시 활성될때까지 10분 걸린다고.. 더보기
익명내부클래스 익명내부 클래스 익명내부클래스는 이름이 없는 내부클래스로, 이벤트처리시에 많이 사용한다. class A {void print(){System.out.println("내부 호출.");}}public class innerClassEx{ public static void main(String[] args) {innerClassEx i = new innerClassEx();A a = new A(){ // A클래스를 내부에서 객체화하여 print메소드 재정의.void print(){ System.out.println("내부에서 재정의.");}};a.print();} } 결과화면 내부에서 재정의. 더보기
인터페이스와 다중상속 인터페이스와 다중상속 자바에서는 다중상속이 불가능하다. 따라서 인터페이스라는것이 생겼다. 추상메소드와 비슷한 개념이지만 상수(변하지않는값)와 추상메소드만 정의 되어있다. implements 키워드를 사용하면된다. 인터페이스는 인터페이스를 상속할수있고, 다중인터페이스 구현이 가능하다. 따라서 implemets 키워드 뒤에 하나이상의 인터페이스가 올수있다. interface hello{ //인터페이스 정의.int a = 10;//상수는 가능. String name = "JiYeon"; //상수는 가능. //int b; -> 변수는 불가. public void hi(); //추상메소드 정의.public void say_hello(); //추상메소드 정의.} interface dog{ //인터페이스 정의.Str.. 더보기
추상클래스와 추상메소드 추상클래스와 추상메소드 추상메소드를 가지고있는 클래스를 추상클래스라고한다. 즉 구현은 되어있지않고 틀만 잡아놓은 클래스이다. abstract 키워드를 이용한다.일반 클래스에서 추상클래스를 상속받아 메소드 오버라이딩하여 정의가 가능하다. abstract class hello{ //접근제한자(public, protected, private)는 abstract키워드 앞에 올수있다 . int a = 10;abstract public void hi(String name);abstract public void say_hello();} public class abstractClassEx extends hello{ //추상클래 hello상속 public static void main(String[] args) {abs.. 더보기
오버라이딩 상속과 오버라이딩 클래스를 상속받는다는 것은 부모클래스의 속성이나 기능을 전달받는다는 것이다. 하위 클래스(자식)이 상위 클래스 (부모)를 상속받아 쓸수있다.extends 키워드를 사용하면된다.상속을 받아서 오버라이딩 즉, 메소드재정의가 가능하다. 상위클래스에 있는 메소드를 하위클래스에서 새롭게 정의하여 사용가능하다. 하위클래스에서 상위클래스의 멤버변수의 접근도 할수있다. 상속은 하나의 상위클래스만 받을수있다. 자바에서 다중상속은 불가능하다.따라서 extends 키워드에 클래스는 하나만 쓸수있다. class A { int n_a = 1; void F() { System.out.println("class A"); System.out.println("n_a = " + n_a); } } class B exte.. 더보기
오버로딩 오버로딩 자바에서 오버로딩(overloading)은 메소드의 다중정의를 말한다. 같은이름의 메소드라도 여러개의 정의가 가능하다. 주의할점은 매개변수의 개수나 데이터타입이 달라야한다.만약 매개변수의 개수와 그 데이터타입이 같다면 에러가난다. public class overloadingEx { String hello(String name) { return "hello "+ name; } String hello(String name,boolean capital) { if(capital) return "HELLO "+ name; return "hello "+ name; } void hello() { System.out.println("hello"); } void hello(int n) { for(int i=0; i 더보기
2.소프트웨어와 자료구조 - 소프트웨어 생명주기 소프트웨어 생명주기 일반적인 소프트웨어의 생명주기이다. 1.설계단계시스템 명세 단계에서 정의한 기능을 실제로 수행하기 위한 방법을 논리적으로 결정하는 단계- 설계방법 하향식 설계방법(Top-down) : 상위단계에서 하위단계로 설계해 가면서 점차 구체적으로 설계하는 방법/분할정복방식(Divide & Conquer)상향식 설계방법(Bottom-up) : 하위단계에서 작은단위의 문제를 먼저 해결하고 이를 이용하여 상위단계의 큰 단위의 문제를 해결하는 방법객체지향 설계방법 2. 구현단계설계 단계에서 논리적으로 결정한 문제 해결 방법(알고리즘)을 프로그래밍언어를 사용하여 실졔 프로그램을 작성하는 단계-프로그래밍 기법구조화 프로그래밍 - 절차지향언어와 비슷 / 구조 명확모듈러 프로그래밍 - 객체지향언어와 비슷 /.. 더보기