Git Product home page Git Product logo

prgrms-web-devcourse / team_ahpuh_surf_be Goto Github PK

View Code? Open in Web Editor NEW
31.0 0.0 0.0 810 KB

๐Ÿ„๐Ÿปโ€โ™‚๏ธ ๋‚ด ์ธ์ƒ ์„ฑ์žฅ๊ณก์„  ์„œ๋น„์Šค ๐ŸŒŠ ๊ธฐ๋กํ•˜๊ณ  ๊ณต์œ ํ•˜์ž! Surf ๋ฅผ ํ†ตํ•ด ๐ŸŒŠ๐Ÿ„โ€โ™€๏ธ

Home Page: https://surf-livid.vercel.app/

Java 100.00%
spring-data-jpa springboot aws mysql querydsl

team_ahpuh_surf_be's Introduction

๋‚ด ์ธ์ƒ ์„ฑ์žฅ๊ณก์„  ์‚ฌ์ดํŠธ - Surf. ๐Ÿ„๐Ÿปโ€โ™‚๏ธ

์ธ์ƒ์€ surfing ์„ ํƒ€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ฆ๊ฒ์ง€๋งŒ, suffering ๋˜ํ•œ ํ”ผํ•  ์ˆ˜ ์—†๋‹ค.

ํ”ผํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ธฐ๋กํ•˜๊ณ  ๊ณต์œ ํ•˜์ž! Surf ๋ฅผ ํ†ตํ•ด ๐ŸŒŠ๐Ÿ„โ€โ™€๏ธ๐Ÿ„๐Ÿ„๐Ÿปโ€โ™‚๏ธ

Surf์˜ ๋ฐฑ์—”๋“œ ๋ ˆํฌ์ž…๋‹ˆ๋‹ค ๐Ÿ˜Š


๐Ÿ‘จโ€๐Ÿ’ปํŒ€์› ์†Œ๊ฐœ

์ตœ์Šน์€ ๋ฐ•์ˆ˜๋นˆ ๋ฐ•์ •๋ฏธ ์ „ํšจํฌ
ํŒ€์žฅ, ๊ฐœ๋ฐœ์ž ์Šคํฌ๋Ÿผ ๋งˆ์Šคํ„ฐ, ๊ฐœ๋ฐœ์ž ๊ฐœ๋ฐœ์ž ๊ฐœ๋ฐœ์ž

๐Ÿ“ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ ๋ฐ ์ƒ์„ธ ์„ค๋ช…

์—ด์‹ฌํžˆ ๋‹ฌ๋ ค์˜จ ๋‚˜ ์ž์‹ ! ์—ด์‹ฌํžˆ๋Š” ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฐœ์ „ํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•˜๋Š” ๊ณต๊ฐ„์€ ์—†์„๊นŒ? ๊ทธ๋ƒฅ ์ผ๊ธฐ๋Š” ๋ฉ”๋ชจ์žฅ์—๋ผ๋„ ์ ์„ ์ˆ˜ ์žˆ๊ณ , ๋ธ”๋กœ๊ทธ๋Š” ์ด๋ฏธ ๋ฌด์ˆ˜ํžˆ ์กด์žฌํ•˜๊ณ , ์ƒ‰๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋™๊ธฐ๋ถ€์—ฌ ๋ฐ›๊ณ  ๊ธฐ๋กํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ทธ๋Ÿฐ ๊ณต๊ฐ„์ด ํ•„์š”ํ•ด! ๐Ÿ™†โ€โ™€๏ธ

  • ์„ฑ์žฅ๊ณก์„ ์œผ๋กœ ํ•œ๋ˆˆ์— ๋‚ด ์ธ์ƒ์„ ๋Œ์•„๋ณด๊ธฐ
  • ๋‚จ๋“ค์˜ ์„ฑ์žฅ๊ณก์„ ์„ ๋ณด๋ฉฐ ๋™๊ธฐ๋ถ€์—ฌ๋„ ๋ฐ›๊ธฐ
  • ๊ณก์„ ์˜ ํŠน์ • ๊ตฌ๊ฐ„๋งˆ๋‹ค ๊ธฐ๋ก๋„ ๋‚จ๊ธฐ๊ธฐ
  • ๊ณก์„ ์ด ์•„๋‹Œ ๊ธฐ๋ก๋“ค๋งŒ ๋ชจ์•„์„œ ๋ณด๊ธฐ
  • ํ•„์š”ํ•˜๋‹ค๋ฉด ํฌํŠธํด๋ฆฌ์˜ค๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ

๐Ÿ› ๏ธ๊ฐœ๋ฐœ ์–ธ์–ด ๋ฐ ํ™œ์šฉ ๊ธฐ์ˆ 

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • Springboot ๋กœ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ–ˆ์–ด์š”.
  • ๋นŒ๋“œ๋„๊ตฌ๋Š” Gradle์„ ์‚ฌ์šฉํ–ˆ์–ด์š”.
  • ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด LTS ๋ฒ„์ „์ธ Java 17 ๋ฒ„์ „์„ ์‚ฌ์šฉํ–ˆ์–ด์š”.
  • Spring Data JPA(Hibernate) ๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ๋กœ์ง์„ ์ž‘์„ฑํ–ˆ์–ด์š”.
  • QueryDSL ๋กœ ์ปดํŒŒ์ผ ์‹œ์ ์— SQL ์˜ค๋ฅ˜๋ฅผ ๊ฐ์ง€ํ•ด์š”. JPA ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ํž˜๋“  ๋™์ ์ด๊ณ  ๋ณต์žกํ•œ query๋ฅผ ๋ณด์™„ํ•˜๊ณ  ๋” ๊ฐ€๋…์„ฑ ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MySQL์„ ์‚ฌ์šฉํ–ˆ์–ด์š”.

Infrastructure

  • AWS EC2๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ–ˆ์–ด์š”.
  • S3 ๋กœ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ๋ณด๊ด€ํ•ด์š”.

ํ˜‘์—… ๊ด€๋ฆฌ

  • Github Issue ์œผ๋กœ ์ด์Šˆ๋ฅผ ๊ด€๋ฆฌํ•ด์š”.
  • Git-flow ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•ด์š”.
  • Slack / Gather / Notion ์œผ๋กœ ์†Œํ†ตํ•ด์š”.
  • Postman ์œผ๋กœ ์ž‘์„ฑํ•œ API ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์†Œํ†ตํ•ด์š”.

CI/CD

  • Github Actions ๋กœ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฒ€์‚ฌํ•ด์š”.
  • Jenkins ๋กœ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ์˜ ์ง€์†์ ์ธ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•ด์š”.
  • Codacy ๋กœ ์ง€์†์ ์ธ ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ ๊ฐœ์„ ์„ ์ง„ํ–‰ํ•ด์š”.
  • JACOCO ๋กœ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๊ฒ€์‚ฌํ•ด์š”.
  • Flyway ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ด์š”.

Security

  • Spring Security ๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์š”.
  • ๋กœ๊ทธ์ธ ์‹œ์—๋Š” JWT ํ† ํฐ์„ ๋ฐœํ–‰ํ•˜์—ฌ ์„œ๋ฒ„์˜ ๋ณ„๋„ ์ €์žฅ์†Œ ์—†์ด ๋กœ๊ทธ์ธ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • CertBot ์œผ๋กœ Letโ€™s Encrypt SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•˜์–ด์š”.
  • Nginx ๊ฐ€ ํ”„๋ก์‹œ๋กœ 8080 ํฌํŠธ๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ์„ค์ •ํ–ˆ์–ด์š”.

โš™์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

์•„ํ‚คํ…์ณ


๐Ÿ—๏ธ์„ค๊ณ„

ERD ์„ค๊ณ„

ERD

์„ค๊ณ„ ๋ฌธ์„œ

๐Ÿ„MoSCoW ๊ตฌ๊ฒฝ๊ฐ€๊ธฐ
๐Ÿ”SURF API ์„ค๊ณ„ ๊ตฌ๊ฒฝ๊ฐ€๊ธฐ
๐Ÿ“‘Postman API ๋ช…์„ธ์„œ


๐Ÿคณ๋ฐ๋ชจ ํ™”๋ฉด

๋กœ๊ทธ์ธ ๋ฉ”์ธ ํ™”๋ฉด - Surf ์ฒซ ํŽ˜์ด์ง€ ๋ฉ”์ธ ํ™”๋ฉด
- ํŠน์ • category ์„ ํƒ
๋กœ๊ทธ์ธ ๋ฉ”์ธ ํŽ˜์ด์ง€ - ์ฒซ ํ™”๋ฉด ๋ฉ”์ธ ํŽ˜์ด์ง€ - ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ
๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๋ฌดํ•œ ์Šคํฌ๋กค ๋งˆ์ด ํŽ˜์ด์ง€
- ๋‚ด ์ •๋ณด ์ˆ˜์ •
ํฌ์ŠคํŠธ ์ƒ์„ฑ ๋ฌดํ•œ ์Šคํฌ๋กค ๋งˆ์ด ํŽ˜์ด์ง€ - ์ •๋ณด ์ˆ˜์ •
๋Œ€์‹œ๋ณด๋“œ ์นด๋“œ ํŽ˜์ด์ง€ ์นด๋“œ ํŽ˜์ด์ง€
- ํ•ด๋‹น ์›”๋ณ„ ๊ธฐ๋ก ๋ฆฌ์ŠคํŠธ
๋Œ€์‹œ๋ณด๋“œ
๋งˆ์ด ํŽ˜์ด์ง€์—์„œ ์ด๋™
์นด๋“œ ํŽ˜์ด์ง€
์—ฐ๋„๋ณ„ ํ•„ํ„ฐ๋ง,
ํ•ด๋‹น ๋‹ฌ์˜ ์ž‘์„ฑ ์ผ์ˆ˜ ํ™•์ธ ๊ฐ€๋Šฅ
์นด๋“œ ํŽ˜์ด์ง€ - ์›”๋ณ„ ๋ฆฌ์ŠคํŠธ
์นด๋“œ ์„ ํƒ์‹œ

๐ŸŒปํ”„๋ก ํŠธ ๊นƒ ๋ ˆํฌ

๐Ÿ‘จโ€๐Ÿ’ปSURF Front Git Repository

๐ŸํŒ€ ๋…ธ์…˜

๐Ÿ”SURF ํŒ€ ๋…ธ์…˜ ๊ตฌ๊ฒฝ๊ฐ€๊ธฐ

team_ahpuh_surf_be's People

Contributors

cse0518 avatar jummi10 avatar kwhyo avatar suebeen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

team_ahpuh_surf_be's Issues

์ข‹์•„์š” ๋„๋ฉ”์ธ ์ˆ˜์ •, dto์— ์ข‹์•„์š” ์—ฌ๋ถ€ ํ•„๋“œ ์ถ”๊ฐ€

โœจ Description

Post์™€ Like๋ฅผ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘์œผ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
PostDto, PostResponseDto์— likeId, isLiked(์ข‹์•„์š” ์—ฌ๋ถ€) ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Post์™€ Like๋ฅผ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘์œผ๋กœ ์ˆ˜์ •
  • PostDto, PostResponseDto์— likeId, isLiked(์ข‹์•„์š” ์—ฌ๋ถ€) ํ•„๋“œ ์ถ”๊ฐ€
  • Controller URI ์ˆ˜์ •
  • ํ…Œ์ŠคํŠธ

๋‘˜๋Ÿฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ ์ปค์„œ ํŽ˜์ด์ง• ์ ์šฉ

โœจ Description

ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด์กฐํšŒ (๋‘˜๋Ÿฌ๋ณด๊ธฐ ์ƒˆ๊ธ€ํ”ผ๋“œ ๊ธฐ๋Šฅ) ์ปค์„œ ํŽ˜์ด์ง• ์ ์šฉ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๋‘˜๋Ÿฌ๋ณด๊ธฐ ๊ธฐ๋Šฅ ์ปค์„œ ํŽ˜์ด์ง• ์ ์šฉ
  • ํ…Œ์ŠคํŠธ

ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด์กฐํšŒ (๋‘˜๋Ÿฌ๋ณด๊ธฐ ์ƒˆ๊ธ€ํ”ผ๋“œ ๊ธฐ๋Šฅ), ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์—ฌ๋ถ€ ํ™•์ธ

โœจ Description

ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด์กฐํšŒ (๋‘˜๋Ÿฌ๋ณด๊ธฐ ์ƒˆ๊ธ€ํ”ผ๋“œ ๊ธฐ๋Šฅ),
๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์—ฌ๋ถ€ ํ™•์ธ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด์กฐํšŒ
  • ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์—ฌ๋ถ€ ํ™•์ธ
  • ํ…Œ์ŠคํŠธ
  • #38

USER API ์ถ”๊ฐ€ ๊ตฌํ˜„

โœจ Description

  • ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜
  • USER ๋„๋ฉ”์ธ API ์ถ”๊ฐ€ ๊ตฌํ˜„
  • ํ…Œ์ŠคํŠธ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜
  • ๊ฐœ์ธ ์ •๋ณด ์ˆ˜์ •
  • ํšŒ์› ์ •๋ณด ์กฐํšŒ
  • ํšŒ์› ํƒˆํ‡ด
  • ํ…Œ์ŠคํŠธ

Category ๋„๋ฉ”์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

โœจ Description

Category ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Entity Unit Test
  • Repository Layer Unit Test
  • Service Layer Unit Test
  • Controller Layer Unit Test

CATEGORY ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„

โœจ Description

์นดํ…Œ๊ณ ๋ฆฌ์˜ ์กฐํšŒ ๊ธฐ๋Šฅ๋“ค ๊ตฌํ˜„
์นดํ…Œ๊ณ ๋ฆฌ ์ „์ฒด ์กฐํšŒ : ๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ด (์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ ํŽ˜์ด์ง€)
ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด : ๋Œ€์‹œ๋ณด๋“œ
์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด ์กฐํšŒ : ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ (10๊ฐœ์”ฉ pageable)

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜
  • ์นดํ…Œ๊ณ ๋ฆฌ ์ „์ฒด ์กฐํšŒ
  • ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ •๋ณด
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด ์กฐํšŒ
  • ํ…Œ์ŠคํŠธ

User ๋„๋ฉ”์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

โœจ Description

User ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • User ๋„๋ฉ”์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

soft delete์— @SQLDelete ๋ฅผ ์ ์šฉํ•œ๋‹ค.

โœจ Description

soft delete์— @SQLDelete ๋ฅผ ์ ์šฉํ•œ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • User Entity์— @SQLDelete ์ ์šฉ
  • Category Entity์— @SQLDelete ์ ์šฉ
  • Post Entity์— @SQLDelete ์ ์šฉ
  • User delete ๋กœ์ง ์ˆ˜์ •
  • Category delete ๋กœ์ง ์ˆ˜์ •
  • Post delete ๋กœ์ง ์ˆ˜์ •

dto ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์— request, response ํŒจํ‚ค์ง€๋กœ ๊ตฌ๋ถ„

โœจ Description

dto๋ฅผ ๊ฐ๊ฐ์˜ ๋„๋ฉ”์ธ dto ํŒจํ‚ค์ง€์— request, response ํŒจํ‚ค์ง€๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • User ๋„๋ฉ”์ธ dto ํŒจํ‚ค์ง€ ๊ตฌ๋ถ„
  • Category ๋„๋ฉ”์ธ dto ํŒจํ‚ค์ง€ ๊ตฌ๋ถ„
  • Post ๋„๋ฉ”์ธ dto ํŒจํ‚ค์ง€ ๊ตฌ๋ถ„

Github actions bug fix

โœจ Description

h2 ๋นŒ๋“œ ํ™˜๊ฒฝ ์ˆ˜์ •

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ธ๋ฉ”๋ชจ๋ฆฌ h2๋ฅผ ์ด์šฉํ•˜๊ฒŒ ์ˆ˜์ •

Hot Feat - ๋ชจ๋“  ํฌ์ŠคํŠธ ์ค‘ ์ตœ์‹  100๊ฐœ ์กฐํšŒ

โœจ Description

๋ชจ๋“  ํฌ์ŠคํŠธ ์ค‘ ์ตœ์‹  100๊ฐœ ์กฐํšŒ ๊ธ‰ํ•˜๊ฒŒ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๋ชจ๋“  ํฌ์ŠคํŠธ ์ค‘ ์ตœ์‹  100๊ฐœ ์กฐํšŒ
    hotfix๋Š” ํ•ด๋ดค๋Š”๋ฐ hotfeat๋Š” ์ฒ˜์Œ

๊ธฐ์กด ํ…Œ์ŠคํŠธ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง

โœจ Description

๊ธฐ์กด ํ…Œ์ŠคํŠธ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง ๋ฐ package ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Unit Test, Integration Test package ๊ตฌ๋ถ„
  • ๊ธฐ์กด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง

Post ๋ฉ”์ธํŽ˜์ด์ง€ ์ผ๋…„์น˜ ๊ฒŒ์‹œ๊ธ€ ์ ์ˆ˜ ์กฐํšŒ

โœจ Description

https://www.notion.so/backend-devcourse/8c5d208ca72a49a99286712182b5202a

  • post ๊ฐœ์ˆ˜๋งŒํผ list ๋ง๊ณ  ํ•„์š”ํ•œ ํ•„๋“œ๋“ค(CategoryId, name, colorCode, selectDate, score)์„ ํ•œ ๋ฒˆ์— ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
  • ๊ทธ ๋‹ค์Œ์— category๋ฅผ ๋กœ์ง์œผ๋กœ ๋ฌถ์–ด์ฃผ๊ธฐ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ์ผ๋…„์น˜ ๊ฒŒ์‹œ๊ธ€ ์ ์ˆ˜ ์กฐํšŒ

User ๋„๋ฉ”์ธ Dto @Valid ์˜ˆ์™ธ ํ…Œ์ŠคํŠธ

โœจ Description

User ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” Dto๋“ค์˜ @Valid ์˜ˆ์™ธ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • UserJoinRequestDto Validation
  • UserLoginRequestDto Validation
  • UserUpdateRequestDto Validation

POST ์กฐํšŒ - ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„

โœจ Description

  • ๋ฆฌ๋ทฐ ๋ฐ˜์˜
  • controller ํ…Œ์ŠคํŠธ ์ˆ˜์ • ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
  • post domain ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํ•ด๋‹น๋…„๋„ ๊ฒŒ์‹œ๊ธ€ ๊ฐœ์ˆ˜ ์ •๋ณด ์กฐํšŒ
  • ํ•œ๋‹ฌ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์ผ๋…„์น˜ ๊ฒŒ์‹œ๊ธ€ ์ ์ˆ˜ ์กฐํšŒ
  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

User ์ˆ˜์ •, ์‚ญ์ œ API ์ˆ˜์ •

โœจ Description

User ์ˆ˜์ •, ์‚ญ์ œ ์‹œ token์—์„œ userId๋ฅผ ๋ฐ›์•„์˜ค๊ฒŒ ์ˆ˜์ •

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • updateUser API fix
  • deleteUser API fix

S3 ํŒŒ์ผ ์—…๋กœ๋“œ

โœจ Description

S3์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํŒŒ์ผ ์—…๋กœ๋“œ
  • ํ…Œ์ŠคํŠธ

request์™€ response๋ฅผ ์ „๋ถ€ ๊ฐ์ฒด๋กœ ์ˆ˜์ •

โœจ Description

request์™€ response๋ฅผ ์ „๋ถ€ ๊ฐ์ฒด๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

  • dto๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ.
  • restdocs ๋ฌธ์„œํ™” ์ง„ํ–‰์‹œ responseFields ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ ๋ฌธ์„œํ™” ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ ์ง๋ฉด.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • User ๋„๋ฉ”์ธ request, response ์ˆ˜์ •
  • Category ๋„๋ฉ”์ธ request, response ์ˆ˜์ •
  • Post ๋„๋ฉ”์ธ request, response ์ˆ˜์ •
  • Follow ๋„๋ฉ”์ธ request, response ์ˆ˜์ •
  • Like ๋„๋ฉ”์ธ request, response ์ˆ˜์ •

Category ๋„๋ฉ”์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

โœจ Description

Category ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Category ๋„๋ฉ”์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

์ข‹์•„์š” ๋„๋ฉ”์ธ API ๊ตฌํ˜„

โœจ Description

์ข‹์•„์š” ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ API๋“ค์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š”
  • ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์ทจ์†Œ
  • ํ…Œ์ŠคํŠธ

S3 ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฆฌํŒฉํ† ๋ง

โœจ Description

S3 ํŒŒ์ผ ์—…๋กœ๋“œ ๋กœ์ง์„ ๋ฆฌํŒฉํ† ๋งํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • S3 ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ (common/s3 -> s3)
  • S3Service ์‚ฌ์šฉ ๋กœ์ง์„ Controller Layer์—์„œ Service Layer๋กœ ๋ณ€๊ฒฝ
  • S3Service ๋กœ์ง ๋ฆฌํŒฉํ† ๋ง
  • IOException ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
  • FileStatus๋ฅผ inner ํด๋ž˜์Šค์—์„œ ์ผ๋ฐ˜ ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝ
  • FileStatus๋ฅผ record ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ

API ํ…Œ์ŠคํŠธ ๋ฐ ์ˆ˜์ •

โœจ Description

APIํ…Œ์ŠคํŠธ ์ค‘ post์ถ”๊ฐ€์‹œ ์นดํ…Œ๊ณ ๋ฆฌ์— ํ•ด๋‹น๋ถ€๋ถ„์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ์ด์Šˆ ๋ฐœ๊ฒฌ
refactoring

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Cursor Paging API param ์ˆ˜์ •
  • recentScore ์ปฌ๋Ÿผ ๋Œ€์‹  ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ตœ๊ทผ ์ ์ˆ˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” API์ถ”๊ฐ€
  • averageScore ์ปฌ๋Ÿผ ๋Œ€์‹  CategoryService์•ˆ์— ํ‰๊ท ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋กœ์ง ์ถ”๊ฐ€
  • postCount sql๋ฌธ์— ์กฐ๊ฑด๋ฌธ ์ถ”๊ฐ€
  • post-category ์–‘๋ฐฉํ–ฅ ๋ฌธ์ œ ํ•ด๊ฒฐ

FOLLOW ๋„๋ฉ”์ธ API ๊ตฌํ˜„

โœจ Description

FOLLOW ๋„๋ฉ”์ธ API๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Follow
  • UnFollow
  • ํŠน์ • User๋ฅผ ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ๋žŒ๋“ค์˜ ๋ชฉ๋ก ์ „์ฒด ์กฐํšŒ
  • ํŠน์ • User๊ฐ€ ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ๋žŒ๋“ค์˜ ๋ชฉ๋ก ์ „์ฒด ์กฐํšŒ

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

โœจ Description

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ์ผ๋…„์น˜ ๊ฒŒ์‹œ๊ธ€ ์ ์ˆ˜ ์กฐํšŒ
  • ํ•œ๋‹ฌ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ์ปค์„œ ํŽ˜์ด์ง•์œผ๋กœ ์ •๋ ฌ๋˜์–ด ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ํ™•์ธ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ์ปค์„œํŽ˜์ด์ง•์œผ๋กœ ์ •๋ ฌ๋˜์–ด ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ํ™•์ธ
  • ํŒ”๋กœ์šฐ ํ•œ ์‚ฌ์šฉ์ž ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด ์กฐํšŒ
  • ๊ฒŒ์‹œ๊ธ€ ์ข‹์•„์š” ์ทจ์†Œ /posts/{postId}/unlike/{likeId} postId์— ๋Œ€ํ•œ validation์ถ”๊ฐ€

์ˆ˜์ •๋ณด์™„

โœจ Description

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ๋ณด์™„
S3Service ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฆฌํŒฉํ† ๋ง ๋ฐ MockAwsS3Service ์„ค์ •ํŒŒ์ผ ์ƒ์„ฑ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๋ฏธ์•ฝํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ๋ณด์™„
  • S3Service ๋ฆฌํŒฉํ† ๋ง ๋ฐ MockAwsS3Service ์„ค์ •ํŒŒ์ผ ์ƒ์„ฑ
  • Follow count ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€
  • user, category ์—”ํ‹ฐํ‹ฐ ์‚ญ์ œ ์‹œ ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ soft delete

Post CRUD ๊ตฌํ˜„

โœจ Description

Post ๋„๋ฉ”์ธ์˜ CRUD ๊ตฌํ˜„

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Post ๋“ฑ๋ก
  • Post ์ˆ˜์ •
  • Post ์‚ญ์ œ
  • Post ๋‹จ๊ฑด ์กฐํšŒ

๊ธฐํƒ€ ์ˆ˜์ •

โœจ Description

hasNext ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹ ์ˆ˜์ •
followingPostDto ์ˆ˜์ •

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • followingPostDto ์ˆ˜์ •
  • hasNext ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹ ์ˆ˜์ •

Flyway ๋„์ž…

โœจ Description

DB ํ˜•์ƒ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Flyway๋ฅผ ๋„์ž…ํ•œ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • flyway ์„ค์ •
  • Version 1 ์ƒ์„ฑ

build ํŒŒ์ผ ๋ฐ ๋ฌธ์„œ ์ˆ˜์ •

โœจ Description

build.gradle ํŒŒ์ผ ๋ฐ ๋ฌธ์„œ ๋“ฑ์„ ์ˆ˜์ • ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • build.gradle ๋ณด์™„
  • gitignore ์ˆ˜์ •
  • ๋ถˆํ•„์š”ํ•œ ์ฃผ์„ ์‚ญ์ œ

์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฆฌํŒฉํ† ๋ง

โœจ Description

์˜ˆ์™ธ ์ฒ˜๋ฆฌ์— ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • GlobalExceptionHandler๋กœ ๊ด€๋ฆฌ
  • ApplicationException ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด CheckedException ๊ด€๋ฆฌ
  • ExceptionType๋“ค์„ Enum์œผ๋กœ ๊ด€๋ฆฌ

issue ๋ฐ PR template ์„ค์ •

๐Ÿ’ก Description

issue ๋ฐ PR template๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽ‰ Progress

  • issue template ์ถ”๊ฐ€
  • PR template ์ถ”๊ฐ€

USER ๋„๋ฉ”์ธ ๊ตฌํ˜„

โœจ Description

USER ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๋กœ๊ทธ์ธ
  • ํšŒ์›๊ฐ€์ž…
  • ํšŒ์›์ •๋ณด ์กฐํšŒ
  • ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ •
  • ํšŒ์› ํƒˆํ‡ด
  • #12

User ๋„๋ฉ”์ธ ๋‹จ์œ„ํ…Œ์ŠคํŠธ

โœจ Description

User ๋„๋ฉ”์ธ์— ํ•ด๋‹นํ•˜๋Š” ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Entity ๋‹จ์œ„ํ…Œ์ŠคํŠธ
  • Repository Layer ๋‹จ์œ„ํ…Œ์ŠคํŠธ
  • Service Layer ๋‹จ์œ„ํ…Œ์ŠคํŠธ
  • Controller Layer ๋‹จ์œ„ํ…Œ์ŠคํŠธ

๋ฌดํ•œ ์Šคํฌ๋กค ์กฐํšŒ ๊ตฌํ˜„

โœจ Description

์ปค์„œ ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง• ๊ตฌํ˜„
ํ† ํฐ์„ ์ด์šฉํ•ด์„œ userId ๋ฐ›์•„์˜ค๋„๋ก ์ˆ˜์ •
ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ํ† ํฐ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •
  • ํ•œ๋‹ฌ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ์ „์ฒด ์กฐํšŒ
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

์ „์ฒด์ ์ธ package ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ

โœจ Description

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ์€ entity, converter, dto, repository, service, controller ์ด๊ณ ,
์ˆ˜์ •ํ•  ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ์€ domain, dto, service, controller ์ด๋‹ค.

entity, converter, repository๋ฅผ ํ•˜๋‚˜์˜ domain ๋””๋ ‰ํ† ๋ฆฌ๋กœ ํ•ฉ์นœ๋‹ค.

๋˜ํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ Follow ๋„๋ฉ”์ธ์„ user/domain ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋ฐฐ์น˜ํ•˜๊ณ ,
Like ๋„๋ฉ”์ธ์„ post/domain ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋ฐฐ์น˜์‹œํ‚จ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ์ „์ฒด ํŒจํ‚ค์ง€ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ(domain, dto, service, controller)
  • Follow ๋„๋ฉ”์ธ์„ User ๋„๋ฉ”์ธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋ฐฐ์น˜
  • Like ๋„๋ฉ”์ธ์„ Post ๋„๋ฉ”์ธ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋ฐฐ์น˜

yml, Logback ์„ค์ • ๊ฐœ์„ 

โœจ Description

YAML ๋ฐ Logback ์„ค์ •์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • Logback Extension ์ ์šฉ
  • profile์— ๋งž๊ฒŒ yml ์„ค์ • ๊ตฌ๋ถ„

Category CRUD ๊ตฌํ˜„

โœจ Description

์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ฆฌ ํŽ˜์ด์ง€

  1. + ๋ฒ„ํŠผ : ์นดํ…Œ๊ณ ๋ฆฌ ๋“ฑ๋ก
  2. edit ๋ฒ„ํŠผ : ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜์ •, ์ƒ‰์ƒ์€ ์ˆ˜์ • ๋ถˆ๊ฐ€ (์ถ”ํ›„)
  3. remove ๋ฒ„ํŠผ : ์นดํ…Œ๊ณ ๋ฆฌ ์‚ญ์ œ

์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์ตœ๋Œ€ 5๊ฐœ
์ด๋ฆ„, ์ด๋ชจ์ง€, ์ƒ‰์ƒ(๋žœ๋ค), ๊ณต๊ฐœ ์—ฌ๋ถ€(default=public)

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ์นดํ…Œ๊ณ ๋ฆฌ ๋“ฑ๋ก
  • ์นดํ…Œ๊ณ ๋ฆฌ ์ˆ˜์ •
  • ์นดํ…Œ๊ณ ๋ฆฌ ์‚ญ์ œ

๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก, ์ˆ˜์ • ์‹œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก S3 ์—ฐ๋™

โœจ Description

๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก, ์ˆ˜์ • ์‹œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก S3 ์—ฐ๋™

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก, ์ˆ˜์ • S3 ์—ฐ๋™
  • ํ™•์žฅ์ž ๊ตฌ๋ถ„ ์ €์žฅ
  • ํ…Œ์ŠคํŠธ

JWT ๋กœ๊ทธ์ธ ๊ตฌํ˜„

โœจ Description

JWT ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

  • JWT ํ† ํฐ ๊ตฌํ˜„
  • ๋กœ๊ทธ์ธ ๊ตฌํ˜„

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.