๐ŸšŒ Forem์˜ ๊ฐ€์žฅ ๋ณต์žกํ•œ ํŒŒ์ผ์˜ ๋ฒ„์Šค ํŒฉํ„ฐ๋Š” ์–ผ๋งˆ๋‚˜ ํฝ๋‹ˆ๊นŒ?

2429 ๋‹จ์–ด metatechtalks
์—์„œ Adam Tornhill์˜ ๋›ฐ์–ด๋‚œ ๊ฐ•์—ฐ์„ ๋ณธ ์ดํ›„๋กœ ์ €๋Š” ์ œ ์ž์‹ ์˜ ์ €์žฅ์†Œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ฐ ํŒŒ์ผ์˜ ์ฝ”๋“œ ๋ณต์žก์„ฑ, ๋ณ€๊ฒฝ ๋นˆ๋„, ๋งˆ์ง€๋ง‰ ๋ณ€๊ฒฝ์˜ ์ตœ์‹ ์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ ํ•ซ์ŠคํŒŸ์„ ์‹๋ณ„ํ•˜๋Š” Adam์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์ œํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฒ„์Šค์— ์น˜์ด๊ฑฐ๋‚˜ ๋ณต๊ถŒ์— ๋‹น์ฒจ๋˜๊ฑฐ๋‚˜ ๊ทธ๋ƒฅ ๊ทธ๋งŒ๋‘˜ ๊ฒฝ์šฐ ์–ด๋–ค ํŒŒ์ผ์ด ๊ฐ€์žฅ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฐ›๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ์˜ "๋ฒ„์Šค ์š”์ธ"๋ถ„์„์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๊ธฐ๋ณธ git ๋กœ๊ทธ ๋ฉ”ํŠธ๋ฆญ๊ณผ ํ•จ๊ป˜ ํ•ซ์ŠคํŒŸ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹จ์ˆœํ™”๋œ Python ๋ฒ„์ „์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Ben์ด Forem์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ดˆ๊ธฐ ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ–ˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ๋Š” ์ผ๋ถ€ ๋†’์€ ๋ฒ„์Šค ํŒฉํ„ฐ ํŒŒ์ผ์„ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ๊ทธ๊ฐ€ ๋งŒ์ง„ ๋ณต์žกํ•œ ํŒŒ์ผ์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค!



ํ•ซ์ŠคํŒŸ ๋ชฉ๋ก์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ URL ๋ผ์šฐํŒ…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” schema.rb ๋ฐ route.rb์™€ ๊ฐ™์€ Rails ์•ฑ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ง๊ด€์ ์ธ ํ•ซ์ŠคํŒŸ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ user.rb ๋ฐ article.rb๊ฐ€ ์ฝ˜ํ…์ธ  ๊ฒŒ์‹œ์— ์ค‘์ ์„ ๋‘” Forem์˜ ํ•ซ์ŠคํŒŸ์ž„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿ”ฅ Hotspots 
Commits  Comp.   Age    Score  File
  388    63589     1    100.0  db/schema.rb
  427    29318     1     50.7  config/routes.rb
  157    65260     2     41.5  app/javascript/chat/chat.jsx
  359    24357     1     35.4  app/models/user.rb
   98    72604    20     28.8  app/views/admin/configs/show.html.erb
  290    24093     6     28.3  app/models/article.rb
  169    34455     3     23.6  spec/models/user_spec.rb
  154    37107     7     23.2  spec/models/article_spec.rb
   69    48449    59     13.5  spec/requests/api/v0/articles_spec.rb
  177    17235     2     12.4  app/controllers/stories_controller.rb


๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ํ•ซ์ŠคํŒŸ์€ ํŒ€์›์„ ์žƒ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์–ผ๋งˆ๋‚˜ ๋ฉ๋‹ˆ๊นŒ? ๋ฒ„์Šค ํŒฉํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ์ง€๋‚œ 365์ผ ๋™์•ˆ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹ค๋ฅธ ์ž‘์„ฑ์ž๊ฐ€ ํŒŒ์ผ์„ ๋งŒ์กŒ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



์šด ์ข‹๊ฒŒ๋„ ๋Œ€๋ถ€๋ถ„์˜ ํ•ซ์ŠคํŒŸ์—๋Š” ์ตœ์†Œ 10๋ช…์˜ ๊ณ ์œ ํ•œ ์ž‘์„ฑ์ž๊ฐ€ ํŒŒ์ผ์„ ๋งŒ์กŒ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Forem์„ ๊ณต๊ฐœํ•˜๋Š” ๊ฒƒ์˜ ๋˜ ๋‹ค๋ฅธ ํฐ ์ด์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฝ”๋“œ๋ฅผ ๋งŒ์กŒ๊ณ  ์ง€์‹์˜ ์ง‘ํ•ฉ์ฒด์—๋Š” ์ด์ œ ๋งค๋‹ฌ 20๋ช… ์ด์ƒ์˜ ๊ณ ์œ  ์ž‘์„ฑ์ž๊ฐ€ ์ปค๋ฐ‹๋ฉ๋‹ˆ๋‹ค.



์ข‹์€ ์†Œ์‹์€ Forem์˜ ๋ฒ„์Šค ํŒฉํ„ฐ๊ฐ€ ๋‚ฎ๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ธฐ์—ฌ์ž์˜ ๋ณ€ํ™”๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์ €์žฅ์†Œ์—์„œ analytics์„ ๋ชจ๋‘ ๋ณด๊ณ  GitHub์—์„œ source code์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ–‰๋ณตํ•œ ์ฝ”๋”ฉ!

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ