php

회고록

갑진년 연초 회고록 : 게임회사의 게임서버개발자 1년 돌아보기

갑진년 맞이 연초 회고록을 작성해 보려고 한다. 2023년 1월, 모바일 게임 회사에 지원을 하였다. 공고에는 php, golang, node.js, c, c++, docker, kubernetes, helm, redis, memcached, mysql 등과 같은 기술들이 적혀있었다. 공고를 보고 게임회사에서 서버 개발자는 어떤일을 하는지 몰랐어서, 검색을 해본 결과,, 두종류의 서버로 나뉘었다. 1. 실시간 기능이 필요한 소켓 서버 2. 일반적인 웹 서버 1번의 경우에는 예를 들자면, MMORPG인 리니지와 같이 수만명의 연결을 유지해 상호작용이 필요한 서버이고, 2번의 경우를 예를 들자면, 턴제게임인 세븐나이츠와 같이 혼자 플레이 하는 서버이다. (pvp와 같이 실시간 대전 서버의 기능이 필요하다면 ..

Dev/CS

[CS] 직렬화(Serialization), 마샬링(Marshalling)

Redis를 사용하는 코드를 분석하던 도중 직렬화와 관련된 설정이 있어, 이를 이해하고 넘어가고자 한다. 직렬화란 무엇일까? 직렬화란 Serialization으로, 데이터 구조나 객체를 파일의 형태 등으로 저장하거나 통신하기 쉬운 포맷으로 변환하는 과정이다. Serialization의 Serial은 ‘연속된’ 이라는 뜻으로, Serialization란 객체를 ‘연속된’ Byte Stream으로 변환하는 과정을 의미한다. Byte Stream으로 변환하는 과정이란, Primitive한 데이터로 변조하는 작업을 의미한다. 왜 Primitive한 데이터로 변조를 하는 과정이 필요할까? 객체는 여러가지의 자료형이 있는데, 그 중에서도 주소값을 가지고 있는 정보는 다른 시스템으로 보내봤자 의미가 없다. 즉, ‘주..

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/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
'php' 태그의 글 목록