Skip to content

bankidz/bankidz-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

1. ์–ด๋ฆฐ์ด๋ฅผ ์œ„ํ•œ ํ•€ํ…Œํฌ ์„œ๋น„์Šค, ๋ฑ…ํ‚ค์ฆˆ

iOS App AOS App PC Web
ios-qr-code
App Store
aos-qr-code
Play Store
bankidz.com

๋ฑ…ํ‚ค์ฆˆ๋Š” ์›น๋ทฐ ํ™˜๊ฒฝ์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํƒ€ ์›น ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” APPLE๋กœ ๋กœ๊ทธ์ธ, ๋”ฅ๋งํฌ๋ฅผ ํ†ตํ•œ ๊ฐ€์ด‰ ์ดˆ๋Œ€, ํ‘ธ์‹œ์•Œ๋ฆผ ๊ธฐ๋Šฅ์ด ์ •์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฑ…ํ‚ค์ฆˆ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๋ฐฐ๊ฒฝ

01

02


2. ๋ฑ…ํ‚ค์ฆˆ๋ฅผ ๋งŒ๋“œ๋Š” ์‚ฌ๋žŒ


์‹ ์„ฑ์šฐ

ํ•œ๊ทœ์ง„

๊น€๋ฏผ์ค€

์ฃผ์–ด์ง„์‚ฌ๋ž‘

์ด๊ทผ์šฐ
Frontend
Engineer
Frontend
Engineer
Backend
Engineer
Backend
Engineer
App
Engineer
์•ˆ๋„์˜ ๋ฐ•์†Œ์ • ๊น€์ˆ˜๋นˆ ์ตœ์ง€ํ˜œ
CEO PO Designer Designer

3. ๋ฑ…ํ‚ค์ฆˆ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ 

๋ฑ…ํ‚ค์ฆˆ๋Š” ๊ฐ€์„ค ๊ฒ€์ฆ ์ฃผ๊ธฐ๋ฅผ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•ด ํ‘ธ์‹œ์•Œ๋ฆผ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์›น ๊ธฐ์ˆ ๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ญ์ƒ ์ตœ์‹ ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์— ๊ธฐ๋ฏผํ•˜๊ฒŒ ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ”์–ด: React, TypeScript
  • ์ƒํƒœ๊ด€๋ฆฌ: Redux, React-Query
  • ๋””์ž์ธ ์‹œ์Šคํ…œ: storybook, Figma, Theme-provider
  • ์Šคํƒ€์ผ๋ง: Styled-components
  • ์ฝ”๋“œํ’ˆ์งˆ: ESLint, Prettier
  • CI/CD: Github-actions, Docker-compose
  • ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ: Git with Git-flow
  • ํ˜‘์—…: Swagger, Github
  • ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜: Bankidz FE Guide
  • ์›น๋ทฐ ์•ฑ: React Native with EXPO
๋””๋ž™ํ† ๋ฆฌ ๊ตฌ์กฐ
.
โ”œโ”€โ”€ components # Atomic Design Pattern
โ”‚   โ”œโ”€โ”€ atoms
โ”‚   โ”œโ”€โ”€ blocks
โ”‚   โ””โ”€โ”€ pages
โ”œโ”€โ”€ lib
โ”‚   โ”œโ”€โ”€ apis
โ”‚   โ”‚   โ””โ”€โ”€ ${controller}
โ”‚   โ”‚       โ”œโ”€โ”€ ${controller}Api.ts # queryFn, mutationFn
โ”‚   โ”‚       โ””โ”€โ”€ ${controller}Dto.ts # 'Server-side' types
โ”‚   โ”œโ”€โ”€ constants
โ”‚   โ”‚   โ””โ”€โ”€ queryKeys.ts # queryKey
โ”‚   โ”œโ”€โ”€ hooks # Global custom hooks
โ”‚   โ”œโ”€โ”€ styles # themeProvider
โ”‚   โ””โ”€โ”€ types # 'Client-side' types
โ””โ”€โ”€ store # Redux Store
Architecture
KakaoTalk_Photo_2022-07-11-20-35-48

๋ฑ…ํ‚ค์ฆˆ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ(dev)๊ณผ ์‹ค ์„œ๋น„์Šค ํ™˜๊ฒฝ(main)์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ™˜๊ฒฝ(branch)์€ Github-actions, Dock-compose ๊ธฐ๋ฐ˜ CI/CD ๋ฐ AWS EC2 ์ธ์Šคํ„ด์Šค ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๊ฐ€ ๊ตฌ์ถ•๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, push ๋ฐ ํƒœ๊น… ์ด๋ฒคํŠธ ๊ฐ์ง€๋ฅผ ํ†ตํ•ด Docker-compose๋กœ ์ด๋ฏธ์ง€ push๊ฐ€ trigger ๋ฉ๋‹ˆ๋‹ค. ์‹ค ์„œ๋น„์Šค ํ™˜๊ฒฝ์˜ ์ด๋ฏธ์ง€๋Š” Github์˜ Relase ๋ฒ„์ €๋‹์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.


4. ์ฃผ์š” ๊ธฐ๋Šฅ

03

04


4.1. ํšŒ์›๊ด€๋ฆฌ, ์˜จ๋ณด๋”ฉ (๊ณตํ†ต)

ํšŒ์›๊ด€๋ฆฌ (๊ณตํ†ต) ์˜จ๋ณด๋”ฉ (๊ณตํ†ต)
์• ํ”Œ ์†Œ์…œ ๋กœ๊ทธ์ธ โ†’ ๋กœ๊ทธ์•„์›ƒ โ†’ ์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ โ†’ ํšŒ์› ํƒˆํ‡ด ์ƒ๋…„์›”์ผ โ†’ ํ”„๋กœํ•„ โ†’ ํ‘ธ์‹œ์•Œ๋ฆผ ๋™์˜ โ†’ ํŠœํ† ๋ฆฌ์–ผ โ†’ ํ™ˆ
ํšŒ์›๊ด€๋ฆฌ ์˜จ๋ณด๋”ฉ ์ž๋…€
์ž์„ธํžˆ
  • ์นด์นด์˜ค, ์• ํ”Œ ์†Œ์…œ ๋กœ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ accessToken์€ memory (Redux Store)๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋ฉฐ, refreshToken์€ httpOnly & secure cookie๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜์–ด Client์—์„œ์˜ ์ง์ ‘ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๊ณ  ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณ ํ•ฉ๋‹ˆ๋‹ค. (ํ•ด๋‹น ์ฒด๊ณ„๋Š” ์›น๋ทฐ ์ด์‹ ๊ณผ์ •์—์„œ EXPO SDK ๊ด€๋ จ cookie ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ, token์ด localStorage๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)
https://velog.velcdn.com/images/24siefil/post/945daeaa-533b-4cde-95ef-a677dc4ea940/image.svg

4.2. ํ™ˆ ํƒญ (์ž๋…€)

ํ™ˆ ํƒญ (์ž๋…€) ํ™ˆ ํƒญ (์ž๋…€) ์•Œ๋ฆผ๋‚ด์—ญ (๊ณตํ†ต)
๊ฑท๊ณ ์žˆ๋Š” ๋ˆ๊ธธ โ†’ ๋ˆ๊ธธ ํฌ๊ธฐํ•˜๊ธฐ
โ†’ ์‹คํŒจํ•œ ๋ˆ๊ธธ ์‚ญ์ œ
๋Œ€๊ธฐ์ค‘์ธ ๋ˆ๊ธธ โ†’ ๊ฑฐ์ ˆ๋œ ๋ˆ๊ธธ ์‚ญ์ œ ๋ฌดํ•œ ์Šคํฌ๋กค
์ž๋…€ ํ™ˆ ๊ฑท๊ณ ์žˆ๋Š” ๋ˆ๊ธธ_compressed ์ž๋…€ ํ™ˆ ๋Œ€๊ธฐ์ค‘์ธ ๋ˆ๊ธธ ์•Œ๋ฆผ ๋‚ด์—ญ_compressed
์ž์„ธํžˆ
  • ํ™ˆ ํƒญ์—์„œ๋Š” ์„œ๋กœ๊ฐ„ ์ข…์†์„ฑ์„ ๊ฐ–๋Š” ๋„ค๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ˆ๊ธธ์— ๋Œ€ํ•œ CRUD๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ™ˆ ํƒญ์˜ ๋ฐ์ดํ„ฐ๋Š” React-Query ๊ธฐ๋ฐ˜์˜ interval refetching์„ ํ†ตํ•ด ์ตœ์‹ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์•Œ๋ฆผ๋‚ด์—ญ์€ ๋ฌดํ•œ์Šคํฌ๋กค ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์†์ ์œผ๋กœ fetch ํ•ฉ๋‹ˆ๋‹ค.

4.3. ๋ˆ๊ธธ ๊ณ„์•ฝํ•˜๊ธฐ, ๋ˆ๊ธธ ๊ฑท๊ธฐ ํƒญ (์ž๋…€)

๋ˆ๊ธธ ๊ณ„์•ฝํ•˜๊ธฐ (์ž๋…€) ๋ˆ๊ธธ ๊ฑท๊ธฐ ํƒญ (์ž๋…€)
๊ณ„์•ฝ ๋Œ€์ƒ โ†’ ๊ณ„์•ฝ ์ƒํ’ˆ โ†’ ์ด๋ฆ„, ๋ชฉํ‘œ๊ธˆ์•ก โ†’
์ด์ž์œจ, ๋งค์ฃผ ์ €๊ธˆ์•ก โ†’ ์„œ๋ช… โ†’ ๊ณ„์•ฝ์„œ ํ™•์ธ
-
๋ˆ๊ธธ ๊ณ„์•ฝํ•˜๊ธฐ ์ด์ž๋ถ€์Šคํ„ฐ ์„ค๋ช… ๋ชจ๋‹ฌ ํฌํ•จ_compressed ๋ˆ๊ธธ ๊ฑท๊ธฐ

4.4. ํ™ˆ ํƒญ, ์ด์ž ๋‚ด์—ญ ํƒญ (๋ถ€๋ชจ)

ํ™ˆ ํƒญ (๋ถ€๋ชจ) ํ™ˆ ํƒญ (๋ถ€๋ชจ) ์ด์ž ๋‚ด์—ญ ํƒญ (๋ถ€๋ชจ)
๊ฐ ์ž๋…€์˜ ์ œ์•ˆ๋ฐ›์€ ๋ˆ๊ธธ, ๊ธˆ์ฃผ์˜ ๋ˆ๊ธธ ์ œ์•ˆ๋ฐ›์€ ๋ˆ๊ธธ โ†’ ์ˆ˜๋ฝํ•˜๊ธฐ โ†’ ๊ฑฐ์ ˆํ•˜๊ธฐ ์ง€๊ธ‰์ด ํ•„์š”ํ•œ ์ด์ž โ†’ ์ž์„ธํžˆ ๋ณด๊ธฐ
โ†’ ์ง€๊ธ‰ ์™„๋ฃŒํ•˜๊ธฐ
์Šค์ผˆ๋ ˆํ†ค ํ™ˆ ์บ์‹ฑ ๋ถ€๋ชจ ํ™ˆ ์ œ์•ˆ๋ฐ›์€ ๋ˆ๊ธธ_compressed ์ด์ž๋‚ด์—ญ ์ด์ž์ง€๊ธ‰_compressed
์ž์„ธํžˆ
  • ์„ ํƒ๋œ ์ž๋…€์˜ ๋ฐ์ดํ„ฐ๋งŒ optimisticํ•˜๊ฒŒ fetch ํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • fetch๋œ ๋ฐ์ดํ„ฐ๋Š” cache ๋˜์–ด ์ถ”ํ›„ ๋กœ๋”ฉ์„ ์ตœ์ ํ™” ํ•ฉ๋‹ˆ๋‹ค.

4.5. ๊ฐ€์กฑ ์ดˆ๋Œ€, ๋งˆ์ดํŽ˜์ด์ง€ ํƒญ (๊ณตํ†ต)

๊ฐ€์กฑ ์ดˆ๋Œ€ (๊ณตํ†ต) ์„ค์ • (๊ณตํ†ต)
๋”ฅ๋งํฌ๋ฅผ ํ†ตํ•œ ๊ฐ€์กฑ ์ดˆ๋Œ€ โ†’ ๊ฐ€์กฑ๊ทธ๋ฃน ์ฐธ์—ฌ
โ†’ ๊ฐ€์กฑ๊ทธ๋ฃน ๋‚˜๊ฐ€๊ธฐ โ†’ ๊ฐ€์กฑ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ
-
๊ฐ€์กฑ ์ดˆ๋Œ€ ์„ค์ • ์ž๋…€_compressed

5. ๊ตฌํ˜„ ๋ถ„๋‹ด

์‹ ์„ฑ์šฐ

ํ•œ๊ทœ์ง„


6. ์„œ๋น„์Šค ๊ฐœ๋ฐœ๊ธฐ


7. ์ˆ˜์ƒ ์‹ค์ 

์ˆ˜์ƒ ์ผ์ž ๋Œ€ํšŒ๋ช… ์ตœ์ข… ์‹ค์  ์ƒ๊ธˆ/์ง€์›๊ธˆ (๋งŒ์›)
22.07.14 SC์ œ์ผ์€ํ–‰ โ€˜Women in Fintechโ€™ ์ตœ์ข…์„ ์ •, Creator์ƒ ์ˆ˜์ƒ (2์œ„) 500
22.08.05 ์‹ ์ดŒ ์—ฐํ•ฉ IT ์ฐฝ์—… ํ•™ํšŒ CEOS ๋ฐ๋ชจ๋ฐ์ด ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ 10
22.08.16 ์‹ ํ•œ์€ํ–‰ โ€˜ํ“จ์ณ์Šค๋žฉ 8๊ธฐ ๋ฑ…ํฌํ”Œ๋Ÿฌ์Šคโ€™ 1์ฐจ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ, 2์ฐจ ๋ฉด์ ‘ ํƒˆ๋ฝ -
22.08.19 ์˜ค๋ Œ์ง€ ํ”Œ๋ž˜๋‹› โ€˜์˜ค๋ Œ์ง€ ๊ฐ€๋“ โ€™ 6๊ธฐ 1์ฐจ ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ, 2์ฐจ ์ธํ„ฐ๋ทฐ ํ•ฉ๊ฒฉ, 3์ฐจ PT ํƒˆ๋ฝ -
22.08.28 ์ „๊ตญ ๋Œ€ํ•™์ƒ ์ฐฝ์—…์ปจํผ๋Ÿฐ์Šค โ€˜์‹œ๋„โ€™ ๊ฒฐ์Šน์ง„์ถœ -
22.08.31 ์˜ˆ๋น„์ฐฝ์—…ํŒจํ‚ค์ง€ ํ”„๋ฆฌ์Šค์ฟจ ์ตœ์ข…์„ ์ • 460
22.10.10 ์„œ๊ฐ•๋Œ€ํ•™๊ต ์ฐฝ์—…๋™์•„๋ฆฌ ์ตœ์ข…์„ ์ • 300
22.10.15 dยทcamp 'DยทDay x ์บ ํผ์Šค๋ฆฌ๊ทธ' ๊ฒฐ์Šน์ง„์ถœ 100

Copyright โ“’ All rights reserved by ์‹ ์„ฑ์šฐ, ํ•œ๊ทœ์ง„