์ง๋ณ์ ์๋ฏธํ๋ Disease์์ ๋น์ทํ ๋ฐ์์ธ THISIS๋ก ํ๋ก์ ํธ ์ด๋ฆ์ ์ ํ์์ต๋๋ค. ํ์๋ค๋ผ๋ฆฌ ๋ถ์กฑํ ์ ๋ณด๋ค์ ์ป๊ธฐ ์ํ ๋ชฉ์ ์ ์๋ ์ง๋ณ SNS๋ก์จ ์ญํ ์ ํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ฅผ ์งํํ๊ฒ ๋์์ต๋๋ค. ํ์๊ฐ์ , ๋ก๊ทธ์ธ, ์ ์ ํ๋ก์ฐ ๋ฑ ๋ช ์ธ์ ๊ธฐ๋ฐ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋ฐํ์ผ๋ก ํด ์ค์ง์ ์ผ๋ก ์ ์ฉํ ์ง๋ณ ๊ด๋ฆฌ SNS๋ฅผ ์ถ๊ตฌํฉ๋๋ค.
- Git Branch ์ ๋ต
-
master -> develop -> feature/(๊ธฐ๋ฅ ์ด๋ฆ)
- ๊ธฐ๋ฅ ๋จ์๋ก feature ์์ฑ ํ ์์ -> develop์ผ๋ก ๋ณํฉ
- ์์ฑ๋ ๊ธฐ๋ฅ์ ๋ํ feature ๋ธ๋์น๋ ์์ ์๋ฃ ํ ์ญ์
-
Commit Rule : [๋ธ๋์น๋ช ]์ปค๋ฐ ๋ด์ฉ | JIRA์ด์ ID ex)[develop] : [๋ธ๋์น๋ช ] ์ปค๋ฐ ๋ด์ฉ | JIRA์ด์ ID
-
- JIRA๋ฒํธ ๋ง์ง๋ง์
- ๋ง์นจํ X
- ์์ด๋ง ์ฌ์ฉ
- ๋ธ๋์น๋ช : ๋ชจ๋ ์๋ฌธ์
- ์ปค๋ฐ๋ด์ฉ : ์ฒซ ๊ธ์๋ง ๋๋ฌธ์, ๋ช ๋ น๋ฌธ ํ์์ผ๋ก ์์ฑ
-
1์ผ 1 commit
-
1์ฃผ 1 merge request
-
merge ํ ๋ธ๋์น ์ง์ฐ๊ธฐ
Node.js ๋ ์คํ์์ค ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ์์ง(์ปดํ์ผ๋ฌ + ์ธํฐํ๋ฆฌํฐ ๋ฑ)
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ํ๊ฒฝ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
-
node.js ์ค์นํ๊ธฐ (LTS ๋ฒ์ ๊ถ์ฅ)
-
๋ช ๋ น ํ๋กฌํํธ ์ฐฝ์์
node -v
,npm -v
์ ๋ ฅํ์ฌ ์ค์น ํ์ธ
๋น๋ ์๋๊ฐ ๋ณด๋ค ๋น ๋ฅด๊ณ ์ต๊ทผ ํ์ฉ๋๊ฐ ๋๋ค.
-
๋ช ๋ น ํ๋กฌํํธ ์ฐฝ์์
yarn -v
์ ๋ ฅํ์ฌ ์ค์น ํ์ธ
Vue ํ๋ก์ ํธ์ Vue-cli ๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ Webpack, Eslint, ๊ฐ๋ฐ ์๋ฒ ๋ฑ์ ์ค์ ์ด ์๋์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ฝ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
-
๋ช ๋ น ํ๋กฌํํธ ์ฐฝ์์
yarn global add @vue/cli
์ ๋ ฅ -
vue --version
์ ๋ ฅํ์ฌ ์ค์น ํ์ธ
(์ฐธ๊ณ ) vue create example
๋ฅผ ์
๋ ฅํ์ฌ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์๋ค.
Webpack์์ Sass ๋ฅผ Css๋ก ์ปดํ์ผํ๊ธฐ ์ํด node-sass ์ sass-loader ๋ฅผ ์ค์นํ๋ค.
yarn add node-sass sass-loader
yarn add vue-router vuex
๊ฐ๋จํ ๊ตฌ์ฑ์ ์ํด Spriong Boot ๋ฅผ ์ด์ฉํ๋ค.
-
Spring ์ฌ์ฉ์ ์ํ JDK ์ค์น
OpenJDK ๊ณต์ ์น์ฌ์ดํธ์์ ์์ถ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ๊ณ ์์ถ ํด์ ํ ํด๋น ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ตํ๋ค.
-
ํ๊ฒฝ ๋ณ์ ์ค์
[๋ด ์ปดํจํฐ - ์์ฑ] -> [๊ณ ๊ธ ์์คํ ์ค์ ] -> [ํ๊ฒฝ ๋ณ์] -> [์๋ก ๋ง๋ค๊ธฐ]
- ๋ณ์ ์ด๋ฆ:
JAVA_HOME
- ๋ณ์ ๊ฐ:
{ํด๋น ๊ฒฝ๋ก}
Path ํธ์ง -> ๋ณ์ ๊ฐ์
%JAVA_HOME%\bin
์ถ๊ฐ - ๋ณ์ ์ด๋ฆ:
-
๋ช ๋ น ํ๋กฌํํธ ->
java -version
์ค์น ํ์ธ -
ํ๊ฒฝ ๋ณ์ ์ค์
- ๋ณ์ ์ด๋ฆ:
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 ์ค์น
-
๋ช ๋ น ํ๋กฌํํธ
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={๋น๋ฐ๋ฒํธ}
-
๋์ปค๋ฅผ ์ฌ์ฉํ์ฌ MariaDB ์ธ์คํด์ค ์์ฑ
STS๋ฅผ ์ฌ์ฉํด BackEnd ์์
VS CODE ์ฌ์ฉํ์ฌ FrontEnd ์์
๋ช ๋ น์ด | ๋ด์ฉ |
---|---|
๋ฒ์ ํ์ธ | Docker -v |
์ธ์คํด์ค ์์ฑ | docker run --name {db์ด๋ฆ} -p {port}:{port} -e MYSQL_ROOT_PASSWORD={password} -d mariadb |
์ธ์คํด์ค ์คํ | docker exec -it {db์ด๋ฆ} mysql -u root -p |
- ๋ช ๋ น์ด๋ Node.js์ Vue.js๊ฐ ์ค์น๋์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค
๋ช ๋ น์ด | ๋ด์ฉ |
---|---|
yarn install | Node Modules์ ์๋ ๋ด์ฉ๋ค install |
yarn serve --port 3000 | port๋ฒํธ 3000์์ ๋ก์ปฌ ์๋ฒ ์คํ |
๋ช ๋ น์ด | ๋ด์ฉ |
---|---|
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 | ํ๋ก ํธ์๋ ๋ทฐ ๋ฐฐํฌ |
drop table IF EXISTS `THISIS`.`Userinfo`;
CREATE TABLE IF NOT EXISTS `THISIS`.`UserInfo` (
`user_id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(45) NOT NULL,
`nickname` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(150) NOT NULL,
`introduction` VARCHAR(300) NULL,
`userimage` VARCHAR(300) NULL,
`role` VARCHAR(10) DEFAULT "user",
`disabled` INT DEFAULT 0,
`salt` VARCHAR(100) NULL,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `email_UNIQUE` (`email` ASC) VISIBLE,
UNIQUE INDEX `nickname_UNIQUE` (`nickname` ASC) VISIBLE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`auth`;
CREATE TABLE IF NOT EXISTS `THISIS`.`auth` (
`user_id` INT NOT NULL,
`refresh_token` VARCHAR(700) NULL,
`access_token` VARCHAR(700) NULL,
PRIMARY KEY (`user_id`),
CONSTRAINT `fk_auth_userinfo`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`notification`;
CREATE TABLE IF NOT EXISTS `THISIS`.`notification` (
`id` INT NOT NULL AUTO_INCREMENT,
`newtofollower` INT NOT NULL,
`newtofollowee` INT NOT NULL,
`approval` INT NOT NULL,
`time` TIMESTAMP NOT NULL,
`follower_id` INT NOT NULL,
`followee_id` INT NOT NULL,
PRIMARY KEY (`id`, `follower_id`, `followee_id`),
CONSTRAINT `fk_notification_userinfo1`
FOREIGN KEY (`follower_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_notification_userinfo2`
FOREIGN KEY (`followee_id`)
REFERENCES `THISIS`.`UserInfo` ( `user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE
)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`post`;
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,
`post_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
`category` INT NULL,
`diseasecode` VARCHAR(45) NULL,
`imgsrc` VARCHAR(300) NULL,
`hidden` INT DEFAULT 0,
PRIMARY KEY (`posts_id`),
CONSTRAINT `fk_posts_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE
)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`comment`;
CREATE TABLE IF NOT EXISTS `THISIS`.`comment` (
`posts_id` INT NOT NULL,
`comment_main` TEXT NULL,
`hide` TINYINT(1) NULL,
`comment_id` INT NOT NULL AUTO_INCREMENT,
`comment_date` DATETIME DEFAULT CURRENT_TIMESTAMP,
`user_id` INT NOT NULL,
PRIMARY KEY (`comment_id`),
CONSTRAINT `fk_comment_posts`
FOREIGN KEY (`posts_id`)
REFERENCES `THISIS`.`posts` (`posts_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_comment_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
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`),
CONSTRAINT `fk_follower_followering_userinfo1`
FOREIGN KEY (`follower`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_follower_followering_userinfo2`
FOREIGN KEY (`followee`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE
)
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,
PRIMARY KEY (`posts_id`, `user_id`),
CONSTRAINT `fk_health_posts1`
FOREIGN KEY (`posts_id`)
REFERENCES `THISIS`.`posts` (`posts_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_health_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
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;
drop table IF EXISTS `THISIS`.`subscribe`;
CREATE TABLE IF NOT EXISTS `THISIS`.`subscribe` (
`diseasecode` VARCHAR(45) NOT NULL,
`user_id` INT NOT NULL,
PRIMARY KEY (`user_id`, `diseasecode`),
CONSTRAINT `fk_subscribe_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`subscribe`;
CREATE TABLE `THISIS`.`subscribe` (
`user_id` INT NOT NULL,
`diseasecode` VARCHAR(45) NULL,
PRIMARY KEY (`user_id`, `diseasecode`))
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`tag`;
CREATE TABLE IF NOT EXISTS `THISIS`.`tag` (
`tagid` INT NOT NULL AUTO_INCREMENT,
`tagname` VARCHAR(45) NULL,
PRIMARY KEY (`tagid`))
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`tag_relation`;
CREATE TABLE IF NOT EXISTS `THISIS`.`tag_relation` (
`tagid` INT NOT NULL,
`posts_id` INT NOT NULL,
PRIMARY KEY (`tagid`, `posts_id`),
CONSTRAINT `fk_tag_has_posts_tag1`
FOREIGN KEY (`tagid`)
REFERENCES `THISIS`.`tag` (`tagid`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_tag_has_posts_posts1`
FOREIGN KEY (`posts_id`)
REFERENCES `THISIS`.`posts` (`posts_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`comment_health`;
CREATE TABLE IF NOT EXISTS `THISIS`.`comment_health` (
`comment_id` INT NOT NULL,
`user_id` INT NOT NULL,
PRIMARY KEY (`comment_id`, `user_id`),
CONSTRAINT `fk_comment_health_comment1`
FOREIGN KEY (`comment_id`)
REFERENCES `THISIS`.`comment` (`comment_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_comment_health_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`police`;
CREATE TABLE IF NOT EXISTS `THISIS`.`police` (
`posts_id` INT NOT NULL,
`user_id` INT NOT NULL,
`reason` VARCHAR(100) NULL,
`police_id` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`police_id`),
CONSTRAINT `fk_police_posts1`
FOREIGN KEY (`posts_id`)
REFERENCES `THISIS`.`posts` (`posts_id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_police_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
drop table IF EXISTS `THISIS`.`doctor`;
CREATE TABLE IF NOT EXISTS `THISIS`.`doctor` (
`user_id` INT NOT NULL,
`doctorimg` VARCHAR(45) NULL,
`doctorauth` VARCHAR(45) NULL,
`doctor_id` INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`doctor_id`),
CONSTRAINT `fk_doctor_userinfo1`
FOREIGN KEY (`user_id`)
REFERENCES `THISIS`.`UserInfo` (`user_id`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
Category | Task | Method | Path |
---|---|---|---|
๊ฒ์๋ฌผ | ๋ชจ๋ ๊ฒ์๊ธ ์กฐํ | GET | /articles |
๊ฒ์๋ฌผ | ๊ฒ์๊ธ ์์ฑ | POST | /articles |
๊ฒ์๋ฌผ | ๊ฒ์๊ธ ์์ | PUT | /articles/{posts_id} |
๊ฒ์๋ฌผ | ๊ฒ์๊ธ ์ญ์ | DELETE | /articles/{posts_id} |
๊ฒ์๋ฌผ | ์ ์ ์ ํด๋นํ๋ ๋ชจ๋ ๊ฒ์๊ธ ๋ฐํ | GET | /articles/{user_id} |
๊ฒ์๋ฌผ | user_id ์ธ์์ ํด๋นํ๋ ๊ฒ์ํ ๋ชฉ๋ก๋ฅผ ๋ฐํํ๋ค. | GET | /articles/new |
๊ฒ์๋ฌผ | ๊ฒ์๊ธ ์์ฑ : ํ๊ทธํฌํจ | POST | /articles/new |
๊ฒ์๋ฌผ | ํ์ผ์ ์ ๋ ฅํ๋ค. | POST | /articles/upload |
์ด๋ฉ์ผ | ์ด๋ฉ์ผ ์ฐพ๊ธฐ | GET | |
ํ๋ก์ฐ | ํ๋ก์ฐ ์์ฑ | POST | /follow |
ํ๋ก์ฐ | ํ๋ก์ฐ ์ญ์ | DELETE | /follow |
ํ๋ก์ฐ | ํ๋ก์ ์ ๋ณด ๋ฐํ | GET | /follow/followee/{user_id} |
ํ๋ก์ฐ | ํ๋ก์ ์ง๊ณ ์ ๋ณด ๋ฐํ | GET | /follow/followee/sum/{user_id} |
ํ๋ก์ฐ | ํ๋ก์ ์ ๋ณด ๋ฐํ | GET | /follow/follwer/{user_id} |
ํ๋ก์ฐ | ํ๋ก์ ์ง๊ณ ์ ๋ณด ๋ฐํ | GET | /follow/follower/sum/{user_id} |
์คํฌ๋ฉ | ํด๋นํ๋ ์คํฌ๋ฉ ์ ๋ฌด | GET | /scrap |
์คํฌ๋ฉ | ์คํฌ๋ฉ ์ถ๊ฐ | POST | /scrap |
์คํฌ๋ฉ | ์คํฌ๋ฉ ์ญ์ | DELETE | /scrap/{posts_id}/{user_id} |
์คํฌ๋ฉ | ์คํฌ๋ฉ ๋ถ๋ฌ์ค๊ธฐ | GET | /scrap/{user_id} |
๊ฑด๊ฐํด์ | ๊ฑด๊ฐํด์ ์ถ๊ฐ | POST | /health/{posts_id} |
๊ฑด๊ฐํด์ | ์ฌ๋์ ํด๋นํ๋ ๊ฑด๊ฐํด์ ๋ฐํ | GET | /health/{user_id} |
๊ฑด๊ฐํด์ | ๊ฒ์๊ธ์ ํด๋นํ๋ ๊ฑด๊ฐํด์ ์ ๋ฐํ | GET | /health/post/{posts_id} |
๊ฑด๊ฐํด์ | ์ฌ๋์ ํด๋นํ๋ ๊ฑด๊ฐํด์ ์ ๋ฐํ | GET | /health/user/{user_id} |
์๋/์์ฒญ | ๋ชจ๋ ์๋/์์ฒญ์ ๋ฐํํ๋ค | GET | /notification |
์๋/์์ฒญ | ํ๋ก์ฐ๋ฅผ ์์ฒญํ์ ๋ ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๋ค | POST | /notification |
์๋/์์ฒญ | ํด๋น id์ ํด๋นํ๋ ์๋ฆผ/์์ฒญ ์ ๋ณด ์์ | PUT | /notification |
์๋/์์ฒญ | ํ๋ก์ฐ ์์ฒญ ์ทจ์ ์ ๋ ์ฝ๋ ์ญ์ | DELETE | /notification |
์๋/์์ฒญ | ํด๋น user_id๊ฐ followee์ธ ๋ ์ฝ๋ ๋ชฉ๋ก ์กฐํ | GET | /notification/followee/{user_id} |
์๋/์์ฒญ | ํด๋น user_id๊ฐ follower์ธ ๋ ์ฝ๋ ๋ชฉ๋ก ์กฐํ | GET | /notification/follower/{user_id} |
๋๊ธ | ๋๊ธ ์์ฑ | POST | /comment |
๋๊ธ | ๋๊ธ ์์ | PUT | /comment/{comment_id} |
๋๊ธ | ๋๊ธ ์ญ์ | DELETE | /comment/{comment_id} |
๋๊ธ | ๊ฒ์ํ์ ํด๋นํ๋ ๋๊ธ๋ค์ ๋ฐํ | GET | /comment/{posts_id} |
๋๊ธ | ์จ๊น ์ค์ | PUT | /comment/hidden/{comment_id} |
ํ์๊ด๋ฆฌ | ๋ชจ๋ ํ์ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /account |
ํ์๊ด๋ฆฌ | ์ ์ ID์ ํด๋นํ๋ ํ์ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /account/{user_id} |
ํ์๊ด๋ฆฌ | ์ ์ ID์ ํด๋นํ๋ ํ์ ์ ๋ณด๋ฅผ ์์ ํ๋ค | PUT | /account/{user_id} |
ํ์๊ด๋ฆฌ | ํ์ ํํด ์ ํ์ ์ ๋ณด๋ฅผ ์ญ์ ํ๋ค | DELETE | /account/{user_id} |
ํ์๊ด๋ฆฌ | ์ด๋ฉ์ผ ์ค๋ณต ํ ์คํธ | GET | /account/email |
ํ์๊ด๋ฆฌ | ํ์ email๊ณผ password๋ก ๋ก๊ทธ์ธ ๊ฐ๋ฅ ์ฌ๋ถ | GET | /account/login |
ํ์๊ด๋ฆฌ | ๋๋ค์ ์ค๋ณต ํ ์คํธ | GET | /account/nickname |
ํ์๊ด๋ฆฌ | ์ ์ id์ ํด๋นํ๋ ํ๋กํ ์ ๋ณด๋ฅผ ๋ฐํ | GET | /account/profile/{user_id} |
ํ์๊ด๋ฆฌ | accesstoken ์ฌ์์ฑ ํ ์คํธ | POST | /account/refreshAccessToken |
ํ์๊ด๋ฆฌ | ๊ฒ์์์ด ํด๋นํ๋ ํ์ ์ ๋ณด ๋ฐํ | GET | /account/search |
ํ์๊ด๋ฆฌ | ์ ์ ํ์๊ฐ์ ์ ํ์ ์ ๋ณด ๋ฑ๋ก | POST | /account/signup |
ํ์๊ด๋ฆฌ | ์ด๋ฏธ์ง ์ฃผ์ ์ ๋ ฅ | POST | /account/upload |
ํ๊ทธ | ํ๊ทธ ์ถ๊ฐ | POST | /tag |
ํ๊ทธ | ํ๊ทธ ๋ถ๋ฌ์ค๊ธฐ | GET | /tag/{tagid} |
ํ๊ทธ | ํ๊ทธ ์ญ์ | DELETE | /tag/{tagid} |
ํ๊ทธ ๋ฆด๋ ์ด์ | ํ๊ทธ ๋ฆด๋ ์ด์ ์ถ๊ฐ | POST | /tag-relation |
ํ๊ทธ ๋ฆด๋ ์ด์ | ํ๊ทธ ๋ฆด๋ ์ด์ ์ญ์ | DELETE | /tag-relation/{tagid}/{posts_id} |
ํ๊ทธ ๋ฆด๋ ์ด์ | ํ๊ทธ ๋ฆด๋ ์ด์ ๋ถ๋ฌ์ค๊ธฐ(๊ฒ์๊ธ) | GET | /tag-relation/post/{posts_id} |
ํ๊ทธ ๋ฆด๋ ์ด์ | ํ๊ทธ ๋ฆด๋ ์ด์ ๋ถ๋ฌ์ค๊ธฐ(ํ๊ทธ) | GET | /tag-relation/tag/{tagid} |
๋๊ธ ๊ฑด๊ฐํด์ | ๋๊ธ ๊ฑด๊ฐํด์ ์ถ๊ฐ | POST | /comment-health/{comment_id} |
๋๊ธ ๊ฑด๊ฐํด์ | ์ฌ๋์ ํด๋นํ๋ ๋๊ธ ๊ฑด๊ฐํด์ ๋ฐํ | GET | /comment-health/{user_id} |
๋๊ธ ๊ฑด๊ฐํด์ | ๊ฒ์๊ธ์ ํด๋นํ๋ ๋๊ธ ๊ฑด๊ฐํด์ ์ ๋ฐํ | GET | /comment-health/comment/{comment_id} |
๋๊ธ ๊ฑด๊ฐํด์ | ์ฌ๋์ ํด๋นํ๋ ๋๊ธ ๊ฑด๊ฐํด์ ์ ๋ฐํ | GET | /comment-health/user/{user_id} |
์ง๋ณ ํ๊ทธ | ๋ชจ๋ ์ง๋ณ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /disease |
์ง๋ณ ํ๊ทธ | ์ง๋ณ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๋ค | POST | /disease |
์ง๋ณ ํ๊ทธ | ์ง๋ณ ์ ๋ณด๋ฅผ ์ญ์ ํ๋ค | DELETE | /disease |
์ง๋ณ ํ๊ทธ | ์ง๋ณ์ฝ๋์ ํด๋นํ๋ ์ง๋ณ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /disease/diseasecode |
๊ตฌ๋ ํ๊ธฐ | ๋ชจ๋ ๊ตฌ๋ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /subscribe |
๊ตฌ๋ ํ๊ธฐ | ์ ์ ์ ์ง๋ณ ๊ตฌ๋ ์ฌ๋ถ๋ฅผ ์ ์ฅํ๋ค | POST | /subscribe |
๊ตฌ๋ ํ๊ธฐ | ์ ์ ๊ฐ ์ง๋ณ ๊ตฌ๋ ์ ์ทจ์ํ๋ค | DELETE | /subscribe |
๊ตฌ๋ ํ๊ธฐ | ์ ์ ์์ด๋์ ํด๋นํ๋ ๊ตฌ๋ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค | GET | /subscribe/user |
์ ๊ณ ํ๊ธฐ | ์ ๊ณ ํ๋ค ์์ฑ | POST | /subscribe/user |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์ ๊ณ ๋ง์ด ๋ฐ์ ์์ผ๋ก ๊ฒ์๊ธ ๋ฐํ | POST | /admin/post |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๊ฒ์๊ธ ์จ๊น | POST | /admin/post/{posts_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๊ฒ์๊ธ ์ญ์ | DELETE | /admin/post/{posts_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์ ๊ณ ๋ง์ด ๋ฐ์ ์์ผ๋ก ์ ์ ๋ฐํ | POST | /admin/user |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๊ณ์ ์ฌ์ฉ์ ์ง | POST | /admin/user/disable |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์ ์ ๊ฐ ์ ๊ณ ๋ฐ์ ์๋ฅผ ๋ฐํํ๋ค. | GET | /admin/police/user/{user_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๊ฒ์๊ธ์ ํด๋นํ๋ ์ ๊ณ ํ๋ค ์๋ฅผ ๋ฐํํ๋ค | GET | /admin/police/post/{posts_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๊ฒ์๊ธ์ ํด๋นํ๋ ๋ชจ๋ ์ ๊ณ ํ๋ค๋ฅผ ๋ฐํ | GET | /admin/police/post/{posts_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์ ์ ์ ํด๋นํ๋ ๋ชจ๋ ์ ๊ณ ์๋ฃ๋ฅผ ๋ฐํํ๋ค | GET | /admin/police/users/{user_id} |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ๋ชจ๋ ์์ฌ๋ฅผ ๋ฐํํ๋ค | GET | /admin/doctor-auth |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์ฒดํฌํ์ง ์์ ์ฌ๋๋ค์ ๋ฐํํ๋ค | GET | /admin/doctor-auth/check |
๊ด๋ฆฌ์ ๊ธฐ๋ฅ | ์์ฌ ๊ฒฐ์ | PUT | /admin/doctor-auth |
์์ฌ์ ์ฒญ | ์์ฌ ์ ๋ณด๋ฅผ ์ ์ฒญํ๋ค | POST | /doctor/register |
์์ฌ์ ์ฒญ | ๋ด ์ ์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค | GET | /doctor/result |
latestโ | latestโ | latestโ |
โ ๋ก๋ฉ ํ๋ฉด - ๋ก๊ทธ์ธ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ์ฒ์์ผ๋ก ๋ณด์ฌ์ฃผ๋ ํ์ด์ง
โ ๋ก๊ทธ์ธ ํ๋ฉด - ์ ์ฅ๋ ๊ณ์ ์ ๊ฐ์ง๊ณ ์ด๋ฉ์ผ๊ณผ ํจ์ค์๋๋ฅผ ์ ๋ ฅ๋ฐ๋ ํ์ด์ง
โ ํ์๊ฐ์ ํ๋ฉด - ๊ณ์ ์ ํ์๊ฐ์ ํ ์ ์๋ ํญ์ผ๋ก ์ค๋ณต์ฌ๋ถ๋ ์๋ ค์ค๋ค
โ ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ ํญ - ์์๋ก ์ฌ์์ฑ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ด๋ฉ์ผ๋ก ๋ณด๋ด์ฃผ๊ณ ํ๋กํ ๋ณ๊ฒฝ์์ ๋น๋ฐ๋ฒํธ ์์ ์ด ๊ฐ๋ฅํ๋ค
โ ๊ฒ์ ํ๋ฉด - ์ฌ์ฉ์๋ฅผ ๊ฒ์ํ ์ ์๋ ํ๋ฉด์ผ๋ก ๋๋ฅผ ์ ์๋๋ฐฉ ํ๋กํ์ ๋ค์ด๊ฐ์ง
โ ๊ฒ์ ํ๋ฉด - ์ง๋ณ์ ๊ฒ์ํ ์ ์๋ ํ๋ฉด์ผ๋ก ์ง๋ณ ํ๋ก์ฐ๊ฐ ๊ฐ๋ฅํ๋ค
โ ๋ฉ์ธ ํผ๋ - ๋ฉ์ธ ํ๋ฉด์ผ๋ก ํ๋ก์ฐํ ์ฌ๋๋ค์ ๊ฒ์๊ธ๋ค์ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด์ผ๋ก ๊ฑด๊ฐํด์, ๋๊ธ, ์คํฌ๋ฉ, (์์ ์ ๊ฒ์๊ธ์ผ ๊ฒฝ์ฐ) ์์ ๊ฐ๋ฅ
โ Q&A ๊ฒ์ํ - Q&A ๊ฒ์ํ์ผ๋ก ์ง๋ฌธํ๊ณ ๋ต๋ณํ ์ ์๋ ๊ฒ์ํ
โ ๋ด์ค ๊ฒ์ - ํค์๋๋ก ๊ฒ์์ ํ๋ฉด ๋ด์ค๋ฅผ ๊ฒ์ํด์ค
โ ๊ฒ์๊ธ ์์ฑ - ๊ฒ์๊ธ์ ์์ฑํ ์ ์๋ ํ๋ฉด์ผ๋ก ์ด๋ฏธ์ง ์ ๋ก๋๊ฐ ๊ฐ๋ฅํ๊ณ ํ๊ทธ๋ค์ ๊ฒ์๊ธ์ ์ง์ ํ ์ ์๋ค.
โ ์๋ฆผ ์์ฒญ - ํ๋ก์์ ํ์ ๊ฒฝ์ฐ & ํ๋ก์ ๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ค ๋ ์๋์์ ํ๋ก์์ ๋ฐ์์ ๋๋ ์์ฒญํญ์ผ๋ก ์์ฒญ์ด ์์ ์น๋ ํน์ ๊ฑฐ์ ์ ๊ฒฐ์ ํ ์ ์๋ค
โ ๋ฉ์ธ ํ๋กํ ํ๋ฉด - ๋ฉ์ธ ํ๋กํ ํ๋ฉด์ผ๋ก ๋ด ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด์ผ๋ก ๋ด๊ฐ ์ด ๊ฒ์๊ธ, ๋์ ์คํฌ๋ฉ ๋ฑ๋ ๋ณผ ์ ์๋ค.
โ ํ๋กํ ๋ณ๊ฒฝ - ์์ ์ ํ๋กํ์ ๋ณ๊ฒฝํ๋ ํญ์ผ๋ก ์ค๋ฅธ์ชฝ ํค ๋ฒํผ์ ๋๋ฅด๋ฉด ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ์ญ์ ๊ฐ๋ฅํ๋ค
โ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ - ์์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ๋ ํญ์ผ๋ก ์์ฌ์ธ์ฆ๊ณผ ํ์ ํํด๊ฐ ๊ฐ๋ฅํ ํญ์ด๋ค
โ ์์ฌ ์ธ์ฆ - ์์ฌ๋ฅผ ์ธ์ฆ๋ฐ์ ์ ์๋ ํญ์ผ๋ก ์ฌ์ง์ ํตํด ์์ฌ ์ธ์ฆ ์ ์ฒญ์ด ๊ฐ๋ฅํ๋ค.
- ํ๋ก์ ํธ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ ์ฌ๋๋ค์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์คํํด์ผํ๋ ์คํฌ๋ฆฝํธ ๋ ์ค์ ํด์ผ ํ ํ๊ฒฝ ๋ณ์๊ฐ ์์ ์ ์์ต๋๋ค.
- ์ด ๋จ๊ณ๋ฅผ ๋ช ์์ ์ผ๋ก ์์ฑํ์ญ์์ค.
- AWS ์๋ฒ์ ์๋ ์ ๋ฌด๋ฅผ ํ์ธํ์ญ์์ค.
- git pull origin develop๋ฅผ ํตํด develop์ ๋จผ์ merge ํ ์ํ๋ก ์งํํฉ๋๋ค.
- git status๋ฅผ ํตํด ๋ณ๊ฒฝ ๋ ์ ์ ํ์ธํฉ๋๋ค
- git add ๋ฅผ ํตํด์ ๋ณ๊ฒฝ์ ์ฃผ๊ณ ์ถ์ ์ ์ ์งํํฉ๋๋ค.
- git commit -m "์ง๋ผ๋ฒํธ" ๋ฅผ ํตํด์ ๊ฐ ์ง๋ผ์ ๋ฑ๋ก์ ํด์ ์ปค๋ฐํฉ๋๋ค.
- git push origin feature/"๊ฐ๋ฐ ๊ธฐ๋ฅ"๋ฅผ ํตํด์ ๊ธฐ๋ฅ๊ธฐ๋ฆฌ ๊ฒน์น์ง ์๊ฒ ์ํํฉ๋๋ค.
- git bash์์ merge request๋ฅผ ์ ์ฒญํฉ๋๋ค.
๋ณธ ๊ฐ์ด๋๋ MIT ๋ผ์ด์ ์ค ํ์ ๊ณต๊ฐํฉ๋๋ค
- ๊ณต์ - ๋ณต์ , ๋ฐฐํฌ, ํฌ๋งท ๋ณ๊ฒฝ, ์ ์ก, ์ ์, ๊ณต์ฐ, ๋ฐฉ์กํ ์ ์์ต๋๋ค.
- ๋ณ๊ฒฝ - ๋ฆฌ๋ฏน์ค, ๋ณํ, 2์ฐจ์ ์ ์๋ฌผ ์์ฑ ๋ฐ ์๋ฆฌ๋ชฉ์ ์ ์ด์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.