[웹개발자이야기] 도와가며 정보얻기

Author : 알쯔 / Date : 2007. 11. 10. 08:00 / Category : 주절거림

웹개발을 하다보면, 혼자힘으로 해결하지 못하는 경우가 종종있습니다.
알고리즘은 생각해냈는데 구현이 되지않는다던가, 프로토타입을 사용하기 힘들다던가, 특정역할을 하는 함수를 만들고 싶은데 막막하다던가...

이럴때 해보는 것이 검색이나 관련포럼들을 뒤져보는 것입니다.
먼저 국내최대검색엔진 네이버에서 관련검색어로 검색하면 원하는 것을 거의 찾기 힘듭니다.
네이버에 쌓여있는 DB가 대부분 초보적인 개발문제라던가, 출처를 알수없이 온통펌질을 해온 DB기에 신뢰하기도 힘들구요.
간단한 html문법같은경우에 검색결과를 보면 대부분 싸이관련자료거나, 글자이쁘게 하기 등 -_-. 이런것만 검색되지요 ^^;
네이버에서 찾는것을 포기하고 구글링을 시작하면 결과가 나름 쓸만한게 많이 나옵니다.
그 검색결과란게 모두 관련포럼글이라는게 흠이긴 하지만요.

이처럼 웹개발자가 특정정보를 얻기란 상당히 힘든일입니다.
그래서 관련포럼의 질문과답변은 언제나 질문하시는분들로 초만원사태가...

그렇다보니 종종 질문글을 보며, 해결할 수 있겠다 싶은건 도와드리는편인데, 가만히 보면 도와드리면서 제가 얻는정보도 상당히 많다는 생각을 문득들때가 있습니다.

i am a boy
you are a girl
in the park
long
under the sea

이런식으로 문장을 써넣고

확인버튼을 누르면

you are a girl
long
i am a boy
under the sea
in the park

이런식으로 랜덤하게 섞이는 소스가 필요한데요



위 박스내용은 일전에 모사이트에 올라온 질문인데, 가만히 보니 만들 수 있을 듯 하더군요.
그래서 일단 알고리즘을 세워봤습니다.

일단 문장들이 엔터로 구분되어있으니 줄바꿈기호인 \n를 이용해서 각각의 문장을 추출하면 될듯하였고, 랜덤하게 섞어야하니, 각각의 문장을 배열에 담아서 배열을 랜덤으로 섞어서 출력하면 되겠다. 라는 생각을 한줄한줄 만들어갔습니다.

일단 \n로 구분하여 배열에 넣는건 split 함수면 간단히 해결되었는데, 그 다음이 좀 문제였죠.
해당 배열에서 랜덤으로 가져온다.
0부터 4까지 인덱스가 있으니 rand(0,4)로 접근해볼까 했죠. 그런데 0~4까지 랜덤으로 뽑았을때 전에 뽑은게 선택되지 않으리라는 법이 없다는 생각에, 그러면 이전에 있던것을 제외하고 랜덤수를 구하는 재귀함수를? 이러다가, 배열을 랜덤으로 뽑는 함수가 분명 존재하지 않을까?라는 생각에 php 라이브러리를 뒤지기 시작했습니다.

그러다가 찾은 array_rand 함수, 설명상에서는 배열에서 한개를 랜덤으로 뽑는 함수라고 적혀있더군요.
그러면 rand(0,4)를 이용해서 뽑는것과 별차이가 없자나! 를 외치며, 더 뒤져본결과 2번째 인자에 랜덤으로 가져올 갯수를 매개변수로 넘기면, 그많금 가져온다는것을 알아냈습니다.

그러면 array_rand($array,sizeof($array))하면 배열전체를 랜덤으로 가져올 수 있다는 것. 이렇게 해서 소스를 만들어 드렸습니다.

이 과정에서 전 array_rand라는 좋은함수를 하나 알게된거지요.
앞으로 제가 뭔가를 만들다가 배열에서 몇개를 랜덤으로 가져올일이 있으면 아무주저없이 해당함수를 써서 한줄에 해결할 수 있게 된거죠.

이렇게 질문글을 하나 붙잡고 해결해드리다보면, 의외로 얻는 정보가 많습니다.
개발자들이 정보얻을곳이 한정되어있는 지금에선 질문게시판은 개발자에게 하나씩 공부하는데 꽤나 도움을 줄수있는 공간이지요.

또 이렇게 모인 정보는 검색을 통해 더 많은 개발자분께 공유될 것이구요. 이런분들이 많으면 많을수록 저도 뭔가를 만들면서 정보얻기가 한결 수월해질겁니다. :)

개발이 재미있고, 관련업종에 종사하시는분들이 앞으로도 질문게시판을 통해 많은 지식을 서로 공유할수있길, 그래서 개발자간의 정을 느낄 수 있는 곳이 많아졌으면 하는 생각입니다.
물론 그전에 질문자님께서 개념있게 질문해주셔야 겠지만요 ^^;

Tags : , , ,

Trackbacks 0 / Comments 0

Follow Me

Search

Statistics

  • Total : 2,330,184
  • Today : 3
  • Yesterday : 32

Blog Information

알쯔

Calendar

«   2020/08   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Copyright © 알쯔의 외부기억장치 All Rights Reserved
Powered by ARZZ.COM