API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

ํ•œ๋„

LinkedIn์—๋Š” ์ด๋Ÿฌํ•œ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์—…์  ์ด์šฉ ์ œํ•œ. ๋‹น์‹ ์€ ๋‚˜์ฒ˜๋Ÿผ ์ตœ๊ทผ๊นŒ์ง€ ํ•œ ๋ฒˆ๋„ ์ ‘ํ•ด๋ณธ ์ ๋„ ๋“ค์–ด๋ณธ ์ ๋„ ์—†์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์ œํ•œ์˜ ๋ณธ์งˆ์€ ์—ฐ๋ฝ์ฒ˜ ์™ธ๋ถ€์˜ ์‚ฌ๋žŒ์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์„ ๋„ˆ๋ฌด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ(์ •ํ™•ํ•œ ์ธก์ •ํ•ญ๋ชฉ์ด ์—†์œผ๋ฉฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‚ฌ์šฉ์ž์˜ ์ž‘์—…(๊ฒ€์ƒ‰ ๋นˆ๋„ ๋ฐ ํšŸ์ˆ˜, ์‚ฌ๋žŒ ์ถ”๊ฐ€)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •), ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„์€ 1000๊ฐœ๊ฐ€ ์•„๋‹Œ 100๊ฐœ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’์€ 10ํŽ˜์ด์ง€, ํŽ˜์ด์ง€๋‹น ํ”„๋กœํ•„ XNUMX๊ฐœ). ํ•œ๋„๋Š” ๋งค์›” ์ดˆ์— ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ, ํ”„๋ฆฌ๋ฏธ์—„ ๊ณ„์ •์—๋Š” ์ด๋Ÿฌํ•œ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์–ผ๋งˆ ์ „ ์• ์™„๋™๋ฌผ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด LinkedIn ๊ฒ€์ƒ‰์„ ๋งŽ์ด ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ ์ด๋Ÿฐ ์ œํ•œ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ์ €๋Š” ์ด๊ฒƒ์ด ๊ทธ๋‹ค์ง€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ƒ์—…์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋จผ์ € ํ•œ๊ณ„๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ๊ทน๋ณตํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

[์ค‘์š”ํ•œ ์„ค๋ช…: ๊ธฐ์‚ฌ์˜ ์ž๋ฃŒ๋Š” ์ •๋ณด ์ œ๊ณต ๋ฐ ๊ต์œก ๋ชฉ์ ์œผ๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ €์ž๋Š” ์ƒ์—…์  ๋ชฉ์ ์œผ๋กœ์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.]

์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๋ฅผ ์—ฐ๊ตฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

์šฐ๋ฆฌ๋Š” ํŽ˜์ด์ง€ ๋งค๊น€์ด ์žˆ๋Š” XNUMX๊ฐœ์˜ ํ”„๋กœํ•„ ๋Œ€์‹  ๊ฒ€์ƒ‰์—์„œ XNUMX๊ฐœ๋งŒ ๋ฐ˜ํ™˜ํ•œ ๋‹ค์Œ ํ”„๋ฆฌ๋ฏธ์—„ ๊ณ„์ •์˜ "์ถ”์ฒœ"์ด ์žˆ๋Š” ๋ธ”๋ก์ด ์‚ฝ์ž…๋˜๊ณ  ์•„๋ž˜์—๋Š” ํ๋ฆฟํ•˜๊ณ  ํด๋ฆญํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœํ•„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰์‹œ ์†์€ ์ด๋Ÿฌํ•œ ์ˆจ๊ฒจ์ง„ ํ”„๋กœํ•„์„ ๋ณด๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž ์ฝ˜์†”์— ์†์„ ๋ป—์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ํ๋ฆฟํ•œ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๋งˆํฌ์—…์˜ ๋ธ”๋ก์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ์ƒ๋Œ€๋กœ ์ด๋Ÿฌํ•œ ํ”„๋กœํ•„์€ ์ž๋ฆฌ ํ‘œ์‹œ์ž ์‚ฌ์ง„ ์–ด๋–ค ์ •๋ณด๋„ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์ด์ œ ๋„คํŠธ์›Œํฌ ํƒญ์„ ์‚ดํŽด๋ณด๊ณ  ์„ธ ๊ฐœ์˜ ํ”„๋กœํ•„๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€์ฒด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. "/api/search/blended"์— ๋Œ€ํ•ด ๊ด€์‹ฌ ์žˆ๋Š” ์š”์ฒญ์„ ์ฐพ๊ณ  ์‘๋‹ต์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

ํ”„๋กœํ•„์€ 'ํฌํ•จ' ๋ฐฐ์—ด๋กœ ์ œ๊ณต๋˜์ง€๋งŒ ๊ทธ ์•ˆ์— ์ด๋ฏธ 15๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฒ˜์Œ ์„ธ ๊ฐœ๋Š” ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ฐœ์ฒด์ด๋ฉฐ ๊ฐ ๊ฐœ์ฒด์—๋Š” ํŠน์ • ํ”„๋กœํ•„์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ”„๋กœํ•„์ด ํ”„๋ฆฌ๋ฏธ์—„์ธ์ง€ ์—ฌ๋ถ€) ).

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๋‹ค์Œ 12๊ฐœ๋Š” ์‹ค์ œ ํ”„๋กœํ•„์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ค‘ 28๊ฐœ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ(์ฒ˜์Œ ์„ธ ๊ฐœ์ฒด)๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ œํ•œ ์—†์ด ํ”„๋กœํ•„์—์„œ ๋‹ต๋ณ€์„ ๊ฐ€์ ธ์˜ค๋ฉด 10๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ(์ถ”๊ฐ€ ๊ฐœ์ฒด ํฌํ•จ 18๊ฐœ)๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ •๋ณด ๋ฐ XNUMX๊ฐœ์˜ ํ”„๋กœํ•„.

์ œํ•œ ์—†์ด ํ”„๋กœํ•„์— ๋Œ€ํ•œ ๋‹ต๋ณ€API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ
API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์ •ํ™•ํžˆ 10๊ฐœ๊ฐ€ ์š”์ฒญ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  10๊ฐœ๊ฐ€ ๋„˜๋Š” ํ”„๋กœํ•„์ด ๋„์ฐฉํ•˜๊ณ  ์–ด๋–ค ์‹์œผ๋กœ๋“  ๋””์Šคํ”Œ๋ ˆ์ด์— ์ฐธ์—ฌํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ํŽ˜์ด์ง€์—์„œ๋„ ์ฐธ์—ฌํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ์•„์ง ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ URL์„ ๋ถ„์„ํ•˜๋ฉด count=10(์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ํ”„๋กœํ•„ ์ˆ˜, ์ตœ๋Œ€ 49๊ฐœ)์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์–ด๋–ค ์˜๊ฒฌ์ด๋ผ๋„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ—˜ํ•ด๋ณด์ž

์ข‹์•„์š”, ์ด์ œ ์šฐ๋ฆฌ๊ฐ€ ํ™•์‹คํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‘๋‹ต์— ํ‘œ์‹œ๋œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ํ”„๋กœํ•„์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ œํ•œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜์†”์—์„œ ์ง์ ‘ API๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์˜ˆ์ƒ๋Œ€๋กœ 403 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ์œผ๋กœ ์ธํ•œ ๊ฒƒ์ด๋ฉฐ ์—ฌ๊ธฐ์„œ๋Š” CSRF ํ† ํฐ(Wikipedia์˜ CSRF. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ๊ณ ์œ ํ•œ ํ† ํฐ์ด ๊ฐ ์š”์ฒญ์— ์ถ”๊ฐ€๋˜๋ฉฐ ์„œ๋ฒ„์—์„œ ์ง„์œ„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๋‹ค๋ฅธ ์„ฑ๊ณต์ ์ธ ์š”์ฒญ์ด๋‚˜ 'JSESSIONID' ํ•„๋“œ์— ์ €์žฅ๋˜๋Š” ์ฟ ํ‚ค์—์„œ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ํฐ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ๋‹ค๋ฅธ ์š”์ฒญ ํ—ค๋”:

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๋˜๋Š” ์ฟ ํ‚ค์—์„œ ์ฝ˜์†”์„ ํ†ตํ•ด ์ง์ ‘:

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๋‹ค์‹œ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” csrf ํ† ํฐ์„ ํ—ค๋”์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜์—ฌ ๊ฐ€์ ธ์˜ฌ ์„ค์ •์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœํ•„ 10๊ฐœ๋ฅผ ๋ชจ๋‘ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. :๋”ฐ๋‹ค:

ํ—ค๋”์˜ ์ฐจ์ด๋กœ ์ธํ•ด ์‘๋‹ต ๊ตฌ์กฐ๊ฐ€ ์›๋ž˜ ์š”์ฒญ์—์„œ ์ˆ˜์‹ ๋œ ๊ฒƒ๊ณผ ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. csrf ํ† ํฐ ์˜†์— 'Accept: 'application/vnd.linkedin.normalized+json+2.1'์„ ๊ฐ์ฒด์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ—ค๋”๊ฐ€ ์ถ”๊ฐ€๋œ ์‘๋‹ต ์˜ˆ์‹œAPI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

Accept ํ—ค๋”์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด

๋‹ค์Œ์€ ๋ญ์ง€?

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ „์ฒด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ 10๊ฐœ์˜ ํ”„๋กœํ•„(๊ธฐ๋ณธ๊ฐ’ = 0)์ด ์ œ๊ณต๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” `start` ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํŽธ์ง‘(์ˆ˜๋™ ๋˜๋Š” ์ž๋™ํ™”)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ ์š”์ฒญ ํ›„์— ์ด๋ฅผ 10์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด ์ผ๋ฐ˜์ ์ธ ํŽ˜์ด์ง€๋ณ„ ์ถœ๋ ฅ, ์ฆ‰ ํ•œ ๋ฒˆ์— 10๊ฐœ์˜ ํ”„๋กœํ•„์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์• ์™„๋™๋ฌผ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ๋ฐ์ดํ„ฐ์™€ ์ž์œ ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐ์ดํ„ฐ๋Š” ์ด๋ฏธ ์ค€๋น„๋˜์–ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ž๋ฆฌ์—์„œ ๋ฐ”๋กœ ํ‘œ์‹œํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„์‰ฌ์› ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ „๋ฉด์— ์‚ฌ์šฉ๋˜๋Š” Ember์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. jQuery๊ฐ€ ์‚ฌ์ดํŠธ์— ์—ฐ๊ฒฐ๋˜์—ˆ๊ณ  ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ์ง€์‹์„ ํŒŒํ—ค์นœ ํ›„ ๋ช‡ ๋ถ„ ์•ˆ์— ๋‹ค์Œ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

jQuery ์ฝ”๋“œ

/* ั€ะตะฝะดะตั€ ะฑะปะพะบะฐ, ะฟั€ะธะฝะธะผะฐะตะผ ะดะฐะฝะฝั‹ะต ะฟั€ะพั„ะธะปั ะธ ะฒัั‚ะฐะฒะปัะตะผ ะฑะปะพะบ ะฒ ัะฟะธัะพะบ ะฟั€ะพั„ะธะปะตะน ะธัะฟะพะปัŒะทัƒั ัั‚ะธ ะดะฐะฝะฝั‹ะต */
const  createProfileBlock = ({ headline, publicIdentifier, subline, title }) => {
    $('.search-results__list').append(
        `<li class="search-result search-result__occluded-item ember-view">
            <div class="search-entity search-result search-result--person search-result--occlusion-enabled ember-view">
                <div class="search-result__wrapper">
                    <div class="search-result__image-wrapper">
                        <a class="search-result__result-link ember-view" href="/ko/in/${publicIdentifier}/">
                            <figure class="search-result__image">
                                <div class="ivm-image-view-model ember-view">
                                    <img class="lazy-image ivm-view-attr__img--centered EntityPhoto-circle-4  presence-entity__image EntityPhoto-circle-4 loaded" src="http://www.userlogos.org/files/logos/give/Habrahabr3.png" />
                                </div>
                            </figure>
                        </a>
                    </div>
                    
                    <div class="search-result__info pt3 pb4 ph0">
                        <a class="search-result__result-link ember-view" href="/ko/in/${publicIdentifier}/">
                            <h3 class="actor-name-with-distance search-result__title single-line-truncate ember-view">
                                ${title.text}
                            </h3>
                        </a>

                        <p class="subline-level-1 t-14 t-black t-normal search-result__truncate">${headline.text}</p>

                        <p class="subline-level-2 t-12 t-black--light t-normal search-result__truncate">${subline.text}</p>
                    </div>
                </div>
            </div>
        <li>`
    );
};

// ะดะตั€ะณะฐะตะผ ะฐะฟะธ, ะฟะพะปัƒั‡ะฐะตะผ ะดะฐะฝะฝั‹ะต ะธ ั€ะตะฝะดะตั€ะธะผ ะฟั€ะพั„ะธะปะธ
const fetchProfiles = () => {
    // ั‚ะพะบะตะฝ
   const csrf = 'ajax:9082932176494192209';
    
   // ะพะฑัŠะตะบั‚ ั ะฝะฐัั‚ั€ะพะนะบะฐะผะธ ะทะฐะฟั€ะพัะฐ, ะฟะตั€ะตะดะฐะตะผ ั‚ะพะบะตะฝ
   const settings = { headers: { 'csrf-token': csrf } }

    // ัƒั€ะป ะทะฐะฟั€ะพัะฐ, ั ะดะธะฝะฐะผะธั‡ะตัะบะธะผ ะธะฝะดะตะบัะพะผ ัั‚ะฐั€ั‚ะฐ ะฒ ะบะพะฝั†ะต
   const url = `https://www.linkedin.com/voyager/api/search/blended?count=10&filters=List(geoRegion-%3Ejp%3A0,network-%3ES,resultType-%3EPEOPLE)&origin=FACETED_SEARCH&q=all&queryContext=List(spellCorrectionEnabled-%3Etrue,relatedSearchesEnabled-%3Etrue)&start=${nextItemIndex}`; 
    /* ะดะตะปะฐะตะผ ะทะฐะฟั€ะพั, ะดะปั ะบะฐะถะดะพะณะพ ะฟั€ะพั„ะธะปั ะฒ ะพั‚ะฒะตั‚ะต ะฒั‹ะทั‹ะฒะฐะตะผ ั€ะตะฝะดะตั€ ะฑะปะพะบะฐ, ะธ ะฟะพัะปะต ะธะฝะบั€ะตะผะตะฝั‚ะธั€ัƒะตะผ ัั‚ะฐั€ั‚ะพะฒั‹ะน ะธะฝะดะตะบั ะฝะฐ 10 */
    fetch(url, settings).then(response => response.json()).then(data => {
        data.elements[0].elements.forEach(createProfileBlock);
        nextItemIndex += 10;
});
};


// ัƒะดะฐะปัะตะผ ะฒัะต ะฟั€ะพั„ะธะปะธ ะธะท ัะฟะธัะบะฐ
$('.search-results__list').find('li').remove();
// ะฒัั‚ะฐะฒะปัะตะผ ะบะฝะพะฟะบัƒ ะทะฐะณั€ัƒะทะบะธ ะฟั€ะพั„ะธะปะตะน
$('.search-results__list').after('<button id="load-more">Load More</button>');
// ะดะพะฑะฐะฒะปัะตะผ ั„ัƒะฝะบั†ะธะพะฝะฐะป ะฝะฐ ะบะฝะพะฟะบัƒ
$('#load-more').addClass('artdeco-button').on('click', fetchProfiles);

// ัั‚ะฐะฒะธะผ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธั ะธะฝะดะตะบั ะฟั€ะพั„ะธะปั ะดะปั ะทะฐะฟั€ะพัะฐ
window.nextItemIndex = 0;

๊ฒ€์ƒ‰ ํŽ˜์ด์ง€์˜ ์ฝ˜์†”์—์„œ ์ง์ ‘ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค 10๊ฐœ์˜ ์ƒˆ ํ”„๋กœํ•„์„ ๋กœ๋“œํ•˜๊ณ  ๋ชฉ๋ก์— ๋ Œ๋”๋งํ•˜๋Š” ๋ฒ„ํŠผ์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ† ํฐ๊ณผ URL์„ ํ•„์š”ํ•œ ํ•ญ๋ชฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”. ํ”„๋กœํ•„ ๋ธ”๋ก์—๋Š” ์ด๋ฆ„, ์œ„์น˜, ์œ„์น˜, ํ”„๋กœํ•„ ๋งํฌ ๋ฐ ์ž๋ฆฌ ํ‘œ์‹œ์ž ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๊ฒฐ๋ก 

๋”ฐ๋ผ์„œ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ์•ฝ์ ์„ ์ฐพ์•„ ์ œํ•œ ์—†์ด ๊ฒ€์ƒ‰์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์™€ ๊ฒฝ๋กœ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์š”์ฒญ ์ž์ฒด๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋Ÿฐ ์œ„ํ˜‘๋„ ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด LinkedIn์—๊ฒŒ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ผ๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ "ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•"์œผ๋กœ ์ธํ•ด ์ตœ๋Œ€ ์ด์ต ์†์‹ค์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋ณดํ—˜๋ฃŒ ์ง€๋ถˆ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๋Ÿฌํ•œ ์„œ๋ฒ„ ์‘๋‹ต์€ ์‚ฌ์ดํŠธ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋‹จ์ˆœํžˆ ๊ฐœ๋ฐœ์ž์˜ ๊ฒŒ์œผ๋ฆ„๊ณผ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. (2015๋…„ XNUMX์›”์— ์ œํ•œ์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ œํ•œ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.)

PS

๋‹น์—ฐํžˆ jQuery ์ฝ”๋“œ๋Š” ๊ธฐ๋Šฅ์˜ ๋‹ค์†Œ ์›์‹œ์ ์ธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‚˜๋Š” ๋‚ด ํ•„์š”์— ๋งž๊ฒŒ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ด ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ฌ์ง„, ์ดˆ๋Œ€ ๋ฒ„ํŠผ ๋ฐ ์ผ๋ฐ˜ ์—ฐ๊ฒฐ์ด ํฌํ•จ๋œ ์ „์ฒด ํ”„๋กœํ•„์„ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์œ„์น˜, ํšŒ์‚ฌ ๋ฐ ๊ธฐํƒ€ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ํ•„ํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฟ ํ‚ค์—์„œ ํ† ํฐ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ์ด์ƒ ์•„๋ฌด๊ฒƒ๋„ ํ•˜๋“œ์ฝ”๋”ฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, "ํ•œ ๋ฒˆ์— ์š”์ฒญํ•  ํ”„๋กœํ•„ ์ˆ˜(์ตœ๋Œ€ 49๊ฐœ)"์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์„ค์ • ํ•„๋“œ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LinkedIn์˜ ๊ฒ€์ƒ‰ ์ œํ•œ ์šฐํšŒ

๋‚˜๋Š” ์•„์ง ์ด ์ถ”๊ฐ€ ์ž‘์—…์„ ์ง„ํ–‰ ์ค‘์ด๋ฉฐ ์ด๋ฅผ ๋Œ€์ค‘์—๊ฒŒ ๊ณต๊ฐœํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ ์–ด์ฃผ์„ธ์š”.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€