Skip to content

Meetfolio-Project-CodeZ-Team/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“‘ Kobert, GPT AI๋ฅผ ํ†ตํ•œ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํ”ผ๋“œ๋ฐฑ : ๊ฒฝํ—˜ ๋ถ„์„ ๋ฐ ๊ณต์œ  ์„œ๋น„์Šค

image

WEB URL : http://www.meetfolio.kro.kr:60005/

์ž‘์„ฑ์ž : ๊น€ํ˜„๊ฒธ, ์ตœ๋ฏผ๊ทœ


โœ๏ธํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

image

์„œ๋น„์Šค ๊ธฐํš ์ด์œ 

๊ธฐ์กด ์ฑ„์šฉ ์›น ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” AI ์ž๊ธฐ์†Œ๊ฐœ์„œ ์„œ๋น„์Šค๋Š” ๊ฐ„๋‹จํ•œ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ปจํ…์ธ ๊ฐ€ ๋ถ€์กฑํ•˜๊ณ , ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ๋ฐฉํ–ฅ์„ฑ์„ ์žก์•„์ฃผ์ง€ ์•Š๋Š” ์•„์‰ฌ์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ธฐ์กด ๋Œ€ํ•™์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค์—์„œ๋Š” ๊ณต๋ชจ์ „, ์Šคํ„ฐ๋””, ๋Œ€์™ธํ™œ๋™ ๋“ฑ ํŒ€์›์„ ๊ตฌํ•˜๋Š” ๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์—†์–ด ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๊ฐ™์€์ง€, ์–ด๋–ค ๊ฒฝํ—˜์„ ํ–ˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์›Œ ๋‚˜์—๊ฒŒ ๋งž๋Š” ํŒ€์›์„ ๋ชจ์ง‘ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค์˜ ์ฐจ๋ณ„์ 

์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Meetfolio ์„œ๋น„์Šค๋Š” 2๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ๊ธฐํšํ•˜์—ฌ ๋ฌธ์ œ์ ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  1. ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ ๊ฐœ์ธ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒฝํ—˜์นด๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ฒด๊ณ„์ ์œผ๋กœ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ ๋ฐฉํ–ฅ์„ฑ์„ ์žก์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๊ณ , KoBERT, GPT AI ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์ž๊ธฐ์†Œ๊ฐœ์„œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ง€์›ํ•œ ์ง๋ฌด์™€ ์–ผ๋งˆ๋‚˜ ์—ฐ๊ด€์„ฑ ์žˆ๋Š”์ง€ ์ง๋ฌด ์—ญ๋Ÿ‰์„ ๋ถ„์„ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  2. ๋‘ ๋ฒˆ์งธ ๊ธฐ๋Šฅ์€ ๊ฐ€์ฒœ๋Œ€ํ•™๊ต ํ•™์šฐ๋“ค ๊ฐ„์˜ ์ทจ์—… ์ •๋ณด ๋ฐ ๊ฒฝํ—˜์„ ๊ต๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ˜•์„ฑํ•˜์—ฌ, ์ทจ์—… ์ •๋ณด ์ˆ˜์ง‘๊ณผ ๊ทธ๋ฃน์› ๋ชจ์ง‘์˜ ์–ด๋ ค์›€์„ ํ•ด์†Œํ•˜๋ ค๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋“ค์ด ์ž‘์„ฑํ•œ ๊ฒฝํ—˜์นด๋“œ์™€ ๊ณต๊ฐœ๋œ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ, ๋น„์Šทํ•œ ์ง„๋กœ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ธ์ง€, ํฌํŠธํด๋ฆฌ์˜ค ์ค€๋น„๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ’ปํŒ€์› ๊ตฌ์„ฑ

Backend / AI Backend / AI Frontend Frontend
์„œ์ฃผ์› ๊น€ํ˜„๊ฒธ ์ตœ๋ฏผ๊ทœ ๊น€๋‚™๋„
@joowojr @kylo-dev @Minkyu0424 @NAKDO
[ํŒ€์žฅ] ์„œ์ฃผ์› ๊น€ํ˜„๊ฒธ ์ตœ๋ฏผ๊ทœ ๊น€๋‚™๋„

๐Ÿค์—ญํ•  ๋ถ„๋‹ด

Backend / AI Backend / AI Frontend Frontend
[ํŒ€์žฅ] ์„œ์ฃผ์› ๊น€ํ˜„๊ฒธ ์ตœ๋ฏผ๊ทœ ๊น€๋‚™๋„
ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ, ์ด๋ฉ”์ผ ์ธ์ฆ
์นด์นด์˜ค ํŽ˜์ด API, ํฌ์ธํŠธ ์ถฉ์ „ ๋ฐ ๊ด€๋ฆฌ,
๊ด€๋ฆฌ์ž, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€๋ฆฌ
๊ฒฝํ—˜ ์นด๋“œ, ์ž๊ธฐ์†Œ๊ฐœ์„œ ๊ด€๋ฆฌ,
๋งˆ์ดํŽ˜์ด์ง€, ๋Œ“๊ธ€ ๊ด€๋ฆฌ
GPT๋ฅผ ํ†ตํ•œ AI ์ž๊ธฐ์†Œ๊ฐœ์„œ ํ”ผ๋“œ๋ฐฑ,
KoBERT๋ฅผ ํ†ตํ•œ AI ์ง๋ฌด ์—ญ๋Ÿ‰ ๋ถ„์„
๋ฉ”์ธ ํŽ˜์ด์ง€, ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ
์นด์นด์˜ค ํŽ˜์ด API ์—ฐ๋™, ์ปค๋ฎค๋‹ˆํ‹ฐ,
๊ด€๋ฆฌ์ž
๊ฒฝํ—˜ ์นด๋“œ, ์ž๊ธฐ์†Œ๊ฐœ์„œ,
๋งˆ์ดํŽ˜์ด์ง€, AI ํ”ผ๋“œ๋ฐฑ ๊ฒฐ๊ณผ

1. โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

๋ถ„๋ฅ˜ ๊ธฐ์ˆ  ์Šคํƒ

ํ”„๋ก ํŠธ์—”๋“œ

๋ฐฑ์—”๋“œ

ํ˜‘์—…

Backend Stack

  • Java 17
  • Framework: Springboot 3.2.4, Spring Security 6.3, Spring Data JPA, Swagger 2.2, JWT 0.11.5
  • Database: MySQL, Redis
  • Cloud : Google Cloud Platform
  • CI/CD : Github Actions, Docker, Docker-Compose
  • Git: Git, Github, Git Submodule

Frontend Stack

  • Next.js, Tailwind, Typescript,

AI Stack

  • Flask, MySQL, Redis, Swagger
  • Hugging Face - KoBERT (NLP Model)
  • Gpt-3.5-turbo-1106
  • Naver Clova Open API

2. ์ฑ„ํƒํ•œ ๊ฐœ๋ฐœ ๊ธฐ์ˆ ๊ณผ branch ์ „๋žต

Meetfolio ํŒ€์˜ Git branch ์ „๋žต

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

์ €ํฌ ํŒ€์—์„œ๋Š” main, develop, featuer(feat), fix ๋ธŒ๋žœ์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Git ๋ถ„๊ธฐ ์ „๋žต์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ธŒ๋žœ์น˜ ๊ตฌ์„ฑ
* main : ํ”„๋กœ์ ํŠธ์˜ ์•ˆ์ •์ ์ด๊ณ  ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์„ ํฌํ•จํ•˜๋Š” ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ฐฐํฌ์— ์ง์ ‘ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
* develop : ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ฐ ์ˆ˜์ • ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ์ค‘๊ฐ„ ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. main ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ์ฝ”๋“œ ๊ฒ€์ฆ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
* feature : develop ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ๋ถ„๊ธฐํ•˜์—ฌ ๊ฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์™„๋ฃŒ ํ›„ develop ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
* fix : ๋ฒ„๊ทธ ์ˆ˜์ • ๋˜๋Š” ๊ธด๊ธ‰ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด develop ๋˜๋Š” feature ๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ๋ถ„๊ธฐํ•˜๋Š” ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ ํ›„ develop ๋˜๋Š” feature ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

3. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Backend ํ”„๋กœ์ ํŠธ ํด๋” ๊ตฌ์กฐ

๐Ÿ“ฆ 
โ”œโ”€ย .github
โ”‚ย ย โ”œโ”€ย ISSUE_TEMPLATE
โ”‚ย ย โ”‚ย ย โ””โ”€ย feature_request.md
โ”‚ย ย โ”œโ”€ย pull_request_template.md
โ”‚ย ย โ””โ”€ย workflows
โ”‚ย ย ย ย ย โ””โ”€ย github-actions.yml
โ”œโ”€ย .gitignore
โ”œโ”€ย Dockerfile
โ”œโ”€ย build.gradle
โ”œโ”€ย gradle
โ””โ”€ย src.main.java.com.codez4.meetfolio
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย MeetfolioApplication.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย domain
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย admin
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย analysis
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Analysis.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย board
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Board.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย EmploymentBoard.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย GroupBoard.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย comment
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Comment.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย common
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย BaseTimeEntity.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย coverLetter
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย CoverLetter.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย dataset
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Dataset.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย emailAuth
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย enum
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Authority.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย BoardType.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Grade.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย GroupCategory.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย JobKeyword.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย PaymentStatus.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย PointType.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย ProfileEmoji.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย ShareType.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Status.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย VersionStatus.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย experience
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Experience.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย feedback
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Feedback.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย like
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Like.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย member
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Member.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย model
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Model.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย payment
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย Payment.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”‚ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย point
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย Point.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย controller
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย dto
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย repository
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ””โ”€ย service
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ””โ”€ย global
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย annotation
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย AuthenticationMember.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย AuthenticationMemberArgumentResolver.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย EnumValid.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย EnumValidator.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย config
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย CorsConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย EmailConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย RedisConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย SecurityConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย SwaggerConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย WebMvcConfig.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย exception
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย ApiException.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย ExceptionAdvice.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย jwt
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย JwtAuthenticationEntryPoint.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย JwtAuthenticationFilter.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย JwtExceptionFilter.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย JwtProperties.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย JwtTokenProvider.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย response
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย ApiResponse.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย SliceResponse.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย code
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย BaseCode.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย BaseErrorCode.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย ErrorReasonDto.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ”œโ”€ย ReasonDto.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย โ””โ”€ย status
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย ย ย ย โ”œโ”€ย ErrorStatus.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย ย ย ย ย ย ย โ””โ”€ย SuccessStatus.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย security
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย CustomUserDetailService.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ”œโ”€ย CustomUserDetails.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย ย โ””โ”€ย Password.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ””โ”€ย utils
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”œโ”€ย RedisUtil.java
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ””โ”€ย TimeUtils.java

ยฉgenerated by Project Tree Generator

4. ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ฒ˜

image

5. ํ”„๋กœ์ ํŠธ CI/CD ํŒŒ์ดํ”„๋ผ์ธ

image

6. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋ฐ ์ž‘์—… ๊ด€๋ฆฌ

2024.03 ~ 2024.06.07

  • ์š”๊ตฌ ๋ถ„์„ [03/05 ~ 03/18]
  • ์„ค๊ณ„ ๋‹จ๊ณ„ [03/18 ~ 04/08]
  • ๊ตฌํ˜„ ๋‹จ๊ณ„ [04/08 ~ 05/19]
  • ์™„๋ฃŒ ๋‹จ๊ณ„(๋ณด๊ณ ์„œ ์ž‘์„ฑ ๋ฐ ์‹œ์—ฐ) [05/14 ~ 06/07]

7. ํŽ˜์ด์ง€ ๋ณ„ ๊ธฐ๋Šฅ

๋ฉ”์ธํ™”๋ฉด

image

๋กœ๊ทธ์ธ ํšŒ์›๊ฐ€์ž…

image image image

๊ฒฝํ—˜์นด๋“œ ์ƒ์„ฑ

image image image

์ž๊ธฐ์†Œ๊ฐœ์„œ ์ž‘์„ฑ, AI ํ”ผ๋“œ๋ฐฑ, ์ง๋ฌด์—ญ๋Ÿ‰๋ถ„์„

image image image

์ปค๋ฎค๋‹ˆํ‹ฐ

image image

๊ด€๋ฆฌ์ž

image image image

8. ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ

BE ๊น€ํ˜„๊ฒธ

์กธ์—… ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐํš, ์„ค๊ณ„ ๊ณผ์ •๋„ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๊ฐœ๋ฐœ์˜ ์ „ ๊ณผ์ •์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํšํ•œ ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด์„œ ์„œ๋น„์Šค์˜ ํ•„์š”์„ฑ๊ณผ ๊ธฐ์กด ์„œ๋น„์Šค์™€์˜ ์ฐจ๋ณ„์ ์„ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๊ณผ์ •์—์„œ ์„œ๋น„์Šค ์ดํ•ด๋„์™€ ๊ธฐํš์„ ๋”์šฑ ํƒ„ํƒ„ํ•˜๊ฒŒ ๋‹ค์งˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์•„์ด๋””์–ด ์„ ์ •๋ถ€ํ„ฐ ์„œ๋น„์Šค ๊ธฐํš, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ œ์ž‘, ์„œ๋น„์Šค์— ๋งž๋Š” ๋„๋ฉ”์ธ๊ณผ ๊ฐ์ฒด ์ถ”์ถœ ๋“ฑ ์ „ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ•„์š”ํ•œ ์—ญ๋Ÿ‰์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ตฌํ˜„ํ•  API๋ฅผ ๋จผ์ € ๋…ธ์…˜์— ๊ธฐ๋กํ•œ ํ›„, ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก Swagger์— ๋ช…์‹œํ•˜์˜€์Šต๋‹ˆ๋‹ค. Swagger์— API ์‚ฌ์šฉ๋ฒ•๊ณผ ๊ด€๋ จ DTO๋ฅผ ์„ธ๋ถ€์ ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ API ์—ฐ๋™์— ์–ด๋ ค์›€์ด ์—†๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์„ธ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•œ ๋•๋ถ„์— ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ API ๋ช…์„ธ์„œ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ์ž˜ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋Š” ์นญ์ฐฌ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” API ๊ฐœ๋ฐœ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก API ๋ช…์„ธ์„œ ์ž‘์„ฑ๋„ ์ค‘์š”ํ•˜๊ณ , ์ด๋ฅผ ์œ„ํ•ด ์„œ๋น„์Šค์˜ ์˜จ์ „ํ•œ ์ดํ•ด์™€ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ, ์กธ์—… ํ”„๋กœ์ ํŠธ AI ํŠธ๋ž™์„ ํ†ตํ•ด AI ๋ชจ๋ธ๋ง๊ณผ AI API ๊ฐœ๋ฐœ์„ ์ฒ˜์Œ์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด๋ณด๋Š” ๊ฒฝํ—˜์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘, ์ „์ฒ˜๋ฆฌ, ๋ชจ๋ธ ํ•™์Šต, ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐ ๊ธฐ๋Šฅ์„ ํ•จ์ˆ˜ํ™”ํ•˜์—ฌ AI ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜ํ™”ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•จ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ์— AI ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ ์ ์šฉํ•ด๋ณด์•˜์ง€๋งŒ, ๋ชจ๋ธ ํŒŒ์ดํ”„๋ผ์ธ ๊ณผ์ •์„ ํ•˜๋‚˜์”ฉ ๊ตฌํ˜„ํ•ด๊ฐ€๋ฉฐ ์ƒ๊ฐํ•œ ๊ธฐ๋Šฅ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. |

FE ์ตœ๋ฏผ๊ทœ

ํ•œ ํ•™๊ธฐ๋ผ๋Š” ์‹œ๊ฐ„ ๋™์•ˆ ๋‹จ์ˆœ ๊ฐœ๋ฐœ์ด ์•„๋‹Œ ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ƒํ•˜๊ณ , ์ œ์•ˆ์„œ, ์„ค๊ณ„์„œ ๊ฐ™์€ ๋ฌธ์„œ์ž‘์—… ๋“ค์„ ๊ต‰์žฅํžˆ ์„ธ์„ธํ•˜๊ณ  ์ฒด๊ณ„์ ์œผ๋กœ ์ž‘์—…์„ ํ•ด ํฐ ๋…ธ๋ ฅ๊ณผ ์‹œ๊ฐ„์„ ํˆฌ์žํ•œ ๋งŒํผ ๋ฟŒ๋“ฏํ•˜๋‹ค. ๋‹ค์–‘ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ๊ฑฐ์นœ ๋งŒํผ ์ค‘๊ฐ„์— ์ƒ๊ธด ๋ณ€๊ฒฝ ์ ์ด๋‚˜ ํ”ผ๋“œ๋ฐฑ์—๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜๊ณ  ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŒ€์›๋“ค๊ณผ์˜ ํŒ€์›Œํฌ๋„ ๋„ˆ๋ฌด ๋งŒ์กฑ์Šค๋Ÿฌ์› ๋‹ค. ํŒ€์› ๊ฐ์ž์˜ ๊ด€์  ๋ฐ ์„ฑ๊ฒฉ์ด ์ œ๊ฐ๊ฐ ๋‹ค๋ฅด๊ธฐ์— ์žฆ์€ ํšŒ์˜์™€ ์†Œํ†ต์„ ํ•˜๋ฉฐ ํŒ€์›์ด ๋‚ด๊ฐ€ ํ•œ ์ž‘์—…์— ๋Œ€ํ•ด์„œ ํ”ผ๋“œ๋ฐฑ์„ ํ•ด์ฃผ๊ณ , ๋‚ด๊ฐ€ ํŒ€์›์˜ ์—ญํ• ์— ๋Œ€ํ•˜์—ฌ ํ”ผ๋“œ๋ฐฑ์„ ํ•ด์ฃผ๋ฉฐ ๋” ์งˆ ์ข‹์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ธฐ๋ฐ˜์ด ๋œ ๊ฒƒ ๊ฐ™๋‹ค.
๋ถˆ๊ณผ 3๊ฐœ์›” ์ „์ธ ๋‚ด ๋ชจ์Šต๊ณผ ์ง€๊ธˆ์„ ๋น„๊ตํ•˜๋ฉด, ์งง์€ ์‹œ๊ฐ„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœ ์‹ค๋ ฅ์€ ๋ฌผ๋ก ์ด๊ณ  ํŠนํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ƒํ•˜๊ณ , ์„ค๊ณ„ํ•˜๋Š” ์—ญ๋Ÿ‰์ด ๋งŽ์ด ์ฆ์ง„๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํŠนํžˆ ๊ฐ์ž์˜ ์—ญํ• ์— ๋Œ€ํ•˜์—ฌ ์ฑ…์ž„๊ฐ์„ ๊ฐ•ํ•˜๊ฒŒ ๊ฐ–๊ธฐ์—, ๋‚˜ ๋˜ํ•œ ๋‚ด ์—ญํ• ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ๋Š๋ผ๊ณ  ์ œํ•œ ์‹œ๊ฐ„๊ณผ ์•ฝ์†๋œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋„๋ก ๋…ธ๋ ฅํ–ˆ๋‹ค. ์ด ๊ณผ์ • ์ค‘์— ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋ณด๋‹จ ๋” ๋‚˜์•„๊ฐ„ ์ดํ›„์— ํšŒ์˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ฒฐ์„ ํ•  ๋•Œ ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์˜ฌ ๊ฑฐ ๊ฐ™์€ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋จผ์ € ์ˆ˜์ •ํ•˜๊ณ  ๋ณด์™„ํ•ด ๊ฐ€๋ ค๋Š” ์‹œ๊ฐ ๋˜ํ•œ ์ƒ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค. |

About

Meetfolio Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published