코드숨에서 커서AI 트렌드&활용백과 책을 가지고 스터디를 4주 동안 진행했다.
따라 하기만 하면 금방 읽을 수 있는 책이라서 책 자체 내용을 다루기보다는 실무 예제를 공유하거나 관련 팁을 공유를 하려고 했다. 그래서 실무에서 커서를 쓰면서 잘 됐던 사례들을 기록해놨다가 공유했다. 대부분 잘된 경우는 프롬프트에 내가 알고 있는 컨텍스트를 자세히 기록했을 때 잘 동작했다. 그리고 실제로 실행하기 전에 계획을 먼저 작성하게 하고 계획을 검토하고 수정한 다음에 커서가 코드를 작성했을 때도 잘 동작했다.
스터디 3번째 시간에는 실제로 실무에서 할 일을 가져와서 문제를 같이 해결하는 라이브 코딩을 했다. 좋은 프롬프트 예제를 많이 보더라도 직접 작성하는 것은 완전 다르다. 그래서 다들 어려워했지만, 프롬프트를 작성해서 그 시간에 문제를 쉽게 해결할 수 있었다. 그때 썼던 프롬프트는 다음과 같다.
목표: 경험 상점 상세 페이지에 경험상점 후기 중에서 선별된 후기 목록을 노출한다.
노출 조건
- 대상 상품 : 판매 중인 상품의 후기만 노출해야 한다. (종료, 오픈예정 제외)
- 이미지 1장 이상있고, 후기 텍스트가 5자 이상이어야 한다.
- 평점 4.0 이상이어야 한다.
노출 순서
- 최근 등록된 순 (최근에 등록된 리뷰가 맨 앞에)
노출 개수
- 최대 6개
노출 데이터
- 작성자 이름, 등록일, 평점, 후기 내용, 해당 후기의 경험상점 메인사진과 타이틀.
구현해야 되는 기능
- 후기를 누르면, 해당 경험상점 상세 페이지의 후기 탭으로 이동
- 하단에 경험상점 타이틀을 클릭하면, 해당 경험상점 페이지로 이동
이 프롬프트로 거의 완벽하게 구현했고 실제로 이때 작성한 코드로 아직도 동작하고 있다.
AI와 협업을 잘하기 위해서는
예시:
AnchorTabs는 상품 상세 카테고리로 바로 스크롤 할 수 있는 버튼이 있는 탭입니다.
해당 영역으로 스크롤 했을 경우 해당 영역의 버튼이 활성화되고, 버튼을 누르면 해당 영역으로 스크롤하고
버튼이 활성화 됩니다.
문제: 카테고리가 많을 경우 가로로 스크롤 되는데, 다른 버튼들이 안보입니다.
할일:
- 스크롤 해서 카테고리가 활성화 될 때 활성화된 버튼이 화면의 가운데로 오도록 자연스럽게 스크롤 해야 합니다.
- 카테고리 버튼을 눌러서 스크롤할 때도 버튼이 화면의 가운데로 오도록 자연스럽게 스크롤 해야 합니다.
예시:
경험상점의 카테고리를 불러와서 보여주는 기능을 만들어 주세요. 단 한 번에 실행하지말고 계획을 하나씩 실행하고, 실행이 끝나면 멈춰서 다음 지시가 있을때 까지 기다려 주세요.
예시:
## Package manager
패키지 매니저는 `pnpm`을 사용합니다.
예시
```bash
$ pnpm install lodash
원격 데이터를 불러올 때는 server action을 사용합니다.
// action.ts
import { z } from 'zod'
const exampleDto = z.object({
title: z.string()
})
export const exampleAction = authActionClient
.metadata({ actionName: 'exampleAction' })
.schema(exampleDto)
.action(async ({ ctx, parsedInput: { title } }) => {
const { userId } = ctx
const { id } = await exampleService.createExample(title)
return id
})
// example-component.tsx
export function ExampleComponent() {
const createExample = useAction(exampleAction)
const handleClick = async () => {
const result = await createExample.executeAsync()
if (result?.serverError) {
console.log('serverError is occurred: ', result.serverError)
return
}
console.log('createdId', result.data)
}
return (
<button onClick={handleClick} type="button">
예제 생성하기
</button>
)
}
날짜 라이브러리는 Day.js
를 사용합니다.
import { dayjs } from '@core/utils'
const now = dayjs.tz()
const formatted = now.format('YYYY-MM-DD')
자바스크립트로 직접 만들면서 배우는 - 자료구조와 알고리즘 강의 바로 가기
실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지 - OAuth 2.0 강의 바로 가기
기계인간 이종립, 소프트웨어 개발의 지혜 - Git 강의 바로 가기
코드숨에서 매주 스터디를 진행하고 있습니다. 메일을 등록하시면 새로운 스터디가 시작될 때 알려드릴게요!