Skip to content

mock-rp5/wanted_server_pure_anju

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

89 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Project Introduction

์›ํ‹ฐ๋“œ ์›น ํด๋ก  ์ฝ”๋”ฉ(ํ”„๋ก ํŠธ์—”๋“œ 1๋ช…, ๋ฐฑ์—”๋“œ 2๋ช…)

'๋ณธ ํ…œํ”Œ๋ฆฟ์˜ ์ €์ž‘๊ถŒ์€ (์ฃผ)์†Œํ”„ํŠธ์Šคํ€˜์–ด๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์—…์  ์šฉ๋„์˜ ์‚ฌ์šฉ์„ ๊ธˆํ•ฉ๋‹ˆ๋‹ค'

์ œ์ž‘ ๊ธฐ๊ฐ„: 2022๋…„ 5์›” 21์ผ ~ 06์›” 03์ผ

Member

ย  ย 

ERD

Architecture

Architecture

Components

๋ถ„๋ฅ˜ ๋‚ด์šฉ
Language & Frameworks Java, Spring Boot, Spring Security(JWT)
Database MySQL
Infra AWS(EC2, RDS), Nginx, GitHub Action
API Docs. Swagger, Excel

Commit Convention

  • AngularJS Git Commit Message Conventions ์„ ๋”ฐ๋ฅธ๋‹ค.
  • feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
  • fix: ๋ฒ„๊ทธ ์ˆ˜์ •
  • refactor: ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์ด ์—†๋Š” ์ฝ”๋“œ ์ˆ˜์ •
  • test: ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •
  • docs: ๋ฌธ์„œ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •
  • build: ๋นŒ๋“œ ํŒŒ์ผ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •
  • style: ์Šคํƒ€์ผ ๋ณ€๊ฒฝ(reformat, indent)
  • chore: ๋‹จ์ˆœํ•œ ์ž‘์—…

๐Ÿ“ ๊ฐœ๋ฐœ์ผ์ง€

๊ฐœ๋ฐœ ์ผ์ง€(2022๋…„ 5์›” 21์ผ ~ 06์›” 03์ผ)

2022-05-21(ํ† )

์•ˆ์ฃผ

  • ERD์„ค๊ณ„(80%์ง„ํ–‰)

ํ“จ์–ด

  • ERD์„ค๊ณ„(80%์ง„ํ–‰)
  • ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ๊ตฌ์ž… ๋ฐ dev/prod ์„œ๋ฒ„ ๊ตฌ์ถ•

2022-05-22(์ผ)

์•ˆ์ฃผ

  • ERD์„ค๊ณ„ ๋งˆ๋ฌด๋ฆฌ
  • API ๋ช…์„ธ์„œ ์ž‘์„ฑ

ํ“จ์–ด

  • ERD์ˆ˜์ •
  • API ๋ฆฌ์ŠคํŠธ์—…(80%)

2022-05-23(์›”)

์•ˆ์ฃผ

  • ํšŒ์›๊ฐ€์ž… API ๊ตฌํ˜„
  • ๋กœ๊ทธ์ธ API ๊ตฌํ˜„
  • ํ”„๋ก ํŠธ์™€ ํšŒ์˜ ์ง„ํ–‰
  • 1์ฐจ ํ”ผ๋“œ๋ฐฑ ๋ฐ›์Œ

ํ“จ์–ด

  • git pull ์—๋Ÿฌ ํ•ด๊ฒฐ
  • git merge conflict ์—๋Ÿฌ ํ•ด๊ฒฐ
  • ํ”„๋ก ํŠธ์™€ ํšŒ์˜ ์ง„ํ–‰ : ๋ฆฌ์ŠคํŠธ์—…ํ•œ API ์ค‘ ์ฃผ์š” API๋จผ์ € ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ํ•จ.
  • 1์ฐจ ํ”ผ๋“œ๋ฐฑ : ERD ํ…Œ์ด๋ธ” ์นผ๋Ÿผ๊ฐ’ ์ค‘ ์นด๋ฉœ์ผ€์ด์Šค ์•ˆ๋œ ๊ฒƒ ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ˆ˜์ •, API Method ์ค‘ DELETE๋ฅผ PATCH๋กœ ์ˆ˜์ •

2022-05-24(ํ™”)

์•ˆ์ฃผ

  • ๋ฐฐ๋„ˆ ๊ด‘๊ณ  ์กฐํšŒ API ๊ตฌํ˜„
  • ์œ ์ € ์ •๋ณด ์กฐํšŒ API ๊ตฌํ˜„

ํ“จ์–ด

  • ์ฑ„์šฉ๊ณต๊ณ  ํ™”๋ฉด ์กฐํšŒ API ๊ตฌํ˜„

2022-05-25(์ˆ˜)

์•ˆ์ฃผ

  • ์ด๋ ฅ์„œ ์ƒ์„ฑ API๊ตฌํ˜„
  • ํ•ด๋‹น ์œ ์ €์˜ ๋ชจ๋“  ์ด๋ ฅ์„œ ์กฐํšŒ API ๊ตฌํ˜„
  • ์ด๋ ฅ์„œ ์ƒ์„ธ ์กฐํšŒ API ๊ตฌํ˜„
  • ์ด๋ ฅ์„œ ์‚ญ์ œ API ๊ตฌํ˜„

ํ“จ์–ด

  • ์ฑ„์šฉ๊ณต๊ณ  ์ƒ์„ธํ™”๋ฉด ์กฐํšŒ API ๊ตฌํ˜„
  • ์ฑ„์šฉ๊ณต๊ณ  ๋ถ๋งˆํฌ ์ƒ์„ฑ API ๊ตฌํ˜„
  • ์ฑ„์šฉ๊ณต๊ณ  ๋ถ๋งˆํฌ ์ทจ์†Œ API ๊ตฌํ˜„
  • ๋ถ๋งˆํฌ ์กฐํšŒ API ๊ตฌํ˜„

2022-05-26(๋ชฉ)

์•ˆ์ฃผ

  • ์ด๋ ฅ์„œ ์ด๋ฆ„ ๋ณ€๊ฒฝ API ๊ตฌํ˜„
  • ๊ธฐ๋ณธ ์ด๋ ฅ์„œ๋กœ ๋ณ€๊ฒฝ API ๊ตฌํ˜„
  • ์ด๋ ฅ์„œ ์ž‘์„ฑ ์ƒํƒœ ๋ณ€๊ฒฝ API ๊ตฌํ˜„
  • ์ด๋ ฅ์„œ ์ˆ˜์ • API ๊ตฌํ˜„

ํ“จ์–ด

  • ํšŒ์‚ฌ ์ƒ์„ธ ์กฐํšŒ API ๊ตฌํ˜„
  • ํšŒ์‚ฌ ์ •๋ณด ์ƒ์„ฑ API ๊ตฌํ˜„
  • ํšŒ์‚ฌ ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„
  • ํšŒ์‚ฌ ์ •๋ณด ์‚ญ์ œ API ๊ตฌํ˜„

2022-05-27(๊ธˆ)

์•ˆ์ฃผ

  • ํšŒ์› ํƒˆํ‡ด API ๊ตฌํ˜„
  • ์œ ์ € ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ API ๊ตฌํ˜„

ํ“จ์–ด

  • ์ฑ„์šฉ๊ณต๊ณ  ์ข‹์•„์š” ์ƒ์„ฑ, ์ทจ์†Œ ๋ฒ„๊ทธ ํ•ด๊ฒฐ

2022-05-28(ํ† )

์•ˆ์ฃผ

  • API ๋ช…์„ธ์„œ ์ˆ˜์ •
  • GitHub Action CI ์ถ”๊ฐ€

ํ“จ์–ด

  • API ๋ช…์„ธ์„œ ์ˆ˜์ •

2022-05-29(์ผ)

์•ˆ์ฃผ

  • ์œ ์ € ๊ธฐ๋ณธ์ •๋ณด ์ˆ˜์ • API ๊ตฌํ˜„
  • ์œ ์ € ํ”„๋กœํ•„ ์กฐํšŒ API ๊ตฌํ˜„

ํ“จ์–ด

  • ๋ฉ”์ธํ™”๋ฉด ์ด๋ฒคํŠธ ์กฐํšŒ API ๊ตฌํ˜„
  • ๋ฉ”์ธํ™”๋ฉด ์•„ํ‹ฐํด ์กฐํšŒ API ๊ตฌํ˜„

2022-05-30(์›”)

์•ˆ์ฃผ

  • ํ”„๋กœํ•„ ์ „๋ฌธ๋ถ„์•ผ ์„ค์ • API ๊ตฌํ˜„
  • ํ”„๋กœํ•„ ์ •๋ณด ์กฐํšŒ API ์˜ค๋ฅ˜ ์ˆ˜์ •
  • SMS ์ธ์ฆ๋ฉ”์„ธ์ง€ API๊ตฌํ˜„(coolsms์‚ฌ์šฉ)

ํ“จ์–ด

  • ํšŒ์‚ฌ ํŒ”๋กœ์šฐ ์œ ๋ฌด ๋ฒ„๊ทธ ํ•ด๊ฒฐ
  • ํŠน์ •์กฐ๊ฑด์œผ๋กœ ํšŒ์‚ฌ ์กฐํšŒ API ๊ตฌํ˜„
  • ํŠน์ • ํƒœ๊ทธ๋กœ ํšŒ์‚ฌ ์กฐํšŒ API ๊ตฌํ˜„
  • ํ”„๋ก ํŠธ์™€ ํšŒ์˜ ์ง„ํ–‰ : ํ”„๋ก ํŠธ๋ถ„๊ป˜์„œ ์ด์ œ ๋ง‰ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ๋๋ƒ„, ์ฃผ์š” ํ™”๋ฉด ๊ด€๋ จ API ๊ด€๋ จ ํšŒ์˜

2022-05-31(ํ™”)

์•ˆ์ฃผ

  • ์ง€์›ํ˜„ํ™ฉ ์กฐํšŒ ๋ชจ๋ธ๋ง
  • API ๋ช…์„ธ์„œ
  • ๊ณผ์ œ๋ฅผ ์œ„ํ•œ prod, sub ๋„๋ฉ”์ธ ๊ตฌํ˜„

ํ“จ์–ด

  • ์ฑ„์šฉ์ •๋ณด ์กฐํšŒ API ๊ตฌํ˜„
  • ์ง„ํ–‰์ค‘์ธ ์ด๋ฒคํŠธ ์กฐํšŒ API ๊ตฌํ˜„
  • ์ฑ„์šฉ๊ณต๊ณ  ์ข‹์•„์š” ๋ฆฌ์ŠคํŠธ ์กฐํšŒ API ๊ตฌํ˜„

2022-06-01(์ˆ˜)

์•ˆ์ฃผ

  • ERD ์ˆ˜์ •์— ๋”ฐ๋ฅธ ๋ช‡๋ช‡๊ฐœ์˜ API ์ˆ˜์ • ์ค‘
  • ๋งˆ๋ฌด๋ฆฌ ์ž‘์—…์„ ์œ„ํ•œ API ๋ช…์„ธ์„œ ๋‹ค๋“ฌ๊ธฐ
  • ๋งˆ๋ฌด๋ฆฌ ์ง€์„ ์ž‘์—… ์ •๋ฆฌ ์ค‘(๋‚จ์€ API ๊ฐœ๋ฐœ ๋ฐ ์˜์ƒ ๊ณผ์ • ๊ณ ๋ฏผ)

ํ“จ์–ด

  • ์นด์นด์˜ค OAuth ๋กœ๊ทธ์ธ API ๊ตฌํ˜„
  • SMS๋กœ 4์ž๋ฆฌ ์ธ์ฆ๋ฒˆํ˜ธ API(๋„ค์ด๋ฒ„ sens์ด์šฉ) ๊ตฌํ˜„
  • ERD ํ…Œ์ด๋ธ” ์ˆ˜์ •
  • 2์ฐจ ํ”ผ๋“œ๋ฐฑ : ERD ๊ฐ status comment ์ˆ˜์ •, Alarm ํ…Œ์ด๋ธ”๊ณผ User ํ…Œ์ด๋ธ” ์—ฐ๊ฒฐ, query string์ด ํฌํ•จ๋œ API URL ๊ตฌ์ฒดํ™”

2022-06-02(๋ชฉ)

์•ˆ์ฃผ

  • ์ž‘์„ฑ์ค‘์ธ ์ง€์›ํ˜„ํ™ฉ ์กฐํšŒ API ๊ตฌํ˜„
  • ํšŒ์‚ฌ ์ง€์› ํ˜„ํ™ฉ ๋ฐ˜ํ™˜๊ฐ’ ์ˆ˜์ •
  • README Architecture ์ถ”๊ฐ€

ํ“จ์–ด

  • ํŒ”๋กœ์šฐ, ์ข‹์•„์š” validation ์ถ”๊ฐ€
  • ๊ฒ€์ƒ‰์–ด validation ์ถ”๊ฐ€
  • API ๋ช…์„ธ์„œ ์ˆ˜์ • ๋ฐ ๋ณด์™„

๐Ÿ“ ์ด์Šˆ

๊ฐœ๋ฐœ ์ด์Šˆ ์ •๋ฆฌ

์•ˆ์ฃผ

  1. git branch ์ถฉ๋Œ
  • ๋ฌธ์ œ: ์ถฉ๋Œ์ด ์ผ์–ด๋‚œ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ ๋‘์„ธ ๋ฌธ์žฅ์˜ ๊ฒฝ์šฐ inteliJ ์ƒ์—์„œ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•˜์ง€ ์•Š๊ณ  ๊นƒํ—ˆ๋ธŒ ์ƒ์—์„œ ํ•ด๊ฒฐํ•˜์˜€๋Š”๋ฐ, ๊ทธ๋•Œ ๋ฏธ์ฒ˜ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์˜ค๋ฅ˜๋“ค์ด ec2 ์ƒ์—์„œ build ํ•  ๋•Œ ์—๋Ÿฌ๋ฅผ ๋ฟœ์–ด๋Œ”๋‹ค.
  • ํ•ด๊ฒฐ: GitHub Action์„ ์ด์šฉํ•œ CI๋ฅผ ์ ์šฉํ•˜์—ฌ, ๋ชจ๋“  main branch๋กœ ๋ณด๋‚ด๋Š” ๋ชจ๋“  pull request์˜ ์ฝ”๋“œ๋“ค์„ ๊ฒ€์ฆํ•˜์—ฌ ์—๋Ÿฌ๋ฅผ ์‚ฌ์ „์— ๋ฐœ๊ฒฌํ•˜๋„๋ก ํ•˜์—ฌ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
  1. validation ์ ์šฉ์‹œ ์ค‘๋ณต๋œ ์ฝ”๋“œ๋“ค๋กœ ์ธํ•œ ์ง€์ €๋ถ„ํ•จ
  • ๋ฌธ์ œ: ๊ธฐ์กด์˜ ๊ฒฝ์šฐ post ์š”์ฒญ ์‹œ controller ๋‹จ์—์„œ ๋ชจ๋‘ ์กฐ๊ฑด๋ฌธ์„ ๊ฑธ์–ด์ค˜์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์ง€์ €๋ถ„ํ•ด์กŒ๋‹ค.
  • ํ•ด๊ฒฐ: @ControllerAdvice๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ชจ๋“  ์—๋Ÿฌ๋“ค์„ ํ•œ๊ณณ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ๋” ํ•˜์˜€๊ณ , Dto ์ƒ์—์„œ @valid๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฒ€์ฆํ•˜์˜€๋‹ค.
  1. DTO ํด๋ž˜์Šค์˜ ๊ฐฏ์ˆ˜ ์ฆ๊ฐ€๋กœ ์ธํ•œ ์ง€์ €๋ถ„ํ•จ
  • ๋ฌธ์ œ: ์ด๋ ฅ์„œ ์ž‘์„ฑ์˜ ๊ฒฝ์šฐ Post๋กœ ์š”์ฒญ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฐ’์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค๋ณด๋‹ˆ Dto ํด๋ž˜์Šค ํŒŒ์ผ์ด ๋„ˆ๋ฌด ๋งŽ์•„์กŒ๊ณ , ๊ฐ€๋…์„ฑ์ด ์ค„์–ด๋“ค๊ณ  ๋ญ”๊ฐ€ ๊ฐ์ฒด์ง€ํ–ฅ ์ ์ด์ง€ ๋ชปํ–ˆ๋‹ค.
  • ํ•ด๊ฒฐ: inner class๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ํด๋ž˜์Šค ํŒŒ์ผ ๋‚ด์—์„œ ์ „๋ถ€ ๊ธฐ์ž…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
  1. CORS ERROR
  • ๋ฌธ์ œ: ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ API์š”์ฒญ์‹œ CORS ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ํ•ด๊ฒฐ: WebConfig.class ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ๋ฉ”์„œ๋“œ๋ฅผ Bean ๋“ฑ๋ก ํ•ด์คŒ์œผ๋กœ์จ ํ•ด๊ฒฐํ–ˆ๋‹ค.
 
@Configuration
public class WebConfig implements WebMvcConfigurer {
   private static final long MAX_AGE_SECOND = 3600;

   @Override
   public void addCorsMappings(CorsRegistry registry) {
       registry.addMapping("/**")
               .allowedOriginPatterns("*")
               .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")
               .allowedHeaders("*")
               .allowCredentials(true)
               .maxAge(MAX_AGE_SECOND);
   }

}

ํ“จ์–ด

  1. ec2์„œ๋ฒ„์—์„œ git pull ํ•  ๋•Œ ์—๋Ÿฌ(2022-05-23)
  • ๋ฌธ์ œ : ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์„ ํฌํ•จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(remote repository)์—์„œ ์†Œ์Šค๋ฅผ ๋•ก๊ฒจ ์˜ฌ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
error: Your local changes to the following files would be overwritten by merge:
         logs/app.log
please commit your changes or stash them before you merge.
  • ํ•ด๊ฒฐ : merge ํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ commit ํ•˜๊ฑฐ๋‚˜ stashํ•œ๋‹ค.
  1. ec2์„œ๋ฒ„์— ๋ฐฐํฌ(2022-05-23)
  • ๋ฌธ์ œ : ์›๊ฒฉ ์ ‘์†์ด ๋Š์–ด์ง€๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ์–ด๋ฒ„๋ฆฐ๋‹ค.
  • ํ•ด๊ฒฐ : nohum์„ ํ†ตํ•ด์„œ ์›๊ฒฉ ์ ‘์†์ด ๋Š์–ด์ ธ๋„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์•Œ์•„์„œ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. jar ํŒŒ์ผ์„ ๋™์ž‘์‹œํ‚ฌ ๋•Œ์˜ ๋ช…๋ น์–ด์˜ ์•ž, ๋’ค์— nohup, &๋งŒ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.
  1. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ์—๋Ÿฌ(2022-05-25)
  • ๋ฌธ์ œ : ๋กœ์ปฌ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ ์šฉ์‹œํ‚ค๋ ค ํ–ˆ์ง€๋งŒ ์‹คํŒจํ–ˆ๋‹ค.
  • ํ•ด๊ฒฐ : ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•œ ํ›„ ๋กœ์ปฌ์—์„œ
git clone -b {branch_name} --single-branch {์ €์žฅ์†Œ URL}

์„ ํ†ตํ•ด ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋งŒ ๋”ฐ์˜จ๋‹ค.

  1. boolean ํƒ€์ž… validation ์—๋Ÿฌ(2022-05-26)
  • ๋ฌธ์ œ : ํšŒ์‚ฌ ์ƒ์„ฑ API ๊ตฌํ˜„ ์ค‘ booleanํƒ€์ž…์˜ ์ด์šฉ์•ฝ๊ด€ ๋ฐ ๊ฐ€์ž…๋™์˜ ๋ถ€๋ถ„์„ @AsserTrue ๋กœ validationํ•  ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.
  • ํ•ด๊ฒฐ : boolean๋Œ€์‹ ์— Boolean์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
  1. postman์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์‹คํŒจ ์—๋Ÿฌ(2022-05-27)
  • ๋ฌธ์ œ : FollowService๋‹จ์—์„œ ํ•ด๋‹น ์œ ์ €๊ฐ€ ํšŒ์‚ฌ๋ฅผ ํŒ”๋กœ์šฐํ•˜๊ณ  ์žˆ๋Š”์ง€ status๋กœ ๋ฐ›์•„์™€์„œ 0์ด์•„๋‹ˆ๋ฉด ์ด๋ฏธ ํŒ”๋กœ์šฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ฒ˜๋ฆฌํ•˜์—ฌ Exception์œผ๋กœ ๋‚ ๋ ค์ฃผ๊ณ  0์ด๋ผ๋ฉด ํŒ”๋กœ์šฐํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ค์Œ๊ณผ๊ฐ™์ด ๊ตฌ์„ฑํ–ˆ๋‹ค.
public void createFollow(int companyIdx, Long userIdx) throws BaseException {
        int status = followDao.getFollowCompany(companyIdx, userIdx);
        System.out.println(status);
        if(status != 0 ){
            throw new BaseException(POST_FOLLOW_EXISTS);
        }
        try{
            followDao.createFollow(companyIdx, userIdx);

        } catch (Exception exception) {
            throw new BaseException(DATABASE_ERROR);
        }
    }

FollowDao์—์„œ์˜ ์ฟผ๋ฆฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

public int getFollowCompany(int companyIdx, Long userIdx){
        String GetFollowCompanyQuery = "select count(companyFollowIdx) from CompanyFollow where userIdx = ? and companyIdx = ? and status = 'ACTIVE'";
        Object[] GetFollowCompanyParams = new Object[]{userIdx, companyIdx};
        return this.jdbcTemplate.queryForObject(GetFollowCompanyQuery, int.class,GetFollowCompanyParams);
    }

ํ•˜์ง€๋งŒ ์‹คํ–‰ํ•ด๋ณด๋ฉด ์‹ค์ œ db์ƒ์—์„œ ํŒ”๋กœ์šฐํ•˜๊ณ  ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  status๊ฐ€ 0์œผ๋กœ ์ถœ๋ ฅ๋˜๊ณ  postman์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ์‹คํŒจํ•˜์˜€๋‹ค๋ผ๊ณ  ์ถœ๋ ฅ๋๋‹ค.

{
  "isSuccess" : "false",
  "code" : 4000,
  "message" : "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค."
}
  • ํ•ด๊ฒฐ : ํ•ด๋‹น ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ฝ”๋“œ ๊ตฌ์„ฑ์€ Like(์ข‹์•„์š”)์™€ ๋˜‘๊ฐ™์ง€๋งŒ Like๊ด€๋ จ API๋Š” ๋ฌธ์ œ์—†์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ๋กœ์ง๊ณผ ๊ตฌ์„ฑ์€ ๋ฌธ์ œ์—†๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ ํ•ด๋‹น ์ด์Šˆ๋ฅผ ํŒ€์žฅ๋‹˜๊ป˜ ๋ณด๊ณ ๋“œ๋ ธ์ง€๋งŒ ํ•ด๊ฒฐ๋ฐฉ์•ˆ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค. ๊ฒฐ๊ตญ, ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ์ดํ‹€ ๋’ค์— ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋๋‹ค.

About

Wanted Server Clone Coding

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages