Skip to content

[AIBE6/4팀/김현승] TODO 앱 만들기 완료#55

Open
Sinou3936 wants to merge 3 commits intosik2:mainfrom
Sinou3936:main
Open

[AIBE6/4팀/김현승] TODO 앱 만들기 완료#55
Sinou3936 wants to merge 3 commits intosik2:mainfrom
Sinou3936:main

Conversation

@Sinou3936
Copy link

@Sinou3936 Sinou3936 commented Mar 19, 2026

  • 할일 목록
  • 할일 추가
  • 할일 컴포넌트로 분리
  • 할일 API 연동
  • 할일 API 추가/삭제/수정

@Sinou3936 Sinou3936 marked this pull request as draft March 19, 2026 02:22
@Sinou3936 Sinou3936 marked this pull request as ready for review March 19, 2026 02:23
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 풀 리퀘스트는 Vite를 사용하여 React TODO 애플리케이션의 기본 구조를 설정합니다. 코드 품질과 일관성을 위한 ESLint 및 Prettier와 같은 필수 개발 구성을 포함합니다. 더미 API를 통해 TODO 항목을 관리하는 핵심 애플리케이션 로직(가져오기, 추가, 삭제, 업데이트)이 구현되었으며, UI를 위한 모듈식 컴포넌트 아키텍처가 적용되었습니다.

Highlights

  • 프로젝트 초기 설정: Vite를 사용하여 새로운 React 프로젝트를 초기화하고 기본적인 개발 환경을 설정했습니다.
  • 코드 품질 및 포맷팅: ESLint와 Prettier를 설정하여 코드 일관성과 품질을 유지하도록 했습니다.
  • TODO 앱 핵심 기능 구현: 더미 API를 활용하여 TODO 목록 가져오기, 추가, 삭제, 완료 상태 토글 기능을 구현했습니다.
  • 컴포넌트 구조화: TodoForm, TodoList, TodoItem과 같은 재사용 가능한 컴포넌트로 UI를 모듈화했습니다.
  • 기본 스타일링 적용: TODO 애플리케이션의 사용자 인터페이스를 위한 기본 CSS 스타일을 추가했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@Sinou3936 Sinou3936 closed this Mar 19, 2026
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이 풀 리퀘스트는 React TODO 앱의 초기 설정을 포함하며, Vite를 사용하여 프로젝트를 구성하고 기본적인 TODO 목록, 추가, 삭제, 완료 토글 기능을 구현했습니다. ESLint와 Prettier 설정도 추가되어 코드 품질을 관리합니다. 전반적으로 잘 구성된 시작점이지만, 몇 가지 개선할 점이 있습니다.

README.md Outdated
Comment on lines +1 to +16
# React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)

## React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).

## Expanding the ESLint configuration

If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

현재 README.md 파일의 내용은 일반적인 Vite + React 템플릿 설명입니다. 이 프로젝트가 "React TODO 앱 만들기" 미션의 일환이므로, 실제 애플리케이션의 기능, 실행 방법, 사용된 API 엔드포인트 등 프로젝트에 특화된 정보로 업데이트하는 것이 사용자에게 더 유용할 것입니다.

.then((res) => setTodos(res.todos))
}, [])

let randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

randomInt 함수는 App 컴포넌트 내부에 정의되어 있어 컴포넌트가 리렌더링될 때마다 새로 생성됩니다. 이 함수는 컴포넌트의 상태나 props에 의존하지 않는 유틸리티 함수이므로, 컴포넌트 외부로 이동시키거나 useCallback을 사용하여 메모이제이션하는 것이 좋습니다. 이는 코드의 재사용성을 높이고 불필요한 함수 재생성을 방지합니다.

const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

function App() {

<div className="app">
<div className="app-container">
<header className="app-header">
<h1 style={{ textAlign: 'center' }}>React Todo API</h1>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

h1 태그에 style={{ textAlign: 'center' }}와 같이 인라인 스타일이 적용되어 있습니다. 스타일의 일관성과 유지보수성을 위해 이러한 스타일은 App.css 파일에 클래스로 정의하여 관리하는 것이 더 좋습니다.

<h1 className="app-title">React Todo API</h1>

Comment on lines +13 to +17
// <li key={item.id} style={{ textDecoration: item.completed ? 'line-through' : 'none' }}>
// <input type="checkbox" checked={item.completed} onChange={() => onToggleCompleted(item.id)} />
// {JSON.stringify(item.completed)} - {item.todo}
// <button onClick={() => deleteTodo(item.id)}>삭제</button>
// </li>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

주석 처리된 코드는 더 이상 사용되지 않는 것으로 보입니다. 불필요한 코드는 제거하여 코드의 가독성을 높이고 혼란을 줄이는 것이 좋습니다.

@Sinou3936 Sinou3936 changed the title React TODO 앱 만들기 진행중 [AIBE6/4팀/김현승] React TODO 앱 만들기 진행중 Mar 19, 2026
@Sinou3936 Sinou3936 reopened this Mar 19, 2026
Sinou3936 and others added 2 commits March 19, 2026 11:51
Replaced Markdown image syntax with HTML image tag.
@Sinou3936 Sinou3936 changed the title [AIBE6/4팀/김현승] React TODO 앱 만들기 진행중 [AIBE6/4팀/김현승] React TODO 앱 만들기 완료 Mar 19, 2026
@Sinou3936 Sinou3936 changed the title [AIBE6/4팀/김현승] React TODO 앱 만들기 완료 [AIBE6/4팀/김현승] TODO 앱 만들기 완료 Mar 19, 2026
@tke0329
Copy link

tke0329 commented Mar 19, 2026

css 적용, 랜덤 id 생성 vite 등 코드에서 내공이 느껴지네요!

Copy link

@Rakhyunn Rakhyunn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 깔끔하였고 그 중 API 요청 처리하는 부분에 await를 걸어 응답이 오면 데이터를 처리해서 undefined 에러를 방지한 부분이 특히 좋았습니다!
고생하셨습니다! 😄

@haxxru
Copy link

haxxru commented Mar 19, 2026

API 요청을 조회, 생성, 삭제, 수정 기능별로 잘 분리해주셔서 전체 CRUD 흐름을 이해하기 쉬웠던 것 같습니다.
한 눈에 알 수 있는 코드인 것 같습니다!

@m1nhy2uk
Copy link

기능 구분이 잘 되어있는거 같아 이해하기 편합니다. 디자인도 깔끔하네요
고생하셨습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants