Development
\_ Manage source code and local dev automation
\_ Focus on code without additional work
Save your life with large scale frontend architecture
Base -> Development -> Build -> Test -> Maintain -> Refactor
-> Workflow -> SCM -> Co-Working -> Code Quality -> Continuous Integration -> Continuous Delivery -> Versioning -> Documentation
- Commit Message Convention
- Side Effects
- Easy to make release notes & Change logs
- Good Convention Guidelines
This guide is quite awesome when you wirte any kind of open source libraries
And this is also good option
- Tool to save your life
- Side Effects
- Side Effects
- Reduce human error immediatly when you work with git every time. In other words, you don't need to care of it at all
- NPM
- Git
- [description] https://github.com/typicode/husky
- [description] https://github.com/marionebl/commitlint
- [description] https://github.com/okonet/lint-staged
- Typing
- Lint
- Google Cloud Build
- Gitlab Pipeline
- AWS CodeBuild
- Travis
- Circle CI
- Cloud
- AWS
- Now.sh
- Digital Ocean
- Heroku
- Static Web Publishing
- Netlify
- Surge
- Github gh-pages
- Side Effects
- Tools
- NPM
- Yarn
- np
- semver
- Manaual
- Gitbook
- Flybook
- README.md
- CHANGELOG.md
- LICENSE.md
- Comments
- ์ฝ๋๋ฒ ์ด์ค
- Monorepo
- What?
- Why?
- When?
- How?
- ๋ถ์ฐ/MSA
- ๊ณตํต ๋ชจ๋๋ผ์ด์ง
- Monorepo
- Universal Rendering
- Next.js
- Nuxt.js
- Others?
- Serverless
- zeit/now
- ํ๊ฒฝ
- ๋ชจ๋ฐ์ผ
- Native Interfaces with Web Application
- ๋ฐ์คํฌํ
- ๊ทธ์ธ
- ๋๋ฒ๊น
- ๋ชจ๋ฐ์ผ
WACQA is just LGTM
- Client-side
- Framework - How much time we can spend for that?
- How to manages dependencies?
- How to migrate version issue?
- Learning costs
- Pros & Cons for our goals
- Tooling costs
- Responseive
- Browser
- Mobile
- TV
- PWA
- Service Worker
- Web Push
- SEO
- Will we happy with SEO?
- Universal Rendering - SSR
- Really need this to archive our goal?
- Static Typing
- Can you answer me why we are need this thing on our project?
- i18n - Internationalization
- a11y - Web Accessibility
- Testing - unit(snapshot), e2e and others?
- Browers Capability
- CSS - Pre-processor (SASS/Less/Stylus) and JSS
- Framework - How much time we can spend for that?
- Backend-side
- coming up
- Web Component
- Router
- React.js
- Vue.js
- CSS
- css
- inline style
- CSSModules
- styled-component
๊ณผ๊ฑฐ MVC ํจํด์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํ์ ๋๋ถ๋ถ์ด์๋ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๊ด๋ฆฌ๋ ๊ฐ Model ๊ณผ Controller ์ ์ํด์ ๊ด๋ฆฌ๋์ด์ก๋ค. ๋ฌผ๋ก ๊ทธ๋ ๋น์์ ์ํ๊ด๋ฆฌ๋ ๊ทธ๋ ๊ฒ ๋ณต์กํ์ง ์์๋ค. ์๋ ๊ทธ๋ ๊ฒ ๋ณต์กํ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ์ง ์์๋ค.
ํ์ง๋ง ๋ชจ๋ ์น ๋ธ๋ผ์ฐ์ ์ ๊ธฐ์ ์ ๊ธ์๋๋ก ๋ฐ์ ํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ๋ ๊ธ์๋๋ก ๋ณํํ์๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํ ํจํด๋ MVC ์์ 2013๋ ์ ๊ธฐ์ ์ผ๋ก ๋งํฌ์ , ์คํ์ผ์ํธ๋ฅผ ๋จ์ผ ํ์ผ์ ๋ด์ ์น ์ปดํฌ๋ํธ์ ํํ๋ก ๋ณํํ๋ฉด์ ์ํ๊ด๋ฆฌ์ ๋ณต์กํจ์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ(Uni-direction Data Flow)์ผ๋ก ๊ทธ ํจ๋ฌ๋ค์์ ๋ฐ์ ์์ผ์ค๊ณ ์๋ค.
๋๋ถ์ด ๋ค์ํ ์ธ์ด์ ํ๊ฒฝ์ ๊ฒฝํ๋ค์ด ์น ์ํ๋จธ์ ์ ํจ๋ฌ๋ค์์ ์ํฅ์ ์ฃผ๊ณ ์๋ค.
- Flux
- Uni-Direction Data Flow
- Redux
- React
- Vuex
- Action
- Getter
- Mutation
- Module
- Computed
- Saga
- GraphQL
- Observable
- Rx
- MobX
- TFRP(transparently applying functional reactive programming)
- We have to understand about general state machine - https://en.wikipedia.org/wiki/Finite-state_machine
๋ชจ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํ ํ๊ฒฝ์ ๊ณผ๊ฑฐ์ ๋นํด ์๋ฑํ ์ข์์ง๊ณ ์์ผ๋ฉฐ ๋ฌ๋์ปค๋ธ๊ฐ ๋ฎ์์ง๊ณ ์๋ค.
2013๋ ์ด๋ถํฐ ์น ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ด ๋ฐํ์ด ๋๋ฉด์ ์ต๊ทผ 2015๋ ๋ถํฐ๋ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ฒด๊ณ๊ฐ ๊ฐ์ถฐ์ง ํ ์คํธ๋ฅผ ์ ์งํ ์ ์๊ฒ ๋์๋ค. ํ ์คํธ์ ๋ฐฉ์๊ณผ ํ ์คํธ ๋ ๋ฒจ์ ์ค์๋๊ฐ ๋ฌ๋ผ์ง๊ณ ์๋ค.
ํฐ ์ฌ์ด์ฆ์ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์งํ๊ธฐ ์ํด์ ์๋์ ์ ์ํ ๋ช๊ฐ์ง ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ๊ณผ ํ ์คํ ์ ๋ต์ ๋ํด์ ์ถฉ๋ถํ ์ดํดํ๋ฉด ์ข๋ค.
- Unit(์ค๋
์ท)
- Jest
- Mocha
- E2E
- ์ฌ์ฉ์ ๋ถ์ ์ ๋ต
- ํผ๋(funnel) ๋์์ธ ๋ฐฉ๋ฒ
- for Debug
- for Tracing
- Node.js
- Morgan
- Web Application
- Sentry - sentry.io
- Mobile
- Node.js
๋๋ถ๋ถ์ ๋ณด์์ ํ๋ก ํธ์๋ ์ฆ ๋ธ๋ผ์ฐ์ ์์ญ์์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ๊ทธ๋ค์ง ์ค์๋๊ณ ๋์ง ์๊ฒ ๋๋๋ค. ๊ณผ๊ฑฐ๋ ํ์ฌ๋, ์ด ์น์ ์์๋ ๋ณด์์ ์ค์์ฑ, ํ์์ฑ์ ๋ํ ์ ๋ณด๋ณด๋ค ๋ณด์ ์ทจ์ฝ์ ์ด ๋ฐ์ํ ์ ์๋ ๋ค์ํ ์ํ ์์๋ฅผ ์ธ์ํ๊ณ ์๋ฐฉํ ์ ์๋ ๋ฐฉ๋ฒ๋ค์ ๋ํด ํฌ๊ฒ 2๊ฐ์ง ์์ญ Node.js, Browser ๋ค๋ฃจ๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ค.
Node.js ์ ๊ฒฝ์ฐ ์๋ฒ ํ๋ก๊ทธ๋๋ฐ์ ๋์ด์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์ํฅ์ ์ฃผ๊ณ ์๋ค. ๋๋ถ์ด ์์คํ ์ ์ ์ฝ์์ด ์์ธ์ค ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ์น ๋ณด์์ ๋์ด์ ์์คํ ๋ณด์์ ์ทจ์ฝ์ ๊น์ง ๋ฐ์ํ ์ ์๋ค.
- 10 npm Security Best practices - https://snyk.io/blog/ten-npm-security-best-practices/
- npm audit - https://docs.npmjs.com/cli/audit
- nsp - https://www.npmjs.com/package/nsp
Google Web Fundmental - https://developers.google.com/web/fundamentals/security?hl=ko
- Content Security Policy - https://developers.google.com/web/fundamentals/security/csp?hl=ko
- This! Good start point - https://www.smashingmagazine.com/2019/01/front-end-performance-checklist-2019-pdf-pages/
- PWA
- SEO
- Bundling
- Code Splitting
- Tree Shaking
- Minify
- NginX Configuration
- This can help your server improve the SPA(Single Page Application) and web site's performance and security, while also ensuring that resources are served with the correct content-type and are accessible, if needed, even cross-domain.
- Configuration your web server to prevent caching
- Caching best practices & max-age gotchas
- HTML5 Boilerplate Nginx Configuration
- Tools
Lighthouse ๋ ์น ์ฑ์ ํ์ง ๊ฐ์ ์ ์ํ ์คํ์์ค ์๋ํ ๋๊ตฌ
- Assets
- Image
- CSS
- Design Ops
- Definition
- token
- element
- component
- pattern
- template
- Layout
- Grid
- Motion & Animation
- Colors
- Pattern
- HEX
- RGBA
- HSLA
- Sizing
- Structured CSS
- Preprocessor
- CSS in JS
In every developer's life. We are considerating every day how to write high reusable code.
We have to understand about Separation of concerns (aka SoC) - https://en.wikipedia.org/wiki/Separation_of_concerns
- Common Regular Expression
- Name
- Phone
- Number Format
- Time
- Date
- Zip Code
- Mobile Native Interfaces
- .well-known - https://www.mnot.net/blog/2010/04/07/well-known