wiki:it:ai:services:cursor
์ฐจ์ด
๋ฌธ์์ ์ ํํ ๋ ํ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๋ค์ ํ | ์ด์ ํ | ||
wiki:it:ai:services:cursor [2025/07/29 00:37] โ ๋ง๋ฆ - ๋ฐ๊นฅ ํธ์ง 127.0.0.1 | wiki:it:ai:services:cursor [2025/07/30 06:43] (ํ์ฌ) โ ๋ฐ๊นฅ ํธ์ง 127.0.0.1 | ||
---|---|---|---|
์ค 1: | ์ค 1: | ||
- | ===== Cursor AI ๊ฐ๋ฐ ๋๊ตฌ ===== | + | ====== ๐ป Cursor AI ๊ฐ๋ฐ ๋๊ตฌ |
- | Cursor์ AI ๊ธฐ๋ฐ ์ฝ๋ ์๋ํฐ ๋ฐ ๊ฐ๋ฐ ๋๊ตฌ์ | + | Cursor๋ AI ๊ธฐ๋ฐ ์ฝ๋ฉ ์ด์์คํดํธ๋ก, |
- | ==== ๋๊ตฌ ๊ฐ์ ==== | + | ===== ๐ Cursor ์ฃผ์ ํน์ง ๋น๊ต ===== |
- | ===== Cursor ์ฃผ์ | + | ^ ๊ธฐ๋ฅ |
+ | | **AI ์ฝ๋ ์์ฑ** | โญโญโญโญโญ | โญโญ | โญโญโญโญ |ย | ||
+ | | **์ค์๊ฐ ๋๋ฒ๊น ** | โญโญโญโญโญ | โญโญโญ | โญโญโญ |ย | ||
+ | | **์ฝ๋ ๋ฆฌํฉํ ๋ง** | โญโญโญโญโญ | โญโญ | โญโญโญโญ |ย | ||
+ | | **๋ฌธ์ํ** | โญโญโญโญ | โญโญโญ | โญโญโญ |ย | ||
+ | | **๋ฉํฐ ์ธ์ด ์ง์** | โญโญโญโญโญ | โญโญโญโญ | โญโญโญโญ |ย | ||
+ | | **์ปจํ ์คํธ ์ดํด** | โญโญโญโญโญ | โญโญ | โญโญโญ | | ||
- | * **AI ์ฝ๋ ์์ฑ**: ์์ฐ์ด ์ค๋ช ์ผ๋ก ์ฝ๋ ์๋ ์์ฑย | + | ===== ๐ฏ ๋ชจ๋ธ๋ณ |
- | * **์ค์๊ฐ ์ฝ๋ ์์ฑ**: ๋ฌธ๋งฅ ๊ธฐ๋ฐ ์ค๋งํธ ์๋์์ฑย | + | |
- | * **์ฝ๋ ๋ฆฌํฉํ ๋ง**: | + | |
- | * **๋๋ฒ๊น ์ง์**: ์ค๋ฅ ๋ถ์ ๋ฐ ํด๊ฒฐ์ฑ ์ ์ | + | |
- | ===== ๊ธฐ์ | + | ^ ํ๊ฐ ํญ๋ชฉ ^ GPT-4o ^ Claude 3.5 ^ Gemini 2.0 ^ย |
+ | | **์ฝ๋ ์์ฑ ํ์ง** | โญโญโญโญโญ | โญโญโญโญ | โญโญโญโญ |ย | ||
+ | | **๋๋ฒ๊น ๋ฅ๋ ฅ** | โญโญโญโญโญ | โญโญโญโญโญ | โญโญโญโญ |ย | ||
+ | | **์๋ต ์๋** | โญโญโญโญ | โญโญโญโญ | โญโญโญโญโญ |ย | ||
+ | | **์ปจํ ์คํธ ์ดํด** | โญโญโญโญโญ | โญโญโญโญโญ | โญโญโญโญ |ย | ||
+ | | **๋น์ฉ ํจ์จ์ฑ** | โญโญโญ | โญโญโญโญ | โญโญโญโญโญ | | ||
- | * **AI ๋ชจ๋ธ**: GPT-4, Claude ๊ธฐ๋ฐ ์ฝ๋ ์์ฑ ์์งย | + | ===== ๐ง ํต์ฌ ๊ธฐ๋ฅ ===== |
- | * **์๋ํฐ**: | + | |
- | * **์ธ์ด ์ง์**: Python, JavaScript, TypeScript, Java, C++ ๋ฑย | + | |
- | * **ํตํฉ ๊ฐ๋ฐ**: Git, Docker, ํฐ๋ฏธ๋ ํตํฉย | + | |
- | ย | + | |
- | ==== ์ฌ์ฉ๋ฒ | + | |
===== AI ์ฝ๋ ์์ฑ ==== | ===== AI ์ฝ๋ ์์ฑ ==== | ||
- | 1. **์์ฐ์ด ์ค๋ช
**: ์ํ๋ ๊ธฐ๋ฅ์ | + | **์ค์๊ฐ ์ฝ๋ ์์ฑ**ย |
- | 2. **AI ๋ถ์**: Cursor๊ฐ ์๊ตฌ์ฌํญ์ ๋ถ์ย | + | * ์์ฐ์ด ์ค๋ช
์ผ๋ก |
- | 3. **์ฝ๋ ์์ฑ**: ์ ์ ํ | + | |
- | | + | * ํจ์, ํด๋์ค, ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์
|
+ | * ์ฃผ์๊ณผ ๋ฌธ์ํ ์๋ ํฌํจ | ||
- | ===== ์ฝ๋ ์์ฑ ๊ธฐ๋ฅ ==== | + | **์ค์ ์ฌ์ฉ ์์:**ย |
+ | < | ||
+ | ํ๋กฌํํธ: | ||
- | * **์ปจํ ์คํธ ์ธ์**: ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๊ธฐ์กด ์ฝ๋ ๋ถ์ย | + | Cursor ์๋ต:ย |
- | * **์ค๋งํธ ์ ์**: ํจ์, ๋ณ์, ํด๋์ค ์๋ ์์ฑย | + | ```jsxย |
- | * **๋ฌธ์ํ**: | + | import React, { useState } from ' |
- | * **ํ ์คํธ ์ฝ๋**: ๋จ์ ํ ์คํธ ์๋ ์์ฑ | + | import ' |
- | ==== ๊ฐ๊ฒฉ ์ ์ฑ ==== | + | const AuthForm |
+ | const [formData, setFormData] | ||
+ | email: '', | ||
+ | password: '' | ||
+ | });ย | ||
+ | const [isLoading, setIsLoading] | ||
- | ===== ์๊ธ์ ๋น๊ต ==== | + | const handleSubmit |
+ | e.preventDefault(); | ||
+ | setIsLoading(true); | ||
+ | ย | ||
+ | try {ย | ||
+ | const response | ||
+ | method: ' | ||
+ | headers: { ' | ||
+ | body: JSON.stringify(formData)ย | ||
+ | });ย | ||
+ | ย | ||
+ | if (response.ok) {ย | ||
+ | const userData | ||
+ | onLogin(userData); | ||
+ | }ย | ||
+ | } catch (error) {ย | ||
+ | console.error(' | ||
+ | } finally {ย | ||
+ | setIsLoading(false); | ||
+ | }ย | ||
+ | }; | ||
- | | + | |
- | * **Pro**: $20/์ - ๋ฌด์ ํ ์์ฑ, ๊ณ ๊ธ ๊ธฐ๋ฅย | + | <form onSubmit={handleSubmit} className=" |
- | * **Team**: $25/์/์ฌ์ฉ์ - ํ ํ์ ๊ธฐ๋ฅย | + | < |
- | | + | type=" |
+ | placeholder=" | ||
+ | value={formData.email}ย | ||
+ | onChange={(e) => setFormData({...formData, | ||
+ | requiredย | ||
+ | | ||
+ | <inputย | ||
+ | type=" | ||
+ | placeholder=" | ||
+ | value={formData.password}ย | ||
+ | onChange={(e) => setFormData({...formData, password: e.target.value})}ย | ||
+ | | ||
+ | />ย | ||
+ | <button type=" | ||
+ | {isLoading ? ' | ||
+ | </button> | ||
+ | </form>ย | ||
+ | | ||
+ | }; | ||
- | ===== ํฌํจ ๊ธฐ๋ฅ ==== | + | export default AuthForm;ย |
+ | ```ย | ||
+ | </ | ||
- | * **AI ์ฑํ **: ์ฝ๋ ๊ด๋ จ ์ง๋ฌธ ๋ฐ ๋ต๋ณย | + | ===== AI ๋๋ฒ๊น ==== |
- | * **์ฝ๋ ๋ฆฌ๋ทฐ**: AI ๊ธฐ๋ฐ ์ฝ๋ ํ์ง ๊ฒํ ย | + | |
- | * **๋ฌธ์ํ**: | + | |
- | * **๋ฒ์ ๊ด๋ฆฌ**: Git ํตํฉ ๋ฐ ๋ธ๋์น ๊ด๋ฆฌ | + | |
- | ==== ํ์ฉ ์ฌ๋ก ==== | + | **์ค๋งํธ ์ค๋ฅ ๋ถ์**ย |
+ | * ์ค๋ฅ ๋ฉ์์ง ์๋ ๋ถ์ ๋ฐ ํด๊ฒฐ์ฑ ์ ์ย | ||
+ | * ์ฝ๋ ์คํ ํ๋ฆ ์ถ์ ย | ||
+ | * ์ฑ๋ฅ ๋ณ๋ชฉ ์ง์ ์๋ณย | ||
+ | * ๋ณด์ ์ทจ์ฝ์ ๊ฒํ | ||
- | ===== ์น ๊ฐ๋ฐ ==== | + | **๋๋ฒ๊น ์์:**ย |
+ | < | ||
+ | ์ค๋ฅ: " | ||
- | * **React/Vue ์ปดํฌ๋ํธ**: UI ์ปดํฌ๋ํธ ์๋ | + | Cursor ๋ถ์:ย |
- | * **API ์๋ํฌ์ธํธ**: RESTful API ์ฝ๋ ์์ฑย | + | ์ด ์ค๋ฅ๋ user ๊ฐ์ฒด๊ฐ undefined์ผ ๋ ๋ฐ์ํฉ๋๋ค.ย |
- | * **๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ**: SQL ์ฟผ๋ฆฌ ์ต์ ํย | + | ํด๊ฒฐ์ฑ
: ์ต์
๋ ์ฒด์ด๋ ๋๋ |
- | * **์ธ์ฆ ์์คํ
**: | + | |
- | ===== ๋ฐฑ์๋ ๊ฐ๋ฐ ==== | + | ์์ ๋ ์ฝ๋:ย |
+ | ```javascriptย | ||
+ | // ๊ธฐ์กด ์ฝ๋ย | ||
+ | const userName | ||
- | * **์๋ฒ | + | // ์์ ๋ |
- | * **๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ**: ORM ๋ชจ๋ธ ๋ฐ ์คํค๋งย | + | const userName = user?.name || ' |
- | * **๋ฏธ๋ค์จ์ด**: | + | ```ย |
- | * **ํ ์คํธ ์ฝ๋**: ๋จ์ ๋ฐ ํตํฉ ํ ์คํธ | + | </ |
- | ===== ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ | + | ===== AI ์ฝ๋ ๋ฆฌํฉํ ๋ง |
- | | + | **์๋ ์ฝ๋ |
- | | + | * ์ฝ๋ |
- | * **๋ค์ดํฐ๋ธ ๊ฐ๋ฐ**: iOS/Android ๋ค์ดํฐ๋ธ | + | * ์ฑ๋ฅ ์ต์ ํ ์ ์ย |
- | * **API ์ฐ๋**: ๋ฐฑ์๋ ์๋น์ค ํตํฉ | + | |
+ | | ||
- | ==== AI ๊ธฐ์ ==== | + | **๋ฆฌํฉํ ๋ง ์์:**ย |
+ | < | ||
+ | ๊ธฐ์กด ์ฝ๋:ย | ||
+ | ```javascriptย | ||
+ | function processData(data) {ย | ||
+ | let result | ||
+ | for (let i = 0; i < data.length; | ||
+ | if (data[i].active) {ย | ||
+ | result.push(data[i].name); | ||
+ | }ย | ||
+ | }ย | ||
+ | return result;ย | ||
+ | }ย | ||
+ | ``` | ||
- | ===== ์ฝ๋ ์์ฑ AI ==== | + | Cursor ๋ฆฌํฉํ ๋ง: |
+ | ```javascriptย | ||
+ | function processData(data) {ย | ||
+ | return dataย | ||
+ | .filter(item | ||
+ | .map(item | ||
+ | }ย | ||
+ | ```ย | ||
+ | </ | ||
- | * **์์ฐ์ด ์ฒ๋ฆฌ**: ์๊ตฌ์ฌํญ์ ์ฝ๋๋ก ๋ณํย | + | ===== ๐ฐ ๊ฐ๊ฒฉ ์ ์ฑ ===== |
- | * **์ปจํ ์คํธ ์ดํด**: ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฐ ์์กด์ฑ ๋ถ์ย | + | |
- | * **ํจํด ์ธ์**: ์ผ๋ฐ์ ์ธ ์ฝ๋ฉ ํจํด ํ์ตย | + | |
- | * **์ต์ ํ**: | + | |
- | ===== ์ฝ๋ ๋ถ์ | + | ^ ํ๋ ^ ๊ฐ๊ฒฉ ^ ์ฃผ์ ๊ธฐ๋ฅ ^ย |
+ | | **Free** | $0 | ๊ธฐ๋ณธ | ||
+ | | **Pro** | $20/์ | ๋ฌด์ ํ ์ฌ์ฉ, ๊ณ ๊ธ ๊ธฐ๋ฅ |ย | ||
+ | | **Team** | $25/ | ||
+ | | **Enterprise** | ๋ง์ถคํ | ๊ธฐ์ ์ ์ฉ, ๋ณด์ ๊ฐํ | | ||
- | * **์ ์ ๋ถ์**: ์ฝ๋ ํ์ง ๋ฐ ๋ณด์ ๊ฒ์ฌย | + | ===== ๐ ํ์ฉ ์๋๋ฆฌ์ค ===== |
- | * **์ฑ๋ฅ ๋ถ์**: ๋ณ๋ชฉ ์ง์ ๋ฐ ์ต์ ํ ์ ์ย | + | |
- | * **๋ฆฌํฉํ ๋ง**: | + | |
- | * **๋ฌธ์ํ**: | + | |
- | ==== ๊ฐ๋ฐ | + | ^ ๊ฐ๋ฐ |
+ | | **์น ๊ฐ๋ฐ** | React/Vue ์ปดํฌ๋ํธ ์๋ ์์ฑ | ๊ฐ๋ฐ ์๋ 3๋ฐฐ ํฅ์ |ย | ||
+ | | **๋ฐฑ์๋ ๊ฐ๋ฐ** | API ์๋ํฌ์ธํธ ์๋ ์์ฑ | ์๋ฒ ๊ฐ๋ฐ ์๊ฐ ๋จ์ถ |ย | ||
+ | | **๋ชจ๋ฐ์ผ ๊ฐ๋ฐ** | React Native/ | ||
+ | | **๋ฐ์ดํฐ ๊ณผํ** | Python ๋ถ์ ์คํฌ๋ฆฝํธ | ๋ฐ์ดํฐ ๋ถ์ ์๋ํ | | ||
- | ===== ํ๋ก์ ํธ | + | ===== ๐ง ์ค์ |
- | | + | ^ ์ค์ ์์ญ ^ ์ต์ ํ ๋ฐฉ๋ฒ ^ย |
- | * **์์กด์ฑ ๊ด๋ฆฌ**: ํจํค์ง ๋งค๋์ ํตํฉย | + | | **ํ๋ก์ ํธ |
- | * **ํ๊ฒฝ ์ค์ **: ๊ฐ๋ฐ ํ๊ฒฝ ์๋ | + | | **ํ๋กฌํํธ ์ต์ ํ** | ๊ตฌ์ฒด์ ์ด๊ณ ๋ช ํํ ์๊ตฌ์ฌํญ ์์ฑ |ย |
- | * **๋ฒ์ ๊ด๋ฆฌ**: Git ์ ์ฅ์ ์ด๊ธฐํ | + | | **๋ชจ๋ธ ์ ํ** | ํ๋ก์ ํธ ํน์ฑ์ ๋ง๋ AI ๋ชจ๋ธ ์ ํ |ย |
+ | | **ํ ํ์ ** | ๊ณตํต ์ค์ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์ํฌํ๋ก์ฐ | | ||
- | ===== ํ์
๊ธฐ๋ฅ | + | ===== ๐ ๋ณด์ ๋ฐ ๊ฐ์ธ์ ๋ณด ===== |
- | | + | ^ ๋ณด์ ์์ญ ^ Cursor ์ ์ฑ ^ย |
- | * **์ฝ๋ ๋ฆฌ๋ทฐ**: AI ๊ธฐ๋ฐ | + | | **๋ฐ์ดํฐ ์ํธํ** | ์๋ํฌ์๋ ์ํธํ๋ก ์ฝ๋ ๋ณดํธ |ย |
- | * **๋ธ๋์น | + | | **๊ฐ์ธ์ ๋ณด ๋ณดํธ** | ์ฌ์ฉ์ ๋ฐ์ดํฐ ์ต์ํ ๋ฐ ์๋ |
- | | + | | **์ ๊ทผ ์ ์ด** | ์ญํ |
+ | | **๊ฐ์ฌ | ||
- | ==== ์ฑ๋ฅ ์ต์ ํ | + | ===== ๐ฎ ํฅํ ์ ๋ง ===== |
- | ===== ์ฝ๋ | + | ^ ๋ฐ์ ๋ฐฉํฅ ^ Cursor 2.0 ^ ์ ๊ณ ์ํฅ ^ย |
+ | | **AI ๋ชจ๋ธ** | ๋ ์ ํํ | ||
+ | | **ํ์ ๊ธฐ๋ฅ** | ์ค์๊ฐ ํ์ | ํ ๊ฐ๋ฐ ํจ์จ์ฑ ์ฆ๋ |ย | ||
+ | | **๋ฉํฐ๋ชจ๋ฌ** | ์ด๋ฏธ์ง/ | ||
+ | | **๊ฐ์ธํ** | ์ฌ์ฉ์ ๋ง์ถค AI | ๊ฐ์ธํ๋ ๊ฐ๋ฐ ๊ฒฝํ | | ||
- | * **๋ฆฐํ **: ESLint, Pylint ๋ฑ ํตํฉย | + | ---- |
- | * **ํฌ๋งคํ
**: | + | |
- | * **ํ์ ์ฒดํฌ**: TypeScript, mypy ๋ฑ ํ์ ๊ฒ์ฌย | + | |
- | * **ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง**: | + | |
- | ===== ๊ฐ๋ฐ ํจ์จ์ฑ | + | ===== ๐ ๊ด๋ จ ๋งํฌ ===== |
- | * **์ค๋ํซ**: ์์ฃผ ์ฌ์ฉํ๋ ์ฝ๋ ์กฐ๊ฐย | + | * [[wiki:it: |
- | * **๋งคํฌ๋ก**: ๋ฐ๋ณต ์์ ์๋ํย | + | * [[wiki: |
- | * **๋จ์ถํค**: ํจ์จ์ ์ธ ํค๋ณด๋ ๋จ์ถํคย | + | |
- | * **ํ๋ฌ๊ทธ์ธ**: ํ์ฅ ๊ธฐ๋ฅ ๋ฐ ์ปค์คํฐ๋ง์ด์ง | + | * [[wiki:it:ai: |
+ | * [[wiki:it: | ||
- | ==== ๋ณด์ ๋ฐ ์์ ์ฑ ==== | ||
- | ===== ์ฝ๋ ๋ณด์ ==== | ||
- | |||
- | * **์ทจ์ฝ์ ์ค์บ**: ๋ณด์ ์ทจ์ฝ์ ์๋ ๊ฒ์ฌ | ||
- | * **์์กด์ฑ ๊ฒ์ฌ**: ํจํค์ง ๋ณด์ ์ ๋ฐ์ดํธ | ||
- | * **์ฝ๋ ์ํธํ**: | ||
- | * **์ ๊ทผ ์ ์ด**: ๊ถํ ๊ธฐ๋ฐ ์ฝ๋ ์ ๊ทผ | ||
- | |||
- | ===== ๋ฐ์ดํฐ ๋ณดํธ ==== | ||
- | |||
- | * **๋ก์ปฌ ์ฒ๋ฆฌ**: ๋ฏผ๊ฐํ ์ฝ๋ ๋ก์ปฌ์์ ์ฒ๋ฆฌ | ||
- | * **์ํธํ**: | ||
- | * **๋ฐฑ์ **: ํ๋ก์ ํธ ์๋ ๋ฐฑ์ | ||
- | * **๋ณต๊ตฌ**: ์ค์๋ก ์ญ์ ๋ ์ฝ๋ ๋ณต๊ตฌ | ||
- | |||
- | ==== ํตํฉ ๋ฐ ํ์ฅ ==== | ||
- | |||
- | ===== ์ธ๋ถ ๋๊ตฌ ์ฐ๋ ==== | ||
- | |||
- | * **ํฐ๋ฏธ๋**: | ||
- | * **Docker**: ์ปจํ ์ด๋ ๊ฐ๋ฐ ํ๊ฒฝ | ||
- | * **๋ฐ์ดํฐ๋ฒ ์ด์ค**: | ||
- | * **ํด๋ผ์ฐ๋**: | ||
- | |||
- | ===== API ๋ฐ ํ๋ฌ๊ทธ์ธ ==== | ||
- | |||
- | * **REST API**: ์ธ๋ถ ์๋น์ค์ ์ฐ๋ | ||
- | * **์นํ **: ์ค์๊ฐ ์ด๋ฒคํธ ์๋ฆผ | ||
- | * **ํ๋ฌ๊ทธ์ธ ์์คํ
**: | ||
- | * **๋ง์ผํ๋ ์ด์ค**: | ||
- | |||
- | ==== ํ์ต ๋ฐ ์ง์ ==== | ||
- | |||
- | ===== ํ์ต ์๋ฃ ==== | ||
- | |||
- | * **ํํ ๋ฆฌ์ผ**: | ||
- | * **๋น๋์ค ์ฝ์ค**: ์จ๋ผ์ธ ํ์ต ํ๋ก๊ทธ๋จ | ||
- | * **๋ฌธ์ํ**: | ||
- | * **์์ ํ๋ก์ ํธ**: | ||
- | |||
- | ===== ์ปค๋ฎค๋ํฐ ์ง์ ==== | ||
- | |||
- | * **ํฌ๋ผ**: ์ฌ์ฉ์ ์ปค๋ฎค๋ํฐ ๋ฐ Q&A | ||
- | * **GitHub**: ์คํ์์ค ๊ธฐ์ฌ ๋ฐ ์ด์ | ||
- | * **Discord**: | ||
- | * **๋ธ๋ก๊ทธ**: | ||
- | |||
- | ---- | ||
- | ==== ๊ด๋ จ ๋งํฌ ==== | ||
- | * [[wiki: | ||
- | * [[wiki: | ||
- | * [[wiki: | ||
- | * [[wiki: | ||
- | * [[wiki: |
wiki/it/ai/services/cursor.1753749425.txt.gz ยท ๋ง์ง๋ง์ผ๋ก ์์ ๋จ: ์ ์ 127.0.0.1