2023.11.14(화) 📋프로젝트 관리의 중요성 📖Read Me 🔧Git
2023.11.15(수) 🗂️VCS 종류 (LVCS, CVCS, DVCS) 💻Git & GitHub 🧑💻CLI vs GUI
2023.11.16(목) ⌨️Git CLI 💡Git의 Stage와 Status 🚩Git Basic Commands 🔄️Modify & Undo 🚥Git GUI
2023.11.17(금) 🔑Personal Access Tokens를 사용해 계정 등록 📥CLI clone 📥GUI clone 🌱Branch
2023.11.20(월) ✏️Git Branch Naming Conventions 🕸️Git Flow (Git Branch Strategy) 📥GitHub GUI로 Pull Request & Merge
2023.11.21(화) 🕸️웹의 이해 🌐웹의 구조 🧑💻웹 개발 직무 이해 📚HTML, CSS, JavaScript
2023.11.22(수) 🖌️CSS (Cascading Style Sheets) 🪄JavaScript
2023.11.23(목) 📄정적 페이지와 동적 페이지 🗄️Backend 구조 📗Node.js란? 🧩Node.js로 웹서버 만들기 🛜HTTP(Hypertext Transfer Protocal)
2023.11.24(금) 💾Database 🖋️SQL (Structured Query Language) 🐋Docker 🦭MariaDB(MySQL) Basic Commands 🔗Node.js에 DB 연동
2023.11.27(월) 📜포트폴리오 웹 페이지 제작 💾데이터베이스 모델링 🤔MariaDB Data Types 🔑MariaDB KEY
2023.11.27(화) 짧은 회고
2023.12.04(월) 🍽️API(Application Programming Interface) 📡REST(Representational State Transfer) API 📏REST API URL 규칙
2023.12.05(화) 🤔Why Node.js? 👀Node.js 특징 ❓모듈(Module), 라이브러리(Library), 프레임워크(Framework)
2023.12.06(수) 🚝Express 🚩기본 사용법 (Routing, Response Methods, Serving static files)
2023.12.07(목) 🧩비구조화 할당 (구조분해, destructuring assignment) 🧩전개(spread) 연산자와 나머지(rest) 연산자 🔖JavaScript Naming Rule 🗺️Map
2023.12.08(금) 💻map을 이용한 간단한 api 실습 🚀Express Application Generator ⚙️Setting 🕵️Skeleton File 분석
2023.12.11(월) 📮Postman 📨Get과 Post 차이 & req.body 💻Postman을 사용하여 post 테스트하기
2023.12.12(화) ⚙️리팩토링(refactoring) 🔌HTTP 상태 코드(HTTP Status Codes)
2023.12.13(수) 📨Express에서 HTTP 상태 코드 보내기
2023.12.14(목) 🏗️미니 프로젝트 (유튜브) > 🖋️API 설계 💡Object가 비어 있는지 확인하기
2023.12.15(금) 🧭Node.js에서의 라우팅(Routing)? 🏗️미니 프로젝트 (유튜브) 수정 🎨ERD(Entity Relationship Diagram) 🖋️API 설계 💻CODE
2023.12.18(월) 🗃️Data와 Database 🗄️DBMS(DataBase Management System) 📍DBMS의 종류 (RDBMS vs NoSQL)
2023.12.19(화) ⌨️접속 및 실행 ⌨️실습
2023.12.20(수) 🚥MariaDB GUI (MySQL Workbench) 🛠️MySQL Workbench 실습 🔗Node.js에 DB 연동 ⌚Timezone setting ▶️테스트
2023.12.21(목) 🏗️미니 프로젝트 (유튜브)에 DB 연결 🤯timezone issue
2023.12.22(금) ✔️유효성 검사(validation) 💻CODE 🌉Middleware 📍middleware의 특징 📍middleware의 유형
2023.12.25(월) 🔐인증과 인가 🎫JWT(JSON Web Token) 🔗공식 사이트 jwt.io 🔑JWT 구조 🛡️JWT 동작 과정 👩💻node.js에서 JWT 사용해보기 🏗️미니 프로젝트 (유튜브)에 JWT 적용해보기
2023.12.26(화) 필수 CS Database Q1. FK는 무조건 다른 테이블의 PK여야 하는가? Q2. DB transaction이란 무엇이고 어떤 상황에 사용할까?
2023.12.27(수) 📚BOOK STORE 🖥️화면 명세 🎨 ERD(Entity Relationship Diagram)
2023.12.28(목) 🎨 ERD 업데이트 ✏️table명 및 column명 수정 📝table 설명
2023.12.29(금) 🖋️API 설계 🧱코드 구조 작성
2024.01.02(화) 🔌http-status-codes 모듈 🔐crypto 모듈 🔒암호화 원리
2024.01.03(수) 🖼️picsum 📖도서 API URI
2024.01.04(목) 🗓️SQL 날짜 연산 📄Pagination (Paging) 구현
2024.01.05(금) 🏷️AS 🔍Subquery 🔢COUNT() 🫥EXISTS <Table subquery> ✅API에 적용
2024.01.08(월) 🎯expr IN (value,...) ❓Escaping query values with placeholder ✅API에 적용
2024.01.09(화) 🛍️주문 API > handler submitOrder ✔️conn.format으로 확인하기
2024.01.10(수) ⏳비동기 처리 🤙Promise 🫷async/await 🔄mysql2 비동기 처리 🆚createConnection vs createPool 🏊createPool Promise 사용 예시
2024.01.11(목) 🔄Table 초기화 🛍️주문 API 구현 📦Modularize
2024.01.12(금) 🚀Authorization header에 JWT 넣어 보내기 🔐Authorization header 형식 🐻Bearer란? ✔️JWT verification
2024.01.15(월) 📍MariaDB SQL_CALC_FOUND_ROWS, FOUND_ROWS() 🚫errorHandler 수정 🧐유효성 검사 구현
2024.01.16(화) 🐍snake_case → 🐪camelCase
2024.01.22(월) 🤔프로그래밍의 기본 원리 💬컴파일 언어와 인터프리터 언어 🧠프로그래밍의 개념 🔤변수와 자료형 💾메모리 영역 🗄️콜 스택과 메모리 힙 📊자료형 ⌨️사용자로부터 데이터 입력받기 📝평가 문제
2024.01.23(화) 🧮연산자 🌿분기문/조건문 🔁반복문 🚦break 문과 continue 문 📝평가 문제
2024.01.24(수) 🪄함수 🔍변수의 범위 🏡지역변수(local variable) 🌐전역변수(global variable) 🧊static(정적) 변수 📚배열 👉포인터 ⭐포인터와 배열 ⭐함수와 포인터 📝평가 문제
2024.01.25(목) 🏗️구조체 🤝공용체 🏷️열거형 📥동적 메모리 할당 📝평가 문제
2024.01.26(금) 👤객체 지향 프로그래밍 방식 🆚절차 지향 vs 객체 지향 🗿객체 지향 철학 📂클래스 (C#) 📜인터페이스 💾메모리 관리 🗑️가비지 컬렉터 🔄가비지 컬렉터의 힙 관리 동작 🚀람다를 통한 화살표 함수의 이해
2024.01.29(월) 📘타입스크립트란? 🤔데이터 타입과 추론 📝타입 명시 📜인터페이스 🏷️열거형
2024.01.30(화) 🤝Union Type 🤞Intersection Type 🌟타입 별칭(type alias) 🛡️타입 가드(type guard) 📚Array와 Tuple 📂클래스
2024.01.31(수) 📘리액트란? 📒JSX 🏛️리액트 기본 소스 구조 🔍JSX 기초 문법
2024.02.01(목) 🔄State 🧐State 왜 사용할까? 🪝useState Hook 사용법 🎨리액트의 Rendering 방법 🪄Component
2024.02.02(금) 🔑key 🎁Props 📝실습
2024.02.05(월) ☕커피 주문 사이트 제작 프로젝트 🅱️Bootstrap 🖼️이미지 사용하기 ⚛️React Router DOM
2024.02.06(화) 📑Bootstrap 탭 UI 💅Styled Components ✨Effect 🧐 Effect 왜 사용할까? 🪝useEffect Hook 사용법 📡AJAX 🤔Props의 문제점
2024.02.07(수) 🧠Redux ♻️one-way data flow 🔠Redux Terminology 🌊Redux Application Data Flow 📜Redux의 세 가지 원칙 😎Modern Redux
2024.02.08(목) 🪲리액트 디버깅 도구 🚀리액트 배포하기 🫱🏻🫲🏼리액트와 node.js 서버 합치기
2024.02.13(화) 🌐오픈 소스 📜오픈 소스 라이선스
2024.02.14(수) 🧑⚖️GitHub Repo에 오픈 소스 라이선스 적용하기 ➕이미 존재하는 리포지토리에 license 추가하기 🤖오픈 소스 프로젝트(커뮤니티) 상태 파일
2024.02.15(목) 🗣️GitHub Discussions 👥오픈 소스 구성원 역할 ✨Contribution Step
2024.02.16(금) 📊주요 라이선스 내용 비교 🔄오픈 소스 라이선스 변경 사례
2024.02.19(월) ⚠️오픈 소스 소프트웨어의 보안 리스크 ✅오픈 소스 소프트웨어 사용 단계 별 고려 사항
2024.02.21(수) 🖥️CRA와 Vite 📂book-store 프로젝트 src 폴더 구조 ⌨️React CLI 📐레이아웃 구성하기 🌐Global Style 🎨테마 💅Styled Components
2024.02.22(목) 💡Theme Switcher with Context API 🌱기본 컴포넌트 작성 📣Title 🕹️Button 🔤Input 📚프로젝트 3 : BOOK STORE 🛠️헤더와 푸터 구성 🛣️라우트 작성
2024.02.23(금) 🏗️모델 정의 📡Axios ⚠️Cross-Origin Resource Sharing (CORS) Error 🏷️카테고리 🔐회원가입 🔄️비밀번호 초기화 🚪로그인과 전역상태
2024.02.26(월) 📋화면 요구 사항 🏗️구조 🔄Query String 업데이트 ✨구현하면서 새롭게 알게 된 지식 🪝useSearchParams Hook & useLocation Hook 🔍URLSearchParams 🎨Flex & Grid
2024.02.27(화) 📋화면 요구 사항 ✨구현하면서 새롭게 알게 된 지식 🪝useParams Hook 📝<dl> tag 🟧day.js ⚠️non-boolean attribute warning 🫠낙관적 업데이트(Optimistic Update)
2024.02.28(수) 🛒장바구니 페이지 📦주문 페이지 🚚주문 내역 페이지 🪝useMemo, useCallback, useNavigate, useForm Hook 📮Daum(kakao) 우편번호 서비스 ⏳<script> tag 🔲<td> tag
2024.02.29(목)
2024.03.04(월) 🤥모킹 서버 작성 📋리뷰 목록 ✍️리뷰 작성 🔽드롭다운 🎨CSS Position 🪝useRef Hook 📑탭 🎞️React.Children.toArray()
2024.03.05(화) 🍞토스트 🖼️모달 🌀createPortal API ♾️무한 스크롤 🪝React Query: useInfiniteQuery Hook 👁️IntersectionObserver API
2024.03.06(수) 🏠메인화면 ⭐리뷰 섹션 🎠React Slick 🆕신간 섹션 🏅베스트셀러 섹션 🚩배너 섹션 📱모바일 대응
2024.03.07(목) 🛢️웹 개발 파이프라인 🕶️가상화(Virtualization) 🐋Docker
2024.03.08(금) 🧩마이크로서비스 아키텍쳐 ☸Kubernetes 🏘️k8s 클러스터 🏠구성 요소 🗃️포드(pod)와 컨테이너(Container) 💡k8s 오브젝트들 🪄k8s가 제공하는 기능 🏗️k8s 인프라 구축
2024.03.11(월) 🎬CI/CD 시나리오 👔Jenkins 📥k8s 클러스터에 소프트웨어 설치 ⚙️젠킨스 기초 설정 🌱젠킨스 기본 사용법 맛보기 ⌨️젠킨스 프로젝트 실습
2024.03.15(금) 🌐오픈소스 📄문서 기여해보기 🔍적절한 오픈소스 문서(Docs) 찾아보기 📚MDN Web Docs 기여
2024.03.18(월) 👍first-contributions 프로젝트 💡오픈소스 프로젝트 검색 Tip (for beginners) 🔥실전 오픈소스 프로젝트 기여 방법 (for challengers)
2024.03.19(화) 🛡️main branch에 대한 안전 장치 설정 📝문서 템플릿 및 README 작성 🤖PR 관리를 위한 Github Actions 설정 🚀Github Actions 🛤️워크플로(workflow)
2024.03.20(수) 💡프로젝트 결과물 예시 🔧사용하는 기술 스택 💾Backend 🖥️Frontend 🚀Production deployment 📑요구사항 명세서 🏰서비스 모델 아키텍처
2024.03.21(목) 🎨ERD(Entity Relationship Diagram) 🖋️API 설계 ☸️쿠버네티스(Kubernetes, k8s) 객체 설정 🛢️데이터베이스 설정 💾개발 환경 셋업 🔐암호화 모듈: crypto & bcrypt
2024.03.22(금) 🌿패키지 구조 🖥️개발 환경 셋업 🎨UI 구현
2024.03.25(월) 🧪단위 테스트 📦컨테이너화
2024.03.26(화) 🤖Selenium 🔧Selenium 구성 요소 🚶♂️Selenium standalone(hub + node) 실습 🐋selenium standalone 도커에 실행 🐍Selenium python 라이브러리 설치
2024.03.27(수) 🏁E2E 테스트 📹Selenium IDE 🧪E2E 테스트 케이스 개발
2024.03.28(목) ☁️클라우드 서비스 종류 IaaS(이아스, 아이아스) PaaS(파스) SaaS(싸스) 🌤️클라우드 장단점 장점 단점 🟧AWS (Amazon Web Services)
2024.03.29(금) 🐱NestJS 📥설치 (with Nest CLI) 🏗️기본 구조 Controllers Providers Modules Pipes