Git Product home page Git Product logo

diseasesns's Introduction

๐Ÿ“ขํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

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

๐Ÿ˜ ํŒ€์› ์†Œ๊ฐœ

ํŒ€์žฅ : ๊ฐ•์„ธ์‘

CTO : ๊น€์ง€ํ˜„

Frontend ์žฅ : ์กฐ์žฌ๋นˆ

Backend ์žฅ: ๊น€์žฌํ˜„

Backend Ace : ์ฑ„์ง€์€

โŒ› ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์ผ์ •

๐Ÿค Branch Rule

  • Git Branch ์ „๋žต
    • master -> develop -> feature/(๊ธฐ๋Šฅ ์ด๋ฆ„)

      • ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ feature ์ƒ์„ฑ ํ›„ ์ž‘์—… -> develop์œผ๋กœ ๋ณ‘ํ•ฉ
      • ์™„์„ฑ๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ feature ๋ธŒ๋žœ์น˜๋Š” ์ž‘์—… ์™„๋ฃŒ ํ›„ ์‚ญ์ œ
    • Commit Rule : [๋ธŒ๋žœ์น˜๋ช…]์ปค๋ฐ‹ ๋‚ด์šฉ | JIRA์ด์Šˆ ID ex)[develop] : [๋ธŒ๋žœ์น˜๋ช…] ์ปค๋ฐ‹ ๋‚ด์šฉ | JIRA์ด์Šˆ ID

      • JIRA๋ฒˆํ˜ธ ๋งˆ์ง€๋ง‰์—

      • ๋งˆ์นจํ‘œ X

      • ์˜์–ด๋งŒ ์‚ฌ์šฉ

      • ๋ธŒ๋žœ์น˜๋ช…: ๋ชจ๋‘ ์†Œ๋ฌธ์ž

      • ์ปค๋ฐ‹๋‚ด์šฉ : ์ฒซ ๊ธ€์ž๋งŒ ๋Œ€๋ฌธ์ž, ๋ช…๋ น๋ฌธ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ

โœ Ground Rule

  • 1์ผ 1 commit

  • 1์ฃผ 1 merge request

  • merge ํ›„ ๋ธŒ๋žœ์น˜ ์ง€์šฐ๊ธฐ

๐Ÿ›  ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

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

NPM ์‚ฌ์šฉ์„ ์œ„ํ•œ Node.js ์„ค์น˜

Node.js ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ์—”์ง„(์ปดํŒŒ์ผ๋Ÿฌ + ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋“ฑ)

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์—์„œ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

  • node.js ์„ค์น˜ํ•˜๊ธฐ (LTS ๋ฒ„์ „ ๊ถŒ์žฅ)

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฐฝ์—์„œ node -v, npm -v ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ ํ™•์ธ

Yarn ์„ค์น˜

๋นŒ๋“œ ์†๋„๊ฐ€ ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ตœ๊ทผ ํ™œ์šฉ๋„๊ฐ€ ๋†’๋‹ค.

Vue.js, Vue-cli ์„ค์น˜

Vue ํ”„๋กœ์ ํŠธ์˜ Vue-cli ๋ฅผ ์ด์šฉํ•  ๊ฒฝ์šฐ Webpack, Eslint, ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๋“ฑ์˜ ์„ค์ •์ด ์ž๋™์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์†์‰ฝ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฐฝ์—์„œ yarn global add @vue/cli ์ž…๋ ฅ

  • vue --version ์ž…๋ ฅํ•˜์—ฌ ์„ค์น˜ ํ™•์ธ

(์ฐธ๊ณ ) vue create example ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

Sass ์„ค์ •

Webpack์—์„œ Sass ๋ฅผ Css๋กœ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด node-sass ์™€ sass-loader ๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

  • yarn add node-sass sass-loader
Vue-route, Vuex ์„ค์น˜
  • yarn add vue-router vuex

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

Spring Boot ์„ค์น˜

๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ์„ ์œ„ํ•ด Spriong Boot ๋ฅผ ์ด์šฉํ•œ๋‹ค.

  • Spring ์‚ฌ์šฉ์„ ์œ„ํ•œ JDK ์„ค์น˜

    OpenJDK ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ์••์ถ• ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ณ  ์••์ถ• ํ•ด์ œ ํ›„ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์–ตํ•œ๋‹ค.

  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

    [๋‚ด ์ปดํ“จํ„ฐ - ์†์„ฑ] -> [๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ •] -> [ํ™˜๊ฒฝ ๋ณ€์ˆ˜] -> [์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ]

    • ๋ณ€์ˆ˜ ์ด๋ฆ„: JAVA_HOME
    • ๋ณ€์ˆ˜ ๊ฐ’: {ํ•ด๋‹น ๊ฒฝ๋กœ}

    Path ํŽธ์ง‘ -> ๋ณ€์ˆ˜ ๊ฐ’์— %JAVA_HOME%\bin ์ถ”๊ฐ€

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ -> java -version ์„ค์น˜ ํ™•์ธ

  • Maven ์„ค์น˜

  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

    • ๋ณ€์ˆ˜ ์ด๋ฆ„: MAVEN_HOME
    • ๋ณ€์ˆ˜ ๊ฐ’: {ํ•ด๋‹น ๊ฒฝ๋กœ}

    Path ํŽธ์ง‘ -> ๋ณ€์ˆ˜ ๊ฐ’์— %MAVEN_HOME%\bin ์ถ”๊ฐ€

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ -> mvn -v ์„ค์น˜ ํ™•์ธ

  • VScode ์„ค์น˜

    • Spring Boot Extension Pack ์„ค์น˜
    • ctrl + shift + P -> Spring Initializer:Generate Maven Project ์‹คํ–‰
      • Project Language: Java
      • Spring Boot Version: 2.2.2
      • Dependency: Lombok, Spring Web ์„ ํƒ
Docker ๊ธฐ๋ฐ˜์˜ MariaDB ๊ตฌ์„ฑ
  • Docker ์„ค์น˜

  • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ Docker -v ์„ค์น˜ ํ™•์ธ

  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ: docker run --name {db์ด๋ฆ„} -p {port}:{port} -e MYSQL_ROOT_PASSWORD={password} -d mariadb

  • ์ธ์Šคํ„ด์Šค ์‹คํ–‰: docker exec -it {db์ด๋ฆ„} mysql -u root -p

  • docker exec -i {db์ด๋ฆ„} mysql -uroot -p{password} --database={schema ์ด๋ฆ„} < {OOO.sql}

  • MariaDB ์—ฐ๊ฒฐ

    • pom.xml ์— ์•„๋ž˜ ๊ตฌ๋ฌธ ์ถ”๊ฐ€

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <scope>runtime</scope>
      </dependency>
    • application.properties ์— ์•„๋ž˜ ๊ตฌ๋ฌธ ์ถ”๊ฐ€

      spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
      spring.datasource.url=jdbc:mysql://localhost:3306/{DB๋ช…}?autoReconnect=true&useUnicode=true&characterEncoding=utf8
      spring.datasource.username=root
      spring.datasource.password={๋น„๋ฐ€๋ฒˆํ˜ธ}

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

๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MariaDB ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

Intellij๋ฅผ ์‚ฌ์šฉํ•ด BackEnd ์ž‘์—…

VS CODE ์‚ฌ์šฉํ•˜์—ฌ FrontEnd ์ž‘์—…

AWS ํ™œ์šฉํ•œ ์„œ๋ฒ„ ์—ฐ๋™

Docker ๋ช…๋ น์–ด ์ •๋ฆฌ

๋ช…๋ น์–ด ๋‚ด์šฉ
๋ฒ„์ „ ํ™•์ธ Docker -v
์ธ์Šคํ„ด์Šค ์ƒ์„ฑ docker run --name {db์ด๋ฆ„} -p {port}:{port} -e MYSQL_ROOT_PASSWORD={password} -d mariadb
์ธ์Šคํ„ด์Šค ์‹คํ–‰ docker exec -it {db์ด๋ฆ„} mysql -u root -p

FrontEnd ๋ช…๋ น์–ด ์ •๋ฆฌ

  • ๋ช…๋ น์–ด๋Š” Node.js์™€ Vue.js๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค
๋ช…๋ น์–ด ๋‚ด์šฉ
yarn install Node Modules์— ์žˆ๋Š” ๋‚ด์šฉ๋“ค install
yarn serve --port 3000 port๋ฒˆํ˜ธ 3000์—์„œ ๋กœ์ปฌ ์„œ๋ฒ„ ์‹คํ–‰

AWS ์„œ๋ฒ„ ๋ช…๋ น์–ด ์ •๋ฆฌ

๋ช…๋ น์–ด ๋‚ด์šฉ
ssh -i I3A301T.pem [email protected] ํ‚ค I3A301T.pem์„ ๊ฐ€์ง€๊ณ  AWS ์„œ๋ฒ„์— ์ ‘์†
sudo java -jar test/THISIS-0.0.3.jar AWS ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ์Šคํ”„๋ง ์„œ๋ฒ„ ์‹คํ–‰
(backend ํด๋”์—์„œ) mvn package ๋ฐฑ์—”๋“œ ์Šคํ”„๋ง ์„œ๋ฒ„ ๋นŒ๋“œ
pm2 restart War2 ์„œ๋ฒ„์— ๋ฐฑ์—”๋“œ ๋นŒ๋“œ ํŒŒ์ผ ๋ฐ˜์˜
(frontend ํด๋”์—์„œ) npm run buile ํ”„๋ก ํŠธ์—”๋“œ ๋ทฐ ๋ฐฐํฌ

DB sql๋ฌธ ์„ค์ •

ํšŒ์› ํ…Œ์ด๋ธ”
create table UserInfo(
  user_id      int primary key auto_increment,   
  username      varchar(45),      
  nickname        varchar(45) ,         
  email         varchar(45) ,         
  password         varchar(45),      
  introduction      varchar(200)         
);
์ธ์ฆ ํ…Œ์ด๋ธ”
drop table IF EXISTS `THISIS`.`auth`;
CREATE TABLE  `THISIS`.`auth` (
  `user_id` INT NOT NULL,
  `refresh_token` VARCHAR(500) NULL,
  `access_token` VARCHAR(500) NULL,
  PRIMARY KEY (`user_id`))
ENGINE = InnoDB;
์•Œ๋žŒ/์š”์ฒญ ํ…Œ์ด๋ธ”
create table notification(
  `id` int primary key auto_increment,
  `follower_id` int,
  `followee_id` int,
  `newtofollower` int,
  `newtofollowee` int,
  `approval` int,
  `time`  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
๊ฒŒ์‹œ๊ธ€ ํ…Œ์ด๋ธ”
CREATE TABLE IF NOT EXISTS `THISIS`.`posts` (
  `posts_id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `posts_title` TEXT NULL,
  `posts_main` TEXT NULL,
  `health_count` INT NULL,
  `notification_id` VARCHAR(45) NULL,
  `post_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
  `nickname` VARCHAR(20) NULL,   
  PRIMARY KEY (`posts_id`))
ENGINE = InnoDB;
๋Œ“๊ธ€ ํ…Œ์ด๋ธ”
CREATE TABLE IF NOT EXISTS `THISIS`.`comment` (
  `user_id` INT NOT NULL,
  `posts_id` INT NOT NULL,
  `user_nickname` VARCHAR(45) NULL,
  `comment_main` TEXT NULL,
  `hide` TINYINT(1) NULL,
  `comment_id` INT NOT NULL AUTO_INCREMENT,
  `comment_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`comment_id`))
ENGINE = InnoDB
COMMENT = '   ';
ํŒ”๋กœ์›Œ/ํŒ”๋กœ์ž‰ ํ…Œ์ด๋ธ”
drop table IF EXISTS `THISIS`.`followers_following` ;
CREATE TABLE IF NOT EXISTS `THISIS`.`followers_following` (
  `follower` INT NOT NULL,
  `followee` INT NOT NULL,
  PRIMARY KEY (`follower`, `followee`))
ENGINE = InnoDB;
๊ฑด๊ฐ•ํ•ด์š” ํ…Œ์ด๋ธ”
drop table IF EXISTS `THISIS`.`health` ;
CREATE TABLE IF NOT EXISTS `THISIS`.`health` (
  `posts_id` INT NOT NULL,
  `user_id` INT NOT NULL,
  `nickname` VARCHAR(20) NULL,
  PRIMARY KEY (`posts_id`, `user_id`))
ENGINE = InnoDB;

์Šคํฌ๋žฉ ํ…Œ์ด๋ธ”

drop table IF EXISTS `THISIS`.`scrap` ;
CREATE TABLE IF NOT EXISTS `THISIS`.`scrap` (
  `user_id` INT NOT NULL,
  `posts_id` INT NOT NULL,
  PRIMARY KEY (`user_id`, `posts_id`),
  CONSTRAINT `fk_scrap_userinfo1`
    FOREIGN KEY (`user_id`)
    REFERENCES `THISIS`.`Userinfo` (`user_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `fk_scrap_posts`
    FOREIGN KEY (`posts_id`)
    REFERENCES `THISIS`.`posts` (`posts_id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;

Rest API

Task URL Method Action
ํšŒ์›์ƒ์„ธ์ •๋ณด /account/{user_id} GET ํ•ด๋‹น user_id ํšŒ์› ์ •๋ณด ์กฐํšŒ
ํšŒ์›๊ฐ€์ž… /account/signup POST ํšŒ์› ๊ฐ€์ž…
๋กœ๊ทธ์ธ /account/login POST ๋กœ๊ทธ์ธ
ํšŒ์›์ •๋ณด ๋ณ€๊ฒฝ /account/{user_id} PUT ํšŒ์›์ •๋ณด ๋ณ€๊ฒฝ
ํšŒ์› ํƒˆํ‡ด /account/{user_id} DELETE ํ•ด๋‹น user_id ํšŒ์› ์ •๋ณด ์‚ญ์ œ
์ด๋ฉ”์ผ ์ค‘๋ณต ํ…Œ์ŠคํŠธ /account/email GET ์ด๋ฉ”์ผ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•จ
๋‹‰๋„ค์ž„ ์ค‘๋ณต ํ…Œ์ŠคํŠธ /account/nickname GET ๋‹‰๋„ค์ž„ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ํ…Œ์ŠคํŠธํ•จ
ํšŒ์› ๊ฒ€์ƒ‰ /account/search GET ๊ฒ€์ƒ‰์–ด์— ํ•ด๋‹นํ•˜๋Š” ํšŒ์› ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•จ
๋น„๋ฐ€๋ฒˆํ˜ธ์ฐพ๊ธฐ /email GET ์ด๋ฉ”์ผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„์คŒ
์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก /articles/ GET ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก /articles/{user_id} GET ๊ทธ ์œ ์ €์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก
๊ฒŒ์‹œ๊ธ€ ์ƒ์„ฑ /articles POST ์ƒˆ๋กœ์šด ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ฑ
๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • /articles/{posts_id} PUT ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ ์ˆ˜์ •(๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ, ๋‚ด์šฉ๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅ)
๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ /articles/{posts_id} DELETE ์ž‘์„ฑ์ž๊ฐ€ ์ž์‹ ์˜ ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ
๋Œ“๊ธ€ ๋ชฉ๋ก /comment/{post_id} GET ๊ฒŒ์‹œ๊ธ€์— ํ•ด๋‹นํ•˜๋Š” ๋Œ“๊ธ€๋“ค ๋ชฉ๋ก
๋Œ“๊ธ€ ์ƒ์„ฑ /comment POST ๋Œ“๊ธ€์„ ์ƒ์„ฑํ•จ
๋Œ“๊ธ€ ์ˆ˜์ • /comment/{comment_id} PUT ํ•ด๋‹น ๋Œ“๊ธ€์„ ์ˆ˜์ •ํ•จ
๋Œ“๊ธ€ ์‚ญ์ œ /comment/{comment_id} DELETE ํ•ด๋‹น ๋Œ“๊ธ€์„ ์‚ญ์ œํ•จ
๋Œ“๊ธ€ ์ˆจ๊น€ /comment/hidden/{comment_id} PUT ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ž๊ฐ€ ์š”์ฒญ ์‹œ ๋Œ“๊ธ€ ์ˆจ๊น€
ํŒ”๋กœ์ž‰ ๋ฆฌ์ŠคํŠธ /follow/followee/{user_id} GET ์œ ์ €๊ฐ€ ํŒ”๋กœ์ž‰ํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋…ธ์ถœ
ํŒ”๋กœ์›Œ ๋ฆฌ์ŠคํŠธ /follow/follower/{user_id} GET ์œ ์ €๋ฅผ ํŒ”๋กœ์›Œํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋…ธ์ถœ
ํŒ”๋กœ์ž‰ ์ˆ˜ ์ง‘๊ณ„ /follow/followee/sum/{user_id} GET ํ•ด๋‹น user_id๊ฐ€ ํŒ”๋กœ์šฐํ•˜๋Š” ์ด ํŒ”๋กœ์ž‰ ์ˆ˜ ์กฐํšŒ
ํŒ”๋กœ์›Œ ์ˆ˜ ์ง‘๊ณ„ /follow/follower/sum/{user_id} GET ํ•ด๋‹น user_id๋ฅผ ํŒ”๋กœ์šฐํ•˜๋Š” ์ด ํŒ”๋กœ์›Œ ์ˆ˜ ์กฐํšŒ
ํŒ”๋กœ์ž‰/ํŒ”๋กœ์›Œ ์ €์žฅ /follow POST ํŒ”๋กœ์šฐ ํŒ”๋กœ์›Œ ๊ด€๊ณ„ ์ €์žฅ
ํŒ”๋กœ์ž‰/ํŒ”๋กœ์›Œ ์‚ญ์ œ(์–ธํŒ”) /follow DELETE ํŒ”๋กœ์šฐ ํŒ”๋กœ์›Œ ๊ด€๊ณ„ ์‚ญ์ œ
์œ ์ € ์ด ๊ฑด๊ฐ•ํ•ด์š” ์ˆ˜ ์กฐํšŒ health/user/{user_id} GET ํ”„๋กœํ•„์— ๋‚˜์˜ค๋Š” user ์ด ์ข‹์•„์š” ์ˆ˜ ์ง‘๊ณ„
๊ฑด๊ฐ•ํ•ด์š” ์ทจ์†Œ health/{posts_id}/{user_id} DELETE ์œ ์ €๊ฐ€ ๊ฑด๊ฐ•ํ•ด์š”๋ฅผ ์ทจ์†Œํ–ˆ์„๋•Œ record ์‚ญ์ œ
์Šคํฌ๋žฉ ์กฐํšŒ scrap/{user_id} GET ์œ ์ € ์•„์ด๋””์— ํ•ด๋‹นํ•˜๋Š” ์Šคํฌ๋žฉ ์กฐํšŒ
์Šคํฌ๋žฉ ์ƒ์„ฑ scrap POST ์Šคํฌ๋žฉ ์ƒ์„ฑ
์Šคํฌ๋žฉ ์‚ญ์ œ scrap/{posts_id, user_id} DELETE ํ•ด๋‹น ์Šคํฌ๋žฉ ์‚ญ์ œ

Browser Support

latestโœ” latestโœ” latestโœ”

๐Ÿ‘€ ์„œ๋น„์Šค ์„ค๋ช…

๋กœ๋”ฉ ํ™”๋ฉด - ๋กœ๊ทธ์ธ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ์ฒ˜์Œ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€

๋กœ๊ทธ์ธ ํ™”๋ฉด - ์ €์žฅ๋œ ๊ณ„์ •์„ ๊ฐ€์ง€๊ณ  ์ด๋ฉ”์ผ๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ํŽ˜์ด์ง€

๊ฒ€์ƒ‰ ํ™”๋ฉด - ์‚ฌ์šฉ์ž์™€ ์งˆ๋ณ‘์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์œผ๋กœ ๋ˆ„๋ฅผ ์‹œ ์ƒ๋Œ€๋ฐฉ ํ”„๋กœํ•„์— ๋“ค์–ด๊ฐ€์ง

๋ฉ”์ธ ํ”ผ๋“œ - ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€๋“ค์„ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์œผ๋กœ ๊ฑด๊ฐ•ํ•ด์š”, ๋Œ“๊ธ€, ์Šคํฌ๋žฉ, (์ž์‹ ์˜ ๊ฒŒ์‹œ๊ธ€์ผ ๊ฒฝ์šฐ) ์ˆ˜์ • ๊ฐ€๋Šฅ

๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ - ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์œผ๋กœ ์ž์‹ ์˜ ๊ณ„์ •์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค

์•Œ๋ฆผ ์š”์ฒญ - ํŒ”๋กœ์ž‰์„ ํ–ˆ์„ ๊ฒฝ์šฐ & ํŒ”๋กœ์ž‰ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ค„ ๋•Œ ์•Œ๋žŒ์—์„œ ํŒ”๋กœ์ž‰์„ ๋ฐ›์•˜์„ ๋•Œ๋Š” ์š”์ฒญํƒญ์œผ๋กœ ์š”์ฒญ์ด ์™€์„œ ์Šน๋‚™ ํ˜น์€ ๊ฑฐ์ ˆ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

๋ฉ”์ธ ํ”„๋กœํ•„ ํ™”๋ฉด - ๋ฉ”์ธ ํ”„๋กœํ•„ ํ™”๋ฉด์œผ๋กœ ๋‚ด ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์œผ๋กœ ๋‚ด๊ฐ€ ์“ด ๊ฒŒ์‹œ๊ธ€, ๋‚˜์˜ ์Šคํฌ๋žฉ ๋“ฑ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ช๊ธฐ์—ฌ ๋ฐฉ๋ฒ•

๊ณ ๋ ค ์‚ฌํ•ญ

  • ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์€ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ์‹คํ–‰ํ•ด์•ผํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๋‚˜ ์„ค์ •ํ•ด์•ผ ํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๋‹จ๊ณ„๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
  • AWS ์„œ๋ฒ„์˜ ์ž‘๋™ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

Git Rules

  • git pull origin develop๋ฅผ ํ†ตํ•ด develop์™€ ๋จผ์ € merge ํ•œ ์ƒํƒœ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • git status๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ๋œ ์ ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
  • git add ๋ฅผ ํ†ตํ•ด์„œ ๋ณ€๊ฒฝ์„ ์ฃผ๊ณ  ์‹ถ์€ ์ ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • git commit -m "์ง€๋ผ๋ฒˆํ˜ธ" ๋ฅผ ํ†ตํ•ด์„œ ๊ฐ ์ง€๋ผ์— ๋“ฑ๋ก์„ ํ•ด์„œ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
  • git push origin feature/"๊ฐœ๋ฐœ ๊ธฐ๋Šฅ"๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋Šฅ๊ธฐ๋ฆฌ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • git bash์—์„œ merge request๋ฅผ ์‹ ์ฒญํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“œLicense

๋ณธ ๊ฐ€์ด๋“œ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค

  • ๊ณต์œ  - ๋ณต์ œ, ๋ฐฐํฌ, ํฌ๋งท ๋ณ€๊ฒฝ, ์ „์†ก, ์ „์‹œ, ๊ณต์—ฐ, ๋ฐฉ์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ - ๋ฆฌ๋ฏน์Šค, ๋ณ€ํ˜•, 2์ฐจ์  ์ €์ž‘๋ฌผ ์ž‘์„ฑ ๋ฐ ์˜๋ฆฌ๋ชฉ์ ์˜ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

diseasesns's People

Contributors

kimjaehyun94 avatar

Watchers

 avatar

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.