이룰수 없는 꿈을 꾸고 이길수 없는 적과 싸우며, 이룰수 없는 사랑을 하고 견딜 수 없는 고통을 견디고, 잡을수 없는 저 하늘의 별도 잡자. - 세르반테스

백엔드/PHP

안녕하세요. PHP 분류에 첫글을 올립니다.

별구르미 2023. 5. 9. 18:27

여기 공간은 제가 주언어인 PHP 를 이용하여 자료구조 또는 알고리즘을 정리해보는 공간을 만들까 합니다. 

학교에서 배움을 통해 배운 그 딱딱하고 재미없고 이해도 안가는 자료구조와 알고리즘이 대체 어디에 이용되는지도 모르고 그냥 배워야하는 과목이었기에 배웠습니다. 

 

전 학교를 졸업하고 친구 과제를 대신 해주면서 자료구조를 터득했어요. 

그 때 당시 VC++로 MFC를 이용하여 창고정리 게임을 개발하는게 친구가 맡은 과목의 과제였습니다. 

그 때 당시 제가 방산체에서 서버관리 및 PHP웹사이트 개발 그리고 ASP 로 외주받은 프로젝트를 개발하고 잠시 숨을 돌리는 타이밍이었어요. 그나마 서버관리하면서 쉘로 자동화를 만들어두어 제가 조금 신경을 덜 쓰기도 했어요.

거두절미하고 그래서 당시 친구 프로젝트인 애니콜에 탑재된 게임을 소코반이죠 흉내를 내기 시작했어요.

스테이지를 2차원배열로 만들었고, 해당 배열을 로딩하면서 리소스에 있는 블록이미지를 가져와 대체하여 화면에 출력하도록 개발했습니다. 배열이라는 자료구조가 사용되었죠. 그리고, 잘못 움직였을 때는 되돌리기가 되어야 했어요. 그래서 자료구조 중 스택을 활용했습니다. LIFO 이죠? 나중에 추가된 것이 먼저 나온다. 

우리들이 흔이 사용하는 되돌리기 기능과 동일합니다. ctrl+z 

스택은 우리의 실생활에 많이 사용되고 있어요. 옛날같으면 삐삐 였고, 지금 스마트폰은 DB개념이 들어가 있기에 최시메시지나 최근연락처 등을 정렬하여 가져오는게 아닐까 하고 조심스럽게 추측해봅니다만. 삐삐 시절에는 스택구조로 데이터를 쌓고 푸쉬팝으로 해결했죠

 

내용이 길었네요. 지하철의 경우는 첫번째 객차가 항상 다음 역에 먼저 들어오니까 FIFO 인 큐이죠. 

큐도 많이 이용되고 있어요. 메일발송 등 sendmail에서 메일처리할 때도 큐에 담았다가 처리하기도 하고요. 개발을 하면서 큐에 작업해야할 잡을 넣어두기도 합니다. 

 

그래서 이 카테고리에는 PHP 언어를 이용해 한 번 코딩을 해보려고 합니다. 

전체 소스를 올리진 못하겠지만 소스 내 일부 발췌해서 올리는 공간으로 만들어 보겠습니다.

 

'백엔드 > PHP' 카테고리의 다른 글

[선택정렬] PHP로 선택정렬 구현  (0) 2023.06.09
[PHP] 이진트리 만들기  (0) 2023.05.22