[PHP] composer 설치
·
Language/PHP
윈도우에 composer 설치하는 법1. php 설치링크에서 PHP의 윈도우 버전 설치압축 해제 후 파일을 C:/php7/에 옮긴다.그리고 php.ini-production 파일을 열어 extension_dir를 찾아 아래처럼 수정한다.; extension_dir = "C:/php7/ext"cmd창에서 설치확인​xphp -v 2. composer 설치공식 홈페이지에서 다운로드 설치파일을 실행하여 설치설치확인xxxxxxxxxxcomposer help
[PHP] autoload
·
Language/PHP
클래스를 사용하기 위해서는 객체를 생성하여 해당 메서드를 호출해 줘야한다. 다음과 같이 특정 작업을 수행하는 클래스가 있다고 가정하자. // index.php
[PHP] 웹 프로그래밍
·
Language/PHP
웹사전적 의미 그대로 웹은 망, 그물의 형태를 띠고 있는 네트워크이다. 웹 서비스는 클라이이언트-서버 모델을 기본으로 작동하고 있다. 클라이언트는 네트워크에서 정보를 요구하는 쪽을 의미하고, 서버는 요구받은 정보를 제공하는 쪽의 컴퓨터를 의미한다. 예를 들면 우리가 사용하는 웹 브라우저가 클라이언트이며 정보를 제공하고 있는 웹 사이트의 시스템은 서버가 되는 것이다. 웹이 동작되는 주요 요소로 웹 브라우저, 웹 서버가 있다. 일반적으로 사용하는 대표적인 브라우저가 크롬, 익스플로어이다. 웹의 동작은 클라이언트와 서버가 요청과 응답을 주고 받으며 진행된다. 클라이언트에서 서버로 정보를 요구하기 위해 보내는 메시지가 요청(request)이며, 요청을 받은 서버는 요구된 메시지에 대해 HTML이나 이미지 등의 ..
[PHP] PDO
·
Language/PHP
데이터베이스는 웹 어플리케이션 개발에 절대 빠지지 않는 기능이다. php 역시 데이터베이스를 위한 추상화 계층인 PDO를 제공하며 이를 통해 데이터베이스를 간편히 사용할 수 있다. PDO는 php의 내장 기능이며 php프로그램과 데이터베이스 사이의 통신을 단순화하는 역할을 한다. 실습은 다음과 같은 환경에서 진행했다. php 7 MySQL 5.71. 테스트 테이블 생성 MySQL에 실습을 위한 새로운 스키마를 만들고 테이블을 생성했다. ` CREATE SCHEMA `test_sch` DEFAULT CHARACTER SET utf8 ; /* test용 테이블 */ CREATE TABLE `world_of_renaissance`.`test_table` ( `id` INT NOT NULL AUTO_INCREM..
[PHP] phpstorm code sniffer 설정
·
Language/PHP
윈도우 phpstorm에 코드 검사기인 mess detector와 codesniffer를 연동하여 코딩 컨벤션 및 PSR-2 형식를 검사할 수 있다. 1. php 설치 링크에서 PHP의 윈도우 버전 설치 압축 해제 후 파일을 C:/php7/에 옮긴다. 그리고 php.ini-production 파일을 열어 extension_dir를 찾아 아래처럼 수정한다. ; extension_dir = "C:/php7/ext"설치확인 php -v2. composer 설치 공식 홈페이지에서 다운로드 설치확인 composer help3. 설치 mess detector 설정 composer global require squizlabs/php_codesniffer phpmd/phpmd설치를 시작하면 아래처럼 첫 줄에 어느 경로..
[C++]inline 함수
·
Language/C C++
[C++]inline 함수기본적으로 함수 호출은 메모리상의 점프를 이용하며, 여러가지 상태 정보등을 저장하고 복원해야 하므로 내부적으로 복잡한 과정을 거친다. 프로그램이 실행되며 한줄씩 수행해 나가다가 함수 호출을 만나면 해당 함수의 메모리 영역으로 이동후 동작을 수행한다. 하지만 인라인 함수는 해당 함수 호출을 함수의 코 저체를 호출한 코드 위치로 모두 복사하여 대체한다. 따라서 함수 호출 단계가 줄어 복잡한 과정이 생략되므로 함수 동작 방식이 더 간단해지고 성능이 향상된다. 하지만 인라인함수가 항상 좋은것은 아니다. 인라인 함수는 코드를 대체하는 것이기 때문에 해당 함수를 호출하는 구문이 많아질 수록 실행 파일의 크기도 커진다. 호출 구문이 모두 함수의 정의로 바귀어서 전체 코드 양이 늘어나기 때문이..
[C/C++]std::mutex
·
Language/C C++
[C/C++]std::mutex멀티 쓰레드를 이용한 프로그램을 작성할 때 공유 자원의 관리에 주의해야한다. 여러 쓰레드가 동시에 같은 데이터를 변경할 경우 의도하지 않은 결과를 초래할 수 있다. 이런 멀티 쓰레드 환경에서 발생하는 문제점을 동기화 메커니즘으로 해결할 수 있다.먼저 동기화를 사용하지 않을 경우 발생하는 문제를 살펴보자.#include //std::thread #include //printf() using namespace std; int sum = 0; void Add(int cnt) { for (int i = 0; i < cnt; i++) { sum += 1; } } void Sub(int cnt) { for (int i = 0; i < cnt; i++) { sum -= 1; } } in..
[C/C++] 소켓 프로그래밍
·
Language/C C++
[C/C++] 소켓 프로그래밍 오류윤성우의 열혈 TCP/IP 소켓 프로그래밍 책을 보고 소켓 통신을 실습할 때 코드를 그대로 쓰면 실행이 잘 안된다. 실행하며 나온 오류를 잡아봤다.환경 : Window10, visual studio 2015LNK2019 에러소스코드를 그대로 복붙하고 빌드하면 LNK2019에러가 나온다.#pragma comment(lib, "ws2_32.lib") 를 추가하면 빌드가 잘 되고 실행된다.클라이언트 연결도 안했는데 Accept 처리C++로 혼합개발할 경우 발생했던 문제이다. 원인은 #include을 포함하고 using namespace std를 썼을 때 생긴다. std::bind와 WinSock2의 bind의 이름 충돌로 발생한다. using namespace std 사용의 ..