๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Project ESG+AI/[์‚ผ์ •KPMG]ESG ๋ฐ์ดํ„ฐ ํ™œ์šฉ ํ’€์Šคํ… ๊ฐœ๋ฐœ

23์ผ์ฐจ. ui์™€ api๋ฅผ ์—ฐ๊ฒฐํ•ด๋ณด์ž(ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ๊ฐ’ ๋œจ๊ฒŒ)

by GreenJin_S2 2025. 11. 10.

 

 

์ด์ œ๋ถ€ํ„ฐ๋Š” db๋กœ ์ง์ ‘ npm์—๊ฒŒ command ๋ฅผ ํ•˜๊ณ  ์‹ถ์–ด. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์•Œ๋ ค์ค˜

 

npm์„ pnpm์œผ๋กœ ๋ฐ”๊พธ๋ ค๊ณ  ํ•˜๋Š”๋ฐ PS C:\Users\sej10\Documents\project\ui-server> corepack enable Internal Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\pnpm' Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\pnpm' ์ด๋ ‡๊ฒŒ ์—๋Ÿฌ๊ฐ€๋‚ฌ์–ด ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผใ…?

ChatGPT์˜ ๋ง:

์ข‹์•„, ์•„์ฃผ ํ”ํ•œ ์ƒํ™ฉ์ด์•ผ ๐Ÿ‘
์ด ์˜ค๋ฅ˜๋Š” ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถ€์กฑ์œผ๋กœ corepack์ด C:\Program Files\nodejs ํด๋”์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•ด์„œ ๋ฐœ์ƒํ•œ ๊ฑฐ์•ผ.

๋‹ค์Œ ์ˆœ์„œ๋กœ ํ•ด๊ฒฐํ•˜๋ฉด ๋ผ ๐Ÿ‘‡


โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 1: PowerShell์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰

  1. ์œˆ๋„์šฐ ๊ฒ€์ƒ‰์ฐฝ์— "PowerShell" ์ž…๋ ฅ
  2. “Windows PowerShell”์„ ์˜ค๋ฅธ์ชฝ ํด๋ฆญ → ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰
  3. ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅ:
  4.  
    corepack enable
  5. ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋ฉด ๋‹ค์Œ์œผ๋กœ:
  6.  
    corepack prepare pnpm@latest --activate
  7. ์ดํ›„ ํ™•์ธ:
  8.  
    pnpm -v

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 2: ์ˆ˜๋™์œผ๋กœ pnpm ํ™œ์„ฑํ™” (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์—†์ด)

๋งŒ์•ฝ ํšŒ์‚ฌ PC์ฒ˜๋Ÿผ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์“ธ ์ˆ˜ ์—†๋‹ค๋ฉด,
corepack ๋Œ€์‹  pnpm์„ ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์–ด ๐Ÿ‘‡

 
npm install -g pnpm

์„ค์น˜ ํ›„:

 
pnpm -v

๋กœ ๋ฒ„์ „์ด ์ž˜ ๋œจ๋ฉด ์„ฑ๊ณต์ด์•ผ.


โœ… ์ฐธ๊ณ  (corepack ๊ด€๋ จ)

Node.js 16.9 ์ด์ƒ๋ถ€ํ„ฐ corepack์ด ๊ธฐ๋ณธ ํฌํ•จ๋˜์–ด ์žˆ์–ด์„œ,
npm, yarn, pnpm ๋“ฑ์„ ์‰ฝ๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด.
ํ•˜์ง€๋งŒ Program Files์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์ˆ˜์•ผ.


์›๋ž˜ ๋ชฉ์ ์ด “npm ๋Œ€์‹  pnpm์œผ๋กœ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ํ•˜๊ธฐ”๋ผ๋ฉด,
์œ„ ์ž‘์—… ํ›„์— ๊ทธ๋ƒฅ ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•˜๋ฉด ๋ผ:

 
pnpm install
 
pnpm run dev
 

 

pnpm dev 

์ด์ œ๋ถ€ํ„ฐ ์ด๋ ‡๊ฒŒ๋งŒ ํ•ด๋„ ๋จ!

 

npm์“ฐ๋ฉด ์—๋Ÿฌ๋‚  ๊ฒƒ์ž„ 


 

@soccer ๋ฆฌ์•กํŠธ ์—์„œ axios ๋กœ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋กœ findByKeyword ๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ฃผ๋Š”๋ฐ, player, scehdule, stadium , team ์ค‘ ์–ด๋А ์งˆ๋ฌธ์ด ๋“ค์–ด์˜ฌ ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด. ๋‚˜๋Š” ์ด๊ฒƒ์„ ํผ์‚ฌ๋“œ ํŒจํ„ด์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๋” ์ข‹์€ ํŒจํ„ด์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ๊ณ , ์•„๋‹ˆ๋ฉด ์ด ํŒจํ„ด์œผ๋กœ ๋„˜์–ด์˜จ ๊ฒ€์ƒ‰์–ด๋ฅผ sysout ์œผ๋กœ ์ถœ๋ ฅ๊นŒ์ง€๋งŒ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜.

 

 

 

 

์„ธ๊ฐœ์˜ ํŒŒ์ผ์ด ์ž‘์„ฑ๋˜๊ณ  ์ˆ˜์ •๋จ ํผ์‚ฌ๋“œ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์คŒ

 

 


์—ฌ๊ธฐ์„œ ๋ฐ›์€ ๋ฉ”์„ธ์ง€๋ฅผ axios๋ฅผ ํ†ตํ•ด localhost:8080/soccer/search ์—ฌ๊ธฐ์ปจํŠธ๋กค๋Ÿฌ์— ์—ฐ๊ฒฐ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค˜

 

์„ค์น˜ํ•˜๊ธฐ

 

 

 

์ด๋ถ€๋ถ„์ด ํ•ต์‹ฌ ์ฝ”๋“œ

 

 

 

์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค! โœ… ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ GET ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

 

***ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ post๋ฐฉ์‹์ธ์ง€ get๋ฐฉ์‹์ธ์ง€ ํ†ต์ผํ•ด์•ผํ•จ!

ํ•˜์ง€๋งŒ ํ”„๋ก ํŠธ์—”๋“œ ์ชฝ์„ ์ˆ˜์ •ํ•˜๋Š”๊ฒŒ ๋‚˜์œผ๋ฏ€๋กœ get๋ฐฉ์‹์œผ๋กœ ํ†ต์ผ

 

 

 

 

ํ”„๋ก ํŠธ์—์„œ ์ž…๋ ฅ๊ฐ’์„ ๋ณด๋‚ด๋ฉด ๋ฐฑ์—”๋“œ ํ„ฐ๋ฏธ๋„์— ๋œจ๊ฒŒ ํ•ด์ค˜

 

 

try {

// axios๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ API ํ˜ธ์ถœ (GET ๋ฐฉ์‹)

const response = await axios.get('http://localhost:8080/soccer/search/keyword', {

params: {

keyword: userInput

}

});//ํ”„๋ก ํŠธ์—”๋“œ์— ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ์ž…๋ ฅ๋ฐ›์€๊ฒŒ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅ๋˜์ง€ ์•Š์•„. ๊ณ ์ณ์ค˜

 

 

 

๊ฒฝ๋กœ๊ฐ€ ๋งž์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์˜€์Œ! ๋™์ผํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•ด์คŒ

 

 

 

 

์„ฑ๊ณต!