Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

KERT-core/web-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

6 Commits

Repository files navigation

web-study

2025-2 KERT 웹 스터디


📖 프로젝트 개요

스터디 정보

  • 총 소요 시간: 1시간 30분
  • 이론:실습 비중: 4:6 (이론 36분, 실습 54분)
  • 대상: 웹 프론트엔드 개발 입문자
  • 목표: 실무에서 바로 사용 가능한 JS/TS + React 핵심 개념 습득

완성 현황

  • Session 1: JavaScript & TypeScript (4개 학습 자료 + 4개 실습)
  • Session 2: React (4개 학습 자료 + 6개 실습 + 완전한 Todo 앱)

📚 Session 1: JavaScript & TypeScript 기초 (45분)

학습 자료

1.1 JavaScript 핵심 개념 (20분: 이론 8분, 실습 12분)

📄 01-variables-and-types.md

  • 변수 선언 (const, let, var, 호이스팅)
  • 데이터 타입 (원시 타입 vs 참조 타입)
  • 연산자 (산술, 비교, 논리, 삼항)
  • 템플릿 리터럴
  • Truthy/Falsy와 단축 평가
  • Optional Chaining (?.), Nullish Coalescing (??)
  • 객체 단축 표기법
  • 구조 분해 할당 (Destructuring)
  • Spread/Rest 연산자
  • 제어문 (if-else, switch, for, while)

📄 02-functions-and-arrays.md

  • 함수 선언 방식 (함수 선언식, 표현식, 화살표 함수)
  • 일반 함수 vs 화살표 함수 (this 바인딩)
  • 기본 매개변수, 나머지 매개변수
  • 배열 메서드 (forEach, map, filter, reduce, find, some, every)
  • 메서드 체이닝 (실전 패턴)
  • 배열 정렬 (sort)
  • 실전 데이터 처리 예제

📄 03-async-programming.md

  • 동기 vs 비동기
  • 콜백 함수와 콜백 지옥
  • Promise (then-catch, 체이닝, 정적 메서드)
  • async/await (가장 중요!)
  • Fetch API (GET, POST, PUT, PATCH, DELETE)
  • JSON 다루기 (stringify, parse)
  • 실전 CRUD 구현
  • 에러 처리, 재시도 로직, 타임아웃

1.2 TypeScript 기초 (15분: 이론 6분, 실습 9분)

📄 04-typescript-basics.md

  • 기본 타입 (원시 타입, 배열, 튜플, 객체)
  • Interface (핵심!)
  • Type Alias (Interface vs Type)
  • Union과 Intersection 타입
  • Literal 타입
  • 함수 타입
  • Generic (재사용 가능한 타입)
  • Type Guard
  • React와 TypeScript
  • Utility Types (Partial, Pick, Omit, Record, Readonly)

실습 자료 (exercises/)

📁 exercises/

  1. 01-variables-practice.js

    • 객체 생성, 구조 분해 할당
    • 템플릿 리터럴, 삼항 연산자
    • Optional chaining, Spread 연산자
    • 배열 평균 계산
  2. 02-functions-practice.js

    • 화살표 함수 작성
    • map, filter, reduce, some, every
    • 메서드 체이닝 (평균 가격, 카테고리별 개수)
    • 배열 정렬, 그룹화
  3. 03-async-practice.js

    • Promise (then-catch)
    • async/await
    • Fetch API (GET, POST, DELETE)
    • 병렬 요청 (Promise.all)
    • CRUD 구현
    • 타임아웃, 재시도 로직
  4. 04-typescript-practice.ts

    • Interface 정의 (Product, User, Author, Post)
    • Generic 함수
    • API 응답 타입 (ApiResponse)
    • Type Guard
    • Utility Types
    • Mapped Types

⚛️ Session 2: React 기초 (45분)

학습 자료

2.1 React 핵심 개념 (18분: 이론 8분, 실습 10분)

📄 01-react-fundamentals.md

  • React 소개 및 개발 환경 설정 (Vite)
  • 컴포넌트와 JSX
  • Props를 통한 데이터 전달
  • children Props
  • 컴포넌트 분리와 재사용
  • 조건부 렌더링 (삼항 연산자, &&)
  • 리스트 렌더링 (map, key)
  • 이벤트 처리

📄 02-hooks-and-state.md

  • State 개념
  • useState Hook (가장 중요!)
  • State 업데이트 패턴
  • 입력 폼과 State
  • 배열 State 조작 (추가, 삭제, 수정)
  • 객체 State 조작
  • useEffect Hook (Side Effects)
  • localStorage와 State 동기화
  • State 끌어올리기 (Lifting State Up)
  • 실전 쇼핑 카트 예제

📄 03-api-integration.md

  • React에서의 API 호출
  • fetch API 사용하기
  • 로딩/에러/데이터 상태 관리 (핵심 패턴!)
  • POST, PUT/PATCH, DELETE 요청
  • axios 라이브러리
  • 커스텀 Hook (useFetch, useAsync)
  • 실전 검색, 페이지네이션
  • 에러 처리 Best Practices

2.2 실전 프로젝트: Todo 앱 (27분: 이론 6분, 실습 21분)

📄 04-todo-app-tutorial.md

  • 완전한 Todo 앱 구현 가이드
  • 컴포넌트 설계
  • TypeScript 타입 정의
  • LocalStorage 연동
  • 완전한 CSS 스타일링
  • 추가 기능 구현 방법
  • 성능 최적화 (useMemo, useCallback)

📁 todo-app/ - 완성된 Todo 앱 코드

  • ✅ Todo 추가/완료/삭제
  • ✅ 필터링 (전체/완료/미완료)
  • ✅ LocalStorage 자동 저장
  • ✅ TypeScript 완벽 적용
  • ✅ 반응형 디자인

실습 자료 (exercises/)

📁 exercises/ - 사용 가이드

01. React 기초 실습

📁 01-react-basics-practice/

  1. ProfileCard.tsx - 사용자 프로필 카드

    • Props 사용
    • 선택적 Props
    • 조건부 렌더링
  2. ProductList.tsx - 상품 목록

    • 배열 렌더링
    • 리스트와 key
    • 카테고리별 배지

02. Hooks와 State 실습

📁 02-hooks-practice/

  1. CounterWithHistory.tsx - 히스토리 카운터

    • useState
    • 배열 State 조작
    • 이벤트 핸들링
  2. TodoListWithFilter.tsx - 필터링 Todo 목록

    • 여러 State 관리
    • 배열 CRUD
    • 필터링 로직

03. API 통신 실습

📁 03-api-practice/

  1. UserList.tsx - 사용자 목록

    • fetch API
    • useEffect
    • 로딩/에러/데이터 상태
  2. PostManager.tsx - 게시글 관리

    • CRUD 구현
    • POST, DELETE 요청
    • 폼 처리

📁 프로젝트 구조

web-study/
├── README.md # 📘 이 파일
├── CLAUDE.md # Claude Code 작업 가이드
├── references/ # 참고 자료
│ └── 프론트엔드_2차시_JS.pdf
│
├── session1-js-ts/ # 📚 JavaScript & TypeScript
│ ├── 01-variables-and-types.md
│ ├── 02-functions-and-arrays.md
│ ├── 03-async-programming.md
│ ├── 04-typescript-basics.md
│ └── exercises/ # 실습 문제
│ ├── 01-variables-practice.js
│ ├── 02-functions-practice.js
│ ├── 03-async-practice.js
│ └── 04-typescript-practice.ts
│
└── session2-react/ # ⚛️ React
 ├── 01-react-fundamentals.md
 ├── 02-hooks-and-state.md
 ├── 03-api-integration.md
 ├── 04-todo-app-tutorial.md
 ├── exercises/ # 실습 문제
 │ ├── README.md # 실습 가이드
 │ ├── 01-react-basics-practice/
 │ │ ├── ProfileCard.tsx
 │ │ ├── ProfileCard.css
 │ │ ├── ProductList.tsx
 │ │ └── ProductList.css
 │ ├── 02-hooks-practice/
 │ │ ├── CounterWithHistory.tsx
 │ │ ├── CounterWithHistory.css
 │ │ ├── TodoListWithFilter.tsx
 │ │ └── TodoListWithFilter.css
 │ └── 03-api-practice/
 │ ├── UserList.tsx
 │ ├── UserList.css
 │ ├── PostManager.tsx
 │ └── PostManager.css
 └── todo-app/ # 🎯 완성된 Todo 앱
 ├── package.json
 ├── tsconfig.json
 ├── vite.config.ts
 ├── index.html
 └── src/
 ├── main.tsx
 ├── App.tsx
 ├── App.css
 ├── index.css
 ├── types/
 │ └── todo.ts
 └── components/
 ├── TodoInput.tsx
 ├── TodoInput.css
 ├── TodoList.tsx
 ├── TodoList.css
 ├── TodoItem.tsx
 ├── TodoItem.css
 ├── TodoFilter.tsx
 └── TodoFilter.css

🚀 빠른 시작

1. 학습 자료 읽기

# Session 1 - JavaScript & TypeScript
session1-js-ts/01-variables-and-types.md
session1-js-ts/02-functions-and-arrays.md
session1-js-ts/03-async-programming.md
session1-js-ts/04-typescript-basics.md
# Session 2 - React
session2-react/01-react-fundamentals.md
session2-react/02-hooks-and-state.md
session2-react/03-api-integration.md
session2-react/04-todo-app-tutorial.md

2. 실습 문제 풀기

Session 1 실습

# JavaScript 파일 실행
node session1-js-ts/exercises/01-variables-practice.js
node session1-js-ts/exercises/02-functions-practice.js
node session1-js-ts/exercises/03-async-practice.js
# TypeScript 파일은 ts-node로 실행
npx ts-node session1-js-ts/exercises/04-typescript-practice.ts

Session 2 실습

# Vite 프로젝트 생성
npm create vite@latest react-practice -- --template react-ts
cd react-practice
npm install
# 실습 파일 복사
mkdir src/components
cp session2-react/exercises/01-react-basics-practice/*.tsx src/components/
cp session2-react/exercises/01-react-basics-practice/*.css src/components/
# 개발 서버 실행
npm run dev

상세한 실습 방법은 exercises/README.md 참고

3. Todo 앱 실행

cd session2-react/todo-app
npm install
npm run dev

브라우저에서 http://localhost:5173 열기


🎯 학습 목표

이 스터디를 마치면 다음을 할 수 있습니다:

JavaScript 기초 ✅

  1. 모던 JavaScript(ES6+) 문법 활용
    • const/let, 화살표 함수, 구조 분해, 스프레드
  2. 배열 메서드를 활용한 데이터 처리
    • map, filter, reduce, find, some, every
  3. 비동기 프로그래밍
    • Promise, async/await, try-catch
  4. API 통신
    • fetch API, JSON 처리

TypeScript ✅

  1. 기본 타입 시스템 이해
    • Interface, Type, Union, Generic
  2. 타입 안정성을 갖춘 코드 작성
    • 컴파일 타임 에러 방지

React ✅

  1. React 컴포넌트 기반 UI 구현
    • 함수형 컴포넌트, JSX, Props
  2. React Hooks를 사용한 상태 관리
    • useState, useEffect
  3. 컴포넌트 간 데이터 전달
    • Props, State 끌어올리기
  4. 완전한 CRUD 애플리케이션 개발
    • Todo 앱 (추가/수정/삭제/필터링)

🛠 필수 준비 사항

소프트웨어 설치

# Node.js 확인 (v18 이상 권장)
node --version
npm --version
# Vite로 React + TypeScript 프로젝트 생성
npm create vite@latest my-react-app -- --template react-ts
cd my-react-app
npm install
# 개발 서버 실행
npm run dev

권장 도구

  • 코드 에디터: VS Code
  • VS Code 확장 프로그램:
    • ES7+ React/Redux/React-Native snippets
    • Prettier - Code formatter
    • ESLint

사전 지식

  • HTML 기본 구조 이해
  • CSS 기본 스타일링
  • 터미널 기본 명령어 (cd, ls, npm)

📖 추가 학습 자료

공식 문서

온라인 튜토리얼

API 실습용 서비스


💡 학습 팁

효과적인 학습 순서

  1. 학습 자료 읽기 - 개념 이해
  2. 예제 코드 따라하기 - 직접 타이핑
  3. 실습 문제 풀기 - 스스로 구현
  4. 솔루션 비교 - 더 나은 방법 찾기
  5. 커스터마이징 - 추가 기능 구현

디버깅 방법

  • 브라우저 개발자 도구 (F12) 적극 활용
  • console.log()로 데이터 확인
  • React DevTools 확장 프로그램 설치
  • TypeScript 에러 메시지 꼼꼼히 읽기

실전 연습

  • GitHub에 코드 업로드
  • 포트폴리오 프로젝트 만들기
  • 다른 사람의 코드 리뷰
  • 오픈소스 프로젝트 기여

📝 다음 학습 주제

이 스터디를 완료했다면:

심화 React

  • React Router (페이지 라우팅)
  • Context API (전역 상태 관리)
  • React Query (서버 상태 관리)
  • 커스텀 Hooks
  • 성능 최적화 (memo, useMemo, useCallback)

상태 관리

  • Redux Toolkit
  • Zustand
  • Recoil

스타일링

  • Styled Components
  • Tailwind CSS
  • CSS Modules

테스팅

  • Jest
  • React Testing Library
  • E2E 테스트 (Playwright, Cypress)

빌드 & 배포

  • Vercel
  • Netlify
  • GitHub Pages

About

2025-2 KERT 웹 스터디

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /