Skip to content

Latest commit

ย 

History

History
501 lines (316 loc) ยท 23.8 KB

README.md

File metadata and controls

501 lines (316 loc) ยท 23.8 KB

Run With Me ? ๐Ÿƒ๏ธ

GithubGithubGithubGithubGithub

๐Ÿšฉ Run With Me ? ๐Ÿƒ๏ธ

  • ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

    • ๐Ÿ  Run With Me Homepage

    • Run With Me๋Š” ๋Ÿฐ๋‹ ์‹œ GPS ์ถ”์ ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ๋Ÿฐ๋‹ ๊ธฐ๋ก ์ €์žฅ ๋ฐ ์‚ฌ์šฉ์ž์˜ ์ง€์—ญ, ์„ฑํ–ฅ์— ๋งž์ถฐ ์ฝ”์Šค๋ฅผ ์ถ”์ฒœ ๋Ÿฐ๋‹ ๋ฉ”์ดํŠธ๋“ค๊ณผ ํ•จ๊ป˜ ๊ธฐ๋ถ€ํ•˜๋Š” ์‹œ์Šคํ…œ, ์นœ๋ชฉ ๋„๋ชจ๋ฅผ ์œ„ํ•œ ์ฑ„ํŒ… ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๊ฒŒ์ž„๊ฐ™์ด ๋Ÿฐ๋‹์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ์›น / ์•ฑ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๊ธฐ๋Šฅ

    • ๋Ÿฌ๋‹ ๊ธฐ๋ก ๋ฐ / ๋ถ„์„

      1. ์‚ฌ์šฉ์ž์˜ ๋Ÿฌ๋‹์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์†๋„, ๊ฑฐ๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋ก์ด ํ™”๋ฉด์— ํ‘œ์‹œ๊ฐ€ ๋œ๋‹ค.

      2. ๋Ÿฌ๋‹ ์ข…๋ฃŒ ์‹œ ๊ธฐ๋ก์ด ์ €์žฅ๋˜๊ณ , ๊ฐœ์ธ ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ถ„์„ํ•œ๋‹ค.

      โ€‹ - ์ด์ „ ๊ธฐ๋ก๊ณผ ์ตœ๊ทผ ๊ธฐ๋ก, ํ‰๊ท  ๋Ÿฌ๋„ˆ ๊ธฐ๋ก์„ ๋ถ„์„ํ•˜์—ฌ ๋น„๊ตํ•ด ์–ผ๋งˆ๋‚˜ ์„ฑ์žฅํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    • ์ฑŒ๋ฆฐ์ง€ ์„œ๋น„์Šค

      1. ๋งค์ผ ๋˜‘๊ฐ™์ด ๋Ÿฌ๋‹๋งŒ ํ•˜๋Š” ๋ฐ ์ง€๋ฃจํ•จ์„ ๋Š๋ผ๋Š” ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ƒˆ๋กœ์šด ์‹œ๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

      2. ์‚ฌ์šฉ์ž๋Š” ์นด์นด์˜คํŽ˜์ด๋ฅผ ํ†ตํ•ด ๋งˆ์ผ๋ฆฌ์ง€๋ฅผ ์ถฉ์ „ํ•˜๊ณ  ๊ธฐ๋ถ€ํ•  ๊ธˆ์•ก์„ ์ •ํ•ด ์›ํ•˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ฑŒ๋ฆฐ์ง€์— ์ฐธ์—ฌํ•œ๋‹ค.

      3. ์ฑŒ๋ฆฐ์ง€ ๊ฐ๊ฐ์˜ ๋ชฉํ‘œ์™€ ๊ธฐ๋ถ€ ๊ธˆ์•ก์„ ๋‹ฌ์„ฑํ•˜๋ฉด ๊ธฐ๋ถ€๊ฐ€ ๋˜๋Š” ํ˜•์‹์œผ๋กœ, ๊ธฐ๋ถ€๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

      4. ๋น„๋Œ€๋ฉด ๋ ˆ์ด์Šค์˜ ํ˜•ํƒœ๋กœ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค๊ณผ ํ•จ๊ป˜ ๊ฐ์ž์˜ ์žฅ์†Œ์—์„œ ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๋Š” ๊ฒƒ์„ ํ†ตํ•ด ์ƒ‰๋‹ค๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

    • ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค

      1. ํ˜ผ์ž๊ฐ€ ์•„๋‹Œ ๋Ÿฌ๋‹๋ฉ”์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ, ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ก๊ณผ ํ™œ๋™ ์ง€์—ญ ๋ถ„์„์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๋Ÿฌ๋„ˆ๋ฅผ ๋งค์นญํ•ด์ค€๋‹ค.

      2. ์ผ๋Œ€์ผ ์ฑ„ํŒ…์„ ํ†ตํ•ด ํŒ”๋กœ์šฐํ•œ ์นœ๊ตฌ์™€ ๋Œ€ํ™”๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋Ÿฌ๋„ˆ ๋งค์นญ์„ ์›ํ™œํ•˜๊ฒŒ ๋•๊ธฐ์œ„ํ•ด ํ™œ์šฉํ•œ๋‹ค.

      3. ์ง€์—ญ๋ณ„ ์ฑ„ํŒ…์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ง€์—ญ์— ์†ํ•œ ์ง€์—ญ์˜ ๊ทธ๋ฃน ์ฑ„ํŒ…์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋Ÿฌ๋„ˆ๋“ค๊ณผ ์†Œํ†ตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

      4. ๋žญํ‚น ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•˜์—ฌ ๋Ÿฌ๋‹์— ๋Œ€ํ•œ ์„ฑ์ทจ๊ฐ์„ ๋†’์ด๊ณ , ์œ ์ €๋“ค์˜ ๋Ÿฌ๋‹ ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ํ•œ๋‹ค.

  • ํ–ฅํ›„ ๊ณ„ํš

    • ์•Œ๋ฆผ ๊ธฐ๋Šฅ : ์นœ๊ตฌ ์ถ”๊ฐ€ ๋ฐ ์ฑ„ํŒ… ๊ด€๋ จํ•œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํŽธ๋ฆฌ์„ฑ์„ ์ œ๊ณต.
    • ์ฝ”์นญ ์„œ๋น„์Šค : ๋Ÿฌ๋„ˆ๋“ค์—๊ฒŒ ํšจ๊ณผ์ ์ธ ๋Ÿฌ๋‹์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”์นญํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ €๋ฅผ ๋งค์นญํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต.
    • ๋‹ค์–‘ํ•œ ์ฑŒ๋ฆฐ์ง€ ์ปจํ…์ธ  : ๊ธฐ๋ถ€ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ฑŒ๋ฆฐ์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋‹ค์–‘ํ•˜๊ฒŒ ์ฑŒ๋ฆฐ์ง€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต.
    • ๊ธฐ๋ถ€ ๋‹จ์ฒด ํ˜‘์•ฝ : ๊ธฐ๋ถ€ ์ฑŒ๋ฆฐ์ง€๋ฅผ ํ†ตํ•ด ์–ป์€ ๊ธฐ๋ถ€๊ธˆ ์ „๋‹ฌ์„ ์œ„ํ•ด ๊ธฐ๋ถ€ ๋‹จ์ฒด๋ฅผ ์ฐพ์•„ ํ˜‘์•ฝ์„ ๋งบ์„ ๊ณ„ํš.

๐Ÿ“Œ ๋ชฉ์ฐจ

Run With Me ? ๐Ÿƒ

๐Ÿšฉ ์‹œ์ž‘ํ•˜๊ธฐ

์•„๋ž˜ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด์‹œ๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ

์„ค์น˜ํ•˜๊ธฐ

  1. ๊นƒํ—™์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.

    $ git clone https://github.com/soo-ni/RunWithMe.git
    
  2. npm์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    $ npm install
    

์‹คํ–‰ํ•˜๊ธฐ

Run With Me ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • RunWithMe_SQL.sql์„ ์ฐธ๊ณ ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (์—ฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ erd๋ฅผ ํ™•์ธํ•˜์„ธ์š”.)

    • application.yml์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

      spring:
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url : jdbc:mysql://localhost:3306/rwm?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
          username : {๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ • ์•„์ด๋””}
          password : {๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ}
      
  2. ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • IDE์— import ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      : IntelliJ, STS์™€ ๊ฐ™์€ IDE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, backend - RunWithMe๋ฅผ importํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • warํŒŒ์ผ์„ ์ƒ์„ฑ ํ›„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      $ gradlew -DskipTests=true build
      
      $ java -jar [filename].war
      
    • ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      $ npm run serve
      

๋ฐฐํฌํ•˜๊ธฐ

ํ•ด๋‹น ์„œ๋น„์Šค๋Š” AWS EC2๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์— ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ AWS EC2๊ณ„์ •์„ ์ƒ์„ฑํ•˜์„ธ์š”.

๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. AWS EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  2. Ubuntu ํ™˜๊ฒฝ์— Git Clone

  3. Nginx ํ™˜๊ฒฝ ์„ค์ •

    
    server {
    
            listen 80;
            listen [::]:80;
            server_name k3a303.p.ssafy.io;
            return 301 https://$host$request_uri;
            
    }
    
    server {
    
            listen 443 ssl default_server;
            listen [::]:443 ssl default_server;
           
            root /home/ubuntu/deploy/s03p31a303/frontend/RunWithMe/dist;
    
            # Add index.php to the list if you are using PHP
            index index.html index.htm index.nginx-debian.html;
    
            server_name k3a303.p.ssafy.io;
    
            location / {
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ /index.html;
            }
    
            ssl_certificate /etc/letsencrypt/live/k3a303.p.ssafy.io/fullchain.pem;
            ssl_certificate_key /etc/letsencrypt/live/k3a303.p.ssafy.io/privkey.pem;
    
            access_log /var/log/nginx/proxy/access.log;
            error_log /var/log/nginx/proxy/error.log;
            
    }
    
  4. JDK ์„ค์น˜ (ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •)

  5. DB ์„ค์น˜ (ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ MySQL ์‚ฌ์šฉ)

  6. gradle wrapper์„ ์œ„ํ•œ ๋ฒ„์ „ ์„ค์ • (6.0.0 ์ด์ƒ)

  7. gradle clean build ์‹คํ–‰ (war ํŒŒ์ผ ์ƒ์„ฑ)

  8. yarn build (dist ํด๋” ์ƒ์„ฑ)

๐ŸŒ ์ง€์›ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €

Chrome Safari Edge Firefox
latest latest latest latest

๐Ÿ› ๏ธ ์‚ฌ์šฉ๋œ ๋„๊ตฌ

  • Vue.js 2.6.11
  • vue/cli 4.4.6
  • yarn 1.22.4
  • Spring boot 2.3.1
  • Gradle 6.4.1
  • IDE: Visual Studio Code 1.48, Spring Tool Suite 3
  • GitLab
  • Jira
  • SonarQube

๐Ÿ–ฅ๏ธ ์‚ฌ์šฉ๋œ ๊ธฐ์ˆ 

TechStack

[ BACK END ]

  • Spring Boot : Run WIth Me Project์˜ ์ „๋ฐ˜์ ์ธ Rest Controller ๊ตฌํ˜„.
  • Spring Security : WebSecurityConfigurerAdapter๋ฅผ ์ƒ์†๋ฐ›์•„ Filter๋ฅผ ์ ์šฉ, ์‚ฌ์šฉ์ž ๊ถŒํ•œ์— ๋งž๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌํ˜„.
  • JWT : JSON Web Token์„ ํ™œ์šฉํ•˜์—ฌ ํšŒ์› ์ธ์ฆ ๋ฐ ์•ˆ์ •์„ฑ์žˆ๋Š” ์ •๋ณด ๊ตํ™˜์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์šฉ.
  • JPA (Hibernate) : ORM์ธ Hibernate๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€๊ณ , SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  Entity ํ•„๋“œ๊ฐ€ ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด DB๋ฅผ ๋™์ž‘์‹œ์ผœ ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๊ฒŒ ํ™œ์šฉ.
    • ๋™์ผํ•œ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์บ์‹œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ํšจ์œจ์„ฑ ๊ธฐ๋Œ€
  • SSL ํ”„๋กœํ† ์ฝœ : SSL์„ ์ ์šฉํ•˜์—ฌ ์ „์†ก๋˜๋Š” ํŒจํ‚ท๊ฐ’์„ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์™ธ๋ถ€์˜ ๊ณต๊ฒฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์•ˆํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
    • Letโ€™s Encrypt ๋ฌด๋ฃŒ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์›น์„œ๋ฒ„์— SSL ์ธ์ฆ์„œ๋ฅผ ์ ์šฉ.
    • Google Map API ํ™œ์šฉ ์‹œ, SSL ์ ์šฉ ํ•„์ˆ˜.
  • MySql : RDBMS๋กœ Run With Me Project์˜ ์‚ฌ์šฉ์ž, ๋Ÿฌ๋‹ ๊ธฐ๋ก, ์ฑŒ๋ฆฐ์ง€, ๊ฒŒ์‹œํŒ ๋“ฑ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ.
  • Redis : ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ 'Key-Value' ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ๋น ๋ฅธ ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์— ์ ์šฉ.
    • ์ฑ„ํŒ… ์„œ๋ฒ„์˜ ์ฑ„ํŒ…๋ฐฉ, ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ. (Subscribe / Publish)
    • ๋งŒ๋ฃŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ๋งŒ๋ฃŒ ์‹œ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋กœ๊ทธ์•„์›ƒ๋œ ํ† ํฐ์„ ์ €์žฅํ•˜์—ฌ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋กœ ํ™œ์šฉ.
  • AWS
    • EC2 ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ Ubuntu ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ• (ํ˜ธ์ŠคํŒ…).
    • S3 ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœํ•„ ๋ฐ ๋Ÿฌ๋‹ ๊ธฐ๋ก (Polyline)์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
  • Nginx : ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•
  • WebSocket : ์›น ์ƒ์—์„œ ์‰ฝ๊ฒŒ ์†Œ์ผ“ ํ†ต์‹ ์„ ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋Ÿฌ๋‹ ๋ฉ”์ดํŠธ ๋งค์นญ, ์ง€์—ญ๋ณ„ ๊ทธ๋ฃน ์ฑ„ํŒ… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„.
  • STOMP : Http์— ๋ชจ๋ธ๋ง๋œ frame ๊ธฐ๋ฐ˜์˜ ๋ฉ”์„ธ์ง• ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ๋ฉ”์„ธ์ง€ ์ „์†ก์„ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ.
    • STOMP Handler๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ Subscribe๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ฃผ์ฒด(Topic)๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์‹ค์‹œ๊ฐ„, ์ง€์†์ ์œผ๋กœ ๊ฐ์‹œํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌํ˜„. (Broker ์—ญํ•  ์ˆ˜ํ–‰)

[ FRONT END ]

  • Vue
    • Swal (Sweet Alert) - ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ๋””์ž์ธ์„ ๊ฐ€์ง„ Alert์ฐฝ์„ ๊ตฌํ˜„.
    • SplideSlide - Page๋ฅผ Swapํ• ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋˜๋Š” ํŽ˜์ด์ง€.
    • carousal - Main Page์—์„œ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด 3D Slideํ˜•์‹์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„.
    • apexChart - ๋Ÿฐ๋‹ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ถ„์„์ฐจํŠธ.
    • decode-google-map-polyline - String์œผ๋กœ ์ธ์ฝ”๋”ฉํ–ˆ๋˜ polyline์„ ๋งต์— ๋‹ค์‹œ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
    • vue-good-table - ์นœ๊ตฌ ๋ชฉ๋ก์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋ชฉ๋ก์„ ํ‘œํ˜„ํ• ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒ€์ƒ‰๊ณผ ์ •๋ ฌ๊ธฐ๋Šฅ, ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ.
    • vue-moment - ์‹œ๊ฐ„์„ DB์— ์ €์žฅํ•˜๊ธฐ์œ„ํ•ด ํฌ๋งท ํ˜•์‹์„ ๋ณ€๊ฒฝ ๋ฐ DB์—์„œ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์ถœ๋ ฅ ํ˜•์‹ ๋ณ€๊ฒฝ.
    • web-stomp - ์ฑ„ํŒ…๊ธฐ๋Šฅ์„ ์œ„ํ•œ ์›น ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฑ„ํŒ…์„ ํ• ๋•Œ ์‚ฌ์šฉ.
  • Google Static Map : ์‹ค์‹œ๊ฐ„ ์œ„์น˜์ •๋ณด๋ฅผ ๋งต์— Polylineํ™”ํ•ด์„œ ์ง€๋„์ด๋ฏธ์ง€๋ฅผ DB์— ์ €์žฅ.
  • Google Map : ์ง€๋„์— ์ง€์†์ ์œผ๋กœ ์œ„์น˜๋ฅผ ๊ธฐ๋ก ๋ฐ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
  • Kakao Pay : Kakao์—์„œ ์ œ๊ณตํ•˜๋Š” KakaoPay๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด ๋ชจ๋ฐ”์ผ๋กœ ๊ฒฐ์ œ๊ฐ€ ๊ฐ€๋Šฅ. ๊ธฐ๋ถ€ ์ฑŒ๋ฆฐ์ง€ ์ฐธ๊ฐ€๋ฅผ ์œ„ํ•ด ์›ํ•˜๋Š” ๊ธˆ์•ก๋งŒํผ ๋ฏธ๋ฆฌ ์ถฉ์ „ํ•˜์—ฌ ์‚ฌ์šฉ.
  • Vuex : ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜๋“ค์„ ์ €์žฅํ•ด์„œ ํ•œ๋ฒˆ์— ๊ด€๋ฆฌ, ์ถ”๊ฐ€์ ์œผ๋กœ JWTํ† ํฐ์„ ์Šคํ† ์–ด์— ์ €์žฅํ•˜์—ฌ Backend์™€ ํ†ต์‹ ์‹œ๋งˆ๋‹ค ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ, 2์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜์–ด ์„œ๋น„์Šค ์ด์šฉ ๋ถˆ๊ฐ€.
  • vue apaxcharts : ๋Ÿฌ๋‹ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์šฉ.
    • axios ํ†ต์‹ .
    • ์‹œ๊ฐํ™” ์ž๋ฃŒ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ ๋ฐ ์ €์žฅ.
    • ํ™œ์šฉ ์‚ฌ๋ก€
      • running plant
        • ์›”๋ณ„ ์‚ฌ์šฉ์ž ๋Ÿฌ๋‹ ๊ฑฐ๋ฆฌ ๊ธฐ๋ก.
        • ๊ฑฐ๋ฆฌ ๊ธฐ๋ก์— ๋”ฐ๋ผ ์ƒ๋Œ€์ ์ธ ์ƒ‰ ํ‘œํ˜„.
        • ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ๊ธฐ๋ก ๋ถ„์„ ๊ฐ€๋Šฅ.
      • running analysis
        • ์ง€๋‚œ ์ธก์ • ๊ธฐ๋ก vuex ์ €์žฅ ๋ฐ ์‹œ๊ฐํ™”.
        • ์—…๋ฐ์ดํŠธ ๊ธฐ๋ก๊ณผ ๋น„๊ต.
        • ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ํ‹ฐ์–ด์˜ ์‚ฌ์šฉ์ž์™€ ๋น„๊ต ๋ถ„์„.

[ TEAM Cooperation ]

  • GitLab : GitLab์„ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌ.
    • Git Flow ์— ๋”ฐ๋ฅธ ๋ธŒ๋žœ์น˜ ์ „๋žต ์ˆ˜๋ฆฝ.
    • MR ์‹œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ง„ํ–‰.
  • Jira : ์ด์Šˆ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ํ™œ์šฉ.
    • ์ฃผ์š” ๊ธฐ๋Šฅ๋“ค์„ ์ด์Šˆ๋กœ ๋“ฑ๋กํ•˜๊ณ  Story Point๋ฅผ ์‚ฐ์ •ํ•œ ํ›„, ๋‹ด๋‹น์ž๋ฅผ ์ง€์ •ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰.
    • 1~2 ์ฃผ ์ •๋„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์„ค์ •.
  • Google Drive : ํ˜‘์—…์„ ์œ„ํ•œ ๊ณต์šฉ ๋ฌธ์„œ ๋ฐ ์‚ฐ์ถœ๋ฌผ๋“ค์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™œ์šฉ.
    • ๋™์‹œ ๋ฌธ์„œ ์ž‘์„ฑ (Google Docs).
    • ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ฒจ๋ถ€

๐Ÿ–ฅ๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ณ

System_Architecture

๐ŸŽž ์„œ๋น„์Šค ์†Œ๊ฐœ

1. ๋กœ๊ทธ์ธ ํ™”๋ฉด

1-1. ๋กœ๊ทธ์ธ ํ™”๋ฉด


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

2-1. ๋ฉ”์ธ ํ™”๋ฉด

  • [๋ฉ”์ธ ํ™”๋ฉด] : ์ƒ๋‹จ์—๋Š” ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ์ฑŒ๋ฆฐ์ง€, ์ค‘์•™์—๋Š” ๋žญํ‚น, ํ•˜๋‹จ์—๋Š” ํŒ”๋กœ์šฐํ•œ ์œ ์ €์˜ ์ตœ์‹  ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.

2-2. ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ๋žญ์ปค ํด๋ฆญ

  • [๋ฉ”์ธ ํ™”๋ฉด์—์„œ ๋žญ์ปค ํด๋ฆญ ์‹œ] : ์„ ํƒํ•œ ์œ ์ €์˜ ๊ฐ„๋‹จํ•œ ํ”„๋กœํ•„, ํŒ”๋กœ์šฐ ์—ฌ๋ถ€, ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.
  • [๋žญ์ปค ํ”„๋กœํ•„์—์„œ ๋Ÿฌ๋‹ ํ”ผ๋“œ ํด๋ฆญ ์‹œ] : ์œ ์ €์˜ ํ•ด๋‹น ๋Ÿฌ๋‹ ์ƒ์„ธ ๊ธฐ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.

2-3. ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์นœ๊ตฌ ํ”ผ๋“œ ํด๋ฆญ

  • [๋ฉ”์ธ ํ™”๋ฉด์—์„œ ํŒ”๋กœ์›Œ ํ”ผ๋“œ ํด๋ฆญ ์‹œ] : ํŒ”๋กœ์šฐํ•œ ์œ ์ €์˜ ๋Ÿฌ๋‹ ์ƒ์„ธ ๊ธฐ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.

3. ๋Ÿฌ๋‹ ํŽ˜์ด์ง€

3-1. ๋Ÿฌ๋‹ ํŽ˜์ด์ง€

  • [๋Ÿฌ๋‹ ํŽ˜์ด์ง€์—์„œ ์‹œ์ž‘ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ] : ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ์‹œ์ž‘ํ•œ๋‹ค.
  • [๋Ÿฌ๋‹ ํŽ˜์ด์ง€์—์„œ ์ •์ง€ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ] : ๋Ÿฌ๋‹์„ ๋๋‚ด๊ณ  ๊ธฐ๋ก์„ ์ €์žฅํ•œ๋‹ค.
  • [๋Ÿฌ๋‹ ํŽ˜์ด์ง€์—์„œ ํŽ˜์ด์ง€ ์Šค์™‘ ์‹œ] : ํ˜„์žฌ ๋Ÿฌ๋‹์˜ ์ค‘๊ฐ„ ๊ธฐ๋ก์„ 1km ๋‹จ์œ„๋กœ ํ™•์ธํ•œ๋‹ค.

3-2. ๋Ÿฌ๋‹ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€

  • [๋Ÿฌ๋‹ ๊ฒฐ๊ณผ] : ํ˜„์žฌ ๋Ÿฌ๋‹์˜ ๋ถ€๋ถ„ ๊ธฐ๋ก ๋ฐ ์ „์ฒด ๊ธฐ๋ก์„ ํ™•์ธํ•œ๋‹ค.

3-3. ๋Ÿฌ๋‹ ๋ถ„์„ ํŽ˜์ด์ง€

  • [๋Ÿฌ๋‹ ๊ธฐ๋ก] : Github์˜ contributions์„ ํ‘œํ˜„ํ•˜๋Š” ์ž”๋”” ํฌ๋ฉง์„ ๊ฐ€์ ธ์™€ ๊ฐœ๋ฐœ์ž ๊ฐ์„ฑ์„ ์‚ด๋ ค ํ•œ๋‹ฌ ๋‹จ์œ„๋กœ ํ•˜๋ฃจ์— ๋›ด ๊ฑฐ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • [๋Ÿฌ๋‹ ๋ถ„์„ ๊ทธ๋ž˜ํ”„] : ์ด์ „ ๊ธฐ๋ก, ์ตœ๊ทผ ๊ธฐ๋ก๊ณผ ์œ ์ €๋“ค์˜ ํ‰๊ท  ๊ธฐ๋ก์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์ด๋ฏธ์ง€๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ์ฃผ๋ณ€ ๋Ÿฌ๋„ˆ ์ถ”์ฒœ

4-1. ์ฃผ๋ณ€ ๋Ÿฌ๋„ˆ ์ถ”์ฒœ

  • [์ฃผ๋ณ€ ๋Ÿฌ๋„ˆ ์ถ”์ฒœ] : ๊ฐ™์€ ๋™๋„ค์˜ ์ฃผ๋ณ€ ๋Ÿฌ๋„ˆ๋“ค์„ ์ถ”์ฒœํ•ด์ฃผ๊ณ , ํด๋ฆญ ์‹œ ์œ ์ €์˜ ํ”„๋กœํ•„๊ณผ ๊ธฐ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค.

5. ์ผ๋Œ€์ผ ์ฑ„ํŒ… ๋ฐ ๋งค์นญ

5-1. ์ผ๋Œ€์ผ ์ฑ„ํŒ…

  • [์ผ๋Œ€์ผ ์ฑ„ํŒ…] : ํŒ”๋กœ์šฐํ•œ ์œ ์ €์˜ ์˜จ๋ผ์ธ ์ ‘์† ์ƒํƒœ๊ฐ€ ๋ณด์ด๋ฉฐ ์˜จ๋ผ์ธ์ธ ์œ ์ €์™€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฑ„ํŒ…ํ•œ๋‹ค.

5-2. ๋งค์นญ

  • [์ผ๋Œ€์ผ ์ฑ„ํŒ… ๋ฐ‘ ๋งค์นญ ํด๋ฆญ ์‹œ] : ์ผ๋Œ€์ผ ์ฑ„ํŒ…์˜ ์˜จ๋ผ์ธ ๋ฐ ์˜คํ”„๋ผ์ธ ์œ ์ €์˜ ๋ชฉ๋ก ํ•˜๋‹จ ๋งค์นญ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๊ฒฝํ—˜์น˜์— ๋”ฐ๋ฅธ ์œ ์ €๋ฅผ ๋งค์นญํ•ด์ค€๋‹ค.
  • [๋งค์นญ ์‹œ์Šคํ…œ] : ์„ฑ๋ณ„์„ ์„ ํƒ ํ›„ ์›ํ•˜๋Š” ๋Ÿฌ๋„ˆ๋ฅผ ์„ ํƒํ•ด ํŒ”๋กœ์šฐํ•œ ๋‹ค์Œ ์ผ๋Œ€์ผ ์ฑ„ํŒ…์„ ์‹œ์ž‘ํ•œ๋‹ค.

6. ์ง€์—ญ ์ฑ„ํŒ…

6-1. ์ง€์—ญ ์ฑ„ํŒ…

  • [์ง€์—ญ ์ฑ„ํŒ…] : ์›ํ•˜๋Š” ์ง€์—ญ์„ ์„ ํƒ ์‹œ ํ•ด๋‹น ์ง€์—ญ์—์„œ ์—ฌ๋Ÿฌ ์œ ์ €์™€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฑ„ํŒ…ํ•œ๋‹ค.

7. ์ฑŒ๋ฆฐ์ง€ ํŽ˜์ด์ง€

7-1. ์ฑŒ๋ฆฐ์ง€ ํŽ˜์ด์ง€

  • [์ฑŒ๋ฆฐ์ง€ ํŽ˜์ด์ง€] : ์ƒ๋‹จ์˜ ๋ณด์œ  ๋งˆ์ผ๋ฆฌ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ , ํ˜„์žฌ ์ง„ํ–‰์ค‘, ์ง„ํ–‰ ์˜ˆ์ •, ์ข…๋ฃŒ๋œ ์ฑŒ๋ฆฐ์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค.

7-2. ์ฑŒ๋ฆฐ์ง€ ์ƒ์„ธ

  • [์ฑŒ๋ฆฐ์ง€ ํด๋ฆญ ์‹œ] : ์ฑŒ๋ฆฐ์ง€ ํด๋ฆญ ์‹œ ํ•ด๋‹น ์ฑŒ๋ฆฐ์ง€์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ , ์‹ ์ฒญ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ฑŒ๋ฆฐ์ง€์— ์ฐธ์—ฌํ•œ๋‹ค.
  • [์ฑŒ๋ฆฐ์ง€ ์‹ ์ฒญ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ] : ์ฑŒ๋ฆฐ์ง€ ์‹ ์ฒญ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ฑŒ๋ฆฐ์ง€ ์ฐธ์—ฌ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๋ฉฐ, ๊ธฐ๋ถ€ ๊ธˆ์•ก์„ ์„ค์ •ํ•ด ์ฐธ์—ฌํ•œ๋‹ค. ์ด ๋•Œ, ๊ธฐ๋ถ€ ๊ธˆ์•ก์€ 0์›์„ ์„ค์ •ํ•ด๋„ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ•ด๋‹น ๊ธˆ์•ก์€ ๋ฏธ๋ฆฌ ์ถฉ์ „๋œ ๋งˆ์ผ๋ฆฌ์ง€์—์„œ ์ฐจ๊ฐ๋œ๋‹ค.
  • [์ถฉ์ „ํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ] : ์ถฉ์ „ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญ ์‹œ, [๋งˆ์ดํŽ˜์ด์ง€]-[๋งˆ์ผ๋ฆฌ์ง€ ์ถฉ์ „] ํƒญ์œผ๋กœ ์ „ํ™˜๋˜๋ฉฐ ์นด์นด์˜คํŽ˜์ด๋ฅผ ํ†ตํ•ด ์ถฉ์ „์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

8. ์ฑŒ๋ฆฐ์ง€ ์ œ์•ˆ

8.1 ์ฑŒ๋ฆฐ์ง€ ์ œ์•ˆ

  • [์ฑŒ๋ฆฐ์ง€ ์ œ์•ˆ] : ์œ ์ €๊ฐ€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ฑŒ๋ฆฐ์ง€๋ฅผ ์ œ์•ˆํ•œ๋‹ค.

8.2 ์ฑŒ๋ฆฐ์ง€ ๊ด€๋ฆฌ ํŽ˜์ด์ง€

  • [์ฑŒ๋ฆฐ์ง€ ๊ด€๋ฆฌ ํŽ˜์ด์ง€] : ์ฑŒ๋ฆฐ์ง€ ๊ด€๋ฆฌ ํŽ˜์ด์ง€๋Š” ๊ด€๋ฆฌ์ž ๋“ฑ๊ธ‰๋งŒ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ฑŒ๋ฆฐ์ง€ ์ƒ์„ฑ, ์‚ญ์ œ, ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

9. ๋Ÿฌ๋‹ ๊ธฐ๋ก ์กฐํšŒ

9-1. ๋Ÿฌ๋‹ ๊ธฐ๋ก ์กฐํšŒ

  • [๋Ÿฌ๋‹ ๊ธฐ๋ก ์กฐํšŒ] : ๋ณธ์ธ์˜ ๋ชจ๋“  ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ์กฐํšŒํ•œ๋‹ค. ํ•˜๋‹จ์—์„œ ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ํด๋ฆญ ์‹œ, ์ง€๋„์— ๋Ÿฌ๋‹ ๊ฒฝ๋กœ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.
  • [ํ™œ๋™ ์ง€์—ญ ๋Ÿฌ๋‹ ๊ธฐ๋ก ์กฐํšŒ] : ๋ณธ์ธ์ด ์„ค์ •ํ•œ ํ™œ๋™ ์ง€์—ญ ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ์กฐํšŒํ•œ๋‹ค. ํ•˜๋‹จ์—์„œ ๋Ÿฌ๋‹ ๊ธฐ๋ก์„ ํด๋ฆญ ์‹œ, ์ง€๋„์— ๋Ÿฌ๋‹ ๊ฒฝ๋กœ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.
  • [๋Ÿฌ๋‹ ๊ธฐ๋ก ํด๋ฆญ ์‹œ] : ๋Ÿฌ๋‹ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.

10. ํŒ”๋กœ์šฐ ๋ชฉ๋ก

10-1. ํŒ”๋กœ์šฐ ๋ชฉ๋ก ์กฐํšŒ

  • [ํŒ”๋กœ์šฐ ๋ชฉ๋ก ์กฐํšŒ] : ํŒ”๋กœ์›Œ์˜ ๊ฐ„๋‹จํ•œ ์ •๋ณด์™€, ๋งํ’์„  ์•„์ด์ฝ˜์„ ํด๋ฆญ ์‹œ ์ผ๋Œ€์ผ ์ฑ„ํŒ…์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ, ์—‘์Šค ์•„์ด์ฝ˜์„ ํด๋ฆญ ์‹œ ํŒ”๋กœ์šฐ๋ฅผ ์ทจ์†Œํ•œ๋‹ค.

11. ์œ ์ € ์ •๋ณด ์ˆ˜์ •

11-1. ์œ ์ € ์ •๋ณด ์ˆ˜์ •

  • [์œ ์ € ์ •๋ณด ์ˆ˜์ •] : ์œ ์ € ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํƒˆํ‡ดํ•œ๋‹ค.
  • [์œ ์ € ํ”„๋กœํ•„ ์ˆ˜์ •] : ์œ ์ € ํ”„๋กœํ•„์„ ์ˆ˜์ •ํ•œ๋‹ค.

๐Ÿ“† ์ผ์ •

์ผ์ •

๐Ÿ‘ค ์ €์ž

๐Ÿ“ƒ ๋ผ์ด์„ผ์Šค

Copyright (c) 2015 Juns Alen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.