Meilisearch-laravel-scout: Meilisearch์™€ ํ•จ๊ป˜ Laravel ํ•ญํ•ด: Wiki ํŽ˜์ด์ง€ ์ž‘์„ฑ

์— ๋งŒ๋“  2020๋…„ 12์›” 18์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: meilisearch/meilisearch-laravel-scout

์ด๊ฒƒ์„ ์–ด๋””์— ๋‘๋Š” ๊ฒƒ์ด ๋งž๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ laravel valet์ด ํ–ฅํ›„ ์ œ๊ฑฐ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—.

์ด laravel ๋“œ๋ผ์ด๋ฒ„๊ฐ€ laravel sail(dockerized container) https://laravel.com/docs/8.x/sail์˜ ์‚ฌ์šฉ์„ ์ง€์›ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์ƒ์„ฑํ•˜๋Š” ์ธ์Šคํ„ด์Šค๋Š” ์ด ๋“œ๋ผ์ด๋ฒ„ ์— ์˜ํ•ด ์ฝํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋น„๋ก ์ œ๊ฐ€ ์‰ฝ๊ฒŒ ํ‹€๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ ์ œ๊ฐ€ ์–ป๊ณ  ์žˆ๋Š” ์ธ์ƒ์ž…๋‹ˆ๋‹ค.

Screenshot 2020-12-18 at 00 46 38

Screenshot 2020-12-18 at 00 47 06

Screenshot 2020-12-18 at 00 50 12

documentation good first issue

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด LinkedIn ๊ณผ์ •์—์„œ docker๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ช‡ ์ค„์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ด์œ ๋Š” ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด ํŒจํ‚ค์ง€์˜ ์ฑ…์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค. docker์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด ์‘๋‹ต๊ณผ @shokme ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ ์–˜๋“ค์•„ ๐Ÿ˜

๋ชจ๋“  6 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @marky291
docker๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์“ฐ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ 0.0.0.0:7700์€ meilisearch๊ฐ€ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์˜ ํฌํŠธ 7700์„ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (๋กœ์ปฌ ํ˜ธ์ŠคํŠธ:7700)
์—ฌ๊ธฐ์—์„œ๋Š” laravel ์ปจํ…Œ์ด๋„ˆ์— ์žˆ์œผ๋ฏ€๋กœ port ์•„๋‹Œ service ๋กœ ํ†ต์‹ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

.env ๋ฅผ ์ž์„ธํžˆ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DB_HOST=mysql
MAIL_HOST=mailhog
docker-compose.yml ์— ์žˆ๋Š” ์„œ๋น„์Šค ์ด๋ฆ„์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ meilisearch๋ฅผ ์œ„ํ•ด ๋‹น์‹ ์ดํ•ด์•ผ ํ• 
MEILISEARCH_HOST=meilisearch:7700
:7700 MEILISEARCH_PORT ํ™˜๊ฒฝ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—

๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ๋ถ„๋ช…ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋„์ปค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

docker-compose.yml ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    meilisearch:
      image: 'getmeili/meilisearch:latest'
      ports:
          - 7700:7700
      networks:
          - sail
      volumes:
      - 'meilisearch:/data.ms'

volumes:
    sailmysql:
        driver: local
    sailredis:
        driver: local
    meilisearch:
        driver: local

๋ฌธ์„œ์— ๋Œ€ํ•ด ์ €๋Š” sail์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์œ„ํ‚ค ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. (@curquiza๋กœ ๋ด…์‹œ๋‹ค)
๊ทธ๋Ÿฌ๋‚˜ ์ œ ์ƒ๊ฐ์—๋Š” laravel sail์„ ์‚ฌ์šฉํ•  ๋•Œ sail์ด ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์— ์ œํ•œ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค๋ฉด:

Sail์€ ์‚ฌ์ „ Docker ๊ฒฝํ—˜ ์—†์ด PHP, MySQL ๋ฐ Redis๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Laravel ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ์ถœ๋ฐœ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค์˜ ์ž‘๋™ ๋ฐฉ์‹๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @shokme ์™€ @marky291์ž…๋‹ˆ๋‹ค!
์ž˜๋ชป๋œ ์‚ฌ์šฉ๋ฒ•์ด๊ฑฐ๋‚˜ docker ๋˜๋Š” laravel sail์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ž์Šต์„œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์šฐ์„  ์ˆœ์œ„์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Wiki ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์ฆ๊ธด๋‹ค๋ฉด ์ €๋Š” ์ „ํ˜€ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๐Ÿ˜„ @shokme haha์˜ ๊ฒฝ์šฐ๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ธฐ์—ฌ์ž๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ํ™•์‹คํžˆ ๊ธด๊ธ‰ ์ƒํ™ฉ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด LinkedIn ๊ณผ์ •์—์„œ docker๋ฅผ ํ†ตํ•ด ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ช‡ ์ค„์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ด์œ ๋Š” ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด ํŒจํ‚ค์ง€์˜ ์ฑ…์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค. docker์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ดํ•ด๋ฅผ ์œ„ํ•ด ์‘๋‹ต๊ณผ @shokme ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ ์–˜๋“ค์•„ ๐Ÿ˜

์•ˆ๋…•ํ•˜์„ธ์š” @marky291
docker๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์“ฐ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ 0.0.0.0:7700์€ meilisearch๊ฐ€ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์˜ ํฌํŠธ 7700์„ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. (๋กœ์ปฌ ํ˜ธ์ŠคํŠธ:7700)
์—ฌ๊ธฐ์—์„œ๋Š” laravel ์ปจํ…Œ์ด๋„ˆ์— ์žˆ์œผ๋ฏ€๋กœ port ๊ฐ€ ์•„๋‹Œ service ๋กœ ํ†ต์‹ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

.env ๋ฅผ ์ž์„ธํžˆ ๋ณด๋ฉด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DB_HOST=mysql
MAIL_HOST=mailhog
docker-compose.yml ์— ์žˆ๋Š” ์„œ๋น„์Šค ์ด๋ฆ„์„ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ meilisearch๋ฅผ ์œ„ํ•ด ๋‹น์‹ ์ดํ•ด์•ผ ํ• 
MEILISEARCH_HOST=meilisearch:7700
:7700 MEILISEARCH_PORT ํ™˜๊ฒฝ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—

๊ทธ๊ฒƒ์ด ๋‹น์‹ ์—๊ฒŒ ๋ถ„๋ช…ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋„์ปค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

docker-compose.yml ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    meilisearch:
      image: 'getmeili/meilisearch:latest'
      ports:
          - 7700:7700
      networks:
          - sail
      volumes:
      - 'meilisearch:/data.ms'

volumes:
    sailmysql:
        driver: local
    sailredis:
        driver: local
    meilisearch:
        driver: local

์ด๊ฒƒ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ๋“œ๋ผ์ด๋ฒ„๋Š” ํ”„๋กœํ† ์ฝœ์ด ํ•„์š”ํ•˜๋ฉฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์—์„œ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
MEILISEARCH_HOST=http://meilisearch:7700

@marky291 ํ”ผ๋“œ๋ฐฑ์— ๊ฐ์‚ฌ๋“œ๋ฆฌ๋ฉฐ ์‹œ๊ฐ„์„ ๋‚ด์–ด ๋‹ต๋ณ€ํ•ด ์ฃผ์‹  @shokme์—๊ฒŒ๋„ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
๊ทธ๋Ÿฌ๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰