전체 글

Dev/PHP

[PHP] php 버퍼 사용과 활용 방안

php의 코드를 분석하는 도중에, 버퍼를 사용해 일종의 안전장치로 활용하는 경우를 봤다. 버퍼란 무엇이고 어떤 방식이길래 안전장치로 활용한다는 것일까? 버퍼란, 임시 저장 공간이다. [출처] : http://www.tcpschool.com/cpp/cpp_io_streamBuffer 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 버퍼의 장단점은 아래와 같다. 버퍼 사용 장점 문자를 하나씩 전달하는게 아니라 묶어서 한 번에 전달하므로, 전송 시간이 적게 걸려 성능이 향상된다. 또한, php와 같은 언어에서 디버깅을 위해 echo나 print를 사용하고 실수로 지우지 않았을 경우 안전장치로 사용할 수 있다. 버퍼 사용 단..

Dev/Nginx

[Nginx] fastcgi_param 설정과 활용 방안

nginx를 설정하는 .conf파일에서 fastcgi_param이 뭔지 모른채로 사용했어서 fastcgi_param에 대해 알아보고자 한다. 먼저 .conf파일에서 include라는 명령어는 fastcgi_params라는 파일을 포함하겠다는 의미이다. fastcgi_params라는 파일은 nginx의 설정 파일인 nginx.conf가 있는 폴더를 기준삼아 있다. 필자의 경우 nginx.conf파일은 /etc/nginx에 위치해 있었고, 여기에 fastcgi_params라는 파일이 위치해 있었다. fastcgi_params파일을 vim 모드로 들어가보면,, 위와 같이 나와있음을 확인할 수 있다. 즉, include fastcgi_params의 의미는 여러 param들을 한 곳에서 관리하면 복잡해서 파일로 ..

Dev/Linux

[Linux] 리눅스 실시간 로그 확인(tail, grep, | 활용)

웹 서버의 디버깅을 위해 리눅스에서 실시간으로 로그를 확인해야 하는 경우가 있었습니다. 이는, 리눅스의 tail(파일의 끝 부분 출력), grep(파일 내 문자열 찾기), |(파이프)를 조합해 확인해볼 수 있습니다. 예를 들어, nginx를 이용한 웹서버에서 들어오는 요청을 실시간으로 확인해보겠습니다. 위와 같은 구조에서 access.log파일을 실시간으로 들어오는 get 요청에 대해 확인하고 싶다면, tail -F access.log | grep “GET”; 와 같이 사용합니다. 실시간으로 대기하고 있는 상황에서 브라우저를 통해 요청해본다면, 요청 로그가 실시간으로 추가되는 것을 확인할 수 있습니다. tail -F access.log | grep “GET”에서 tail -F access.log는 acc..

Dev/Linux

[Linux] 리눅스 Ctrl + z, Ctrl +c 차이

리눅스에서 vim을 사용할 때 무심코 Ctrl + z를 눌러 종료를 하는데, 선배님이 Ctrl + c를 사용할 것을 권했다. 그래서 둘의 차이를 알아보고자 한다. 리눅스에서 Ctrl + z : 해당 프로세스 정지, 정지되었기 때문에 fg % + []안의 번호 재시작이 가능하다. Ctrl + c : 해당 프로세스 종료 , 종료되었기 때문에 프로세스를 다시 살릴 수 없다. 여기서 fg는 foreground를 의미한다. 백그라운드 작업을 포그라운드로 옮긴다는 의미이다. 반대로 bg는 background로, 포그라운드 작업을 백그라운드로 옮긴다는 의미이다. 예를 들어 알아보자. Vim 모드 진입 Vim모드 진입 화면에서 Ctrl + z을 사용해 본다. Stopped가 나오는 것을 확인할 수 있다. [2]이므로 ..

Dev/Nginx

[Nginx] fastcgi_pass설정(TCP/IP기반의 소켓 통신, 유닉스 소켓 통신)

리눅스환경에서 php프로젝트가 2개로 늘어나는 바람에 이전에 진행했던 nginx, php-fpm간의 연동이 제대로 되지 않았다. 따라서, nginx를 사용하기 위한 설정파일인 nginx.conf파일에서 수정해줘야 했다. 그 과정에서 fastcgi_pass명령어는 뭘 의미하는지, 모른채로 연동했어서 정리하고 넘어가고자 한다. [출처] : https://battlecook.github.io/2017/12/22/nginx-phpfpm-communication.html 위 그림은 nginx와 php를 사용해 웹 서버를 구축하는 경우의 구조이다. 필자의 우분투에는 여러 php이 있고, 어떤 버전을 연동해야 하는지 의문이였다. 클라이언트에서 API를 호출하면 Nginx의 location에 따라 어떤 방식으로 php..

Dev/PHP

[PHP] JSON 출력 시 문자열 설정하기

PHP에서 .csv파일을 읽어들일때, 숫자의미를 가지는 데이터를 문자열로 읽어들이고 JSON으로 바로 출력시 아래와 같이 숫자의미를 가지는 데이터가 문자열로 출력되는 문제가 발생합니다. PHP는 데이터 타입이 동적으로 변하기 때문에 JSON으로 출력 시 csv에서 읽어온 데이터의 데이터 타입이 문자열인지 정수형인지 확인하고 사용해야 합니다. 이를 해결하기 위해 두가지 방법이 있습니다. 첫번째, csv파일에서 문자열로 읽고 데이터를 저장할 때 int로 타입캐스팅 두번째, 데이터를 문자열로 php변수에 저장하고 json_encode하는 과정에서 JSON_NUMERIC_CHECK옵션 부여 숫자의미를 가지는 데이터를 문자열로 저장하든 json을 인코딩할때 json_encode메서드에서 JSON_NUMERIC_C..

friendshipkim97
어떤 초콜릿을 꺼낼 건지