[GDG]홍대 맛집 아카이빙 프로젝트 #7 - 투표기능 기획

2025. 7. 20. 02:10·팀 프로젝트/[2025][GDG]홍대 맛집 아카이빙 프로젝트

Redis를 해야하는데..

MySQL도 모르면서 Redis를 하려면 좀 어불성설 아닌가 싶었다.

ㅖ 사실 하기 귀찮기도하고.. 새로 배우기도 해야하고..

 

암튼 로그인 기능은 거의 다 만들어서 (프론트 연결하고 DB 짜기해야해서 지금 85% 정도?)

오늘은 투표게시판의 기능을 만지기 시작하기로 했다. 우선은 API 명세서부터 짭시다.

 

그리고 시간 남으면 C++

울라리를 다룰 수 있는 제임스 레이너.. 캐리어 운전하러간다.

(언어 비하의도는 없습니다 제 주종이 테란이라 그다음 저그(치트키 쓰고 자폭맨 만들기 놀이 자주함))

APM100도 안나오는데 주종이라고 할 수 있나 암튼 넘어갑시다


 

간략하게 이런 디자인이라고 하는데.. 이를 참고하여 기획을 했다.

여기에 접근할 수 있는 사람은 관리자와 재학생. 다행히 API 명세서는 다른 분께서 짜주셨다. 고마워요

 

짜야될 기능은 크게 3개

- 투표하기

- 투표 결과보기

- 월별 투표목록 조회

- 내 투표 조회 <- 이건 무슨 기능인지 헷갈린다. 코어 타임 때 물어봐야할 듯.

 


오늘은 개발은 거의 안하고 그냥 휴무일처럼 노는날로 칠거라서 대충 플로우만 짜두고 내일 코딩하면 되겠지

안일함은 지상 최악의 프로그래머에게 좋은 덕목입니다.


1. 월별 투표 후보 목록 조회

내 이해가 맞다면..

월별 투표 후보 목록 조회는 투표 하기 전 어떤 것을 투표할 지 리스트업하는 과정이다.

 

기본 URL 주소는 /votes/candidates?month=2025-07

몇 월달인지 쿼리 파라미터로 가져오는데 ResquestParam 어노테이션으로 가져오면 된다. Request뭐시기니 프론트의 요청을 받아내는 어노테이션을 좀 배워보고 싶었는데 이번에 또 하나 배워갑니다~ 받는 방법은 쿼리 파라미터에 있는 변수명과 동일하게 변수명을 month로 받아야한다.

month를 받고나서 DB에서 가져와야겠지그러면

 

- 컨트롤러

url로 GET 요청을 받고 파라미터에서 몇월인지 떼어내 서비스에 전달

 

- 서비스

컨트롤러에서 몇월인지 받고 DB에서 가져오기

 

- DTO

ResponseDTO에 매장정보를 추가할 수 있도록 해야함. 추가만하면 됨 어차피 null은 표시안되게 막아놓음

매장정보를 담을 DTO도 필요하다만 DB설계를 안해놔서 만들기만 하기

 

대략적으로 매장정보를 짤 DTO로는

매장명, 투표수, 간단한 소개, 메뉴 이정도? 이정도로만 짜두고 나중에 수정하기

 

대충 이정도?


2. 투표하기

URL은 /votes, Http는 POST 요청

아마 프론트에서 Body에 무엇을 투표했는지 줄 것이므로.. 컨트롤러는 받아서 서비스에 넘기고 서비스에서는 DB에 정보저장하기 (투표수 +1)


3. 내 투표 조회

이게 무슨 기능인지는 모르겠는데..

내가 무엇을 투표했는지 조회하는 것 같다. URL이 /votes/my?month=2025-07 인 것을 보니..

이건 어떻게 해야할지 감이 안잡히네.. DB설계에 대해서 좀 배웠어야했는데.. 내일함


4. 투표 결과 조회

URL은 /votes/result?month=2025-07. GET 요청

우리가 매달 말 5~10일정도를 투표기간으로 설정하는데 그 외 기간에는 저 투표결과를 조회할 수 있도록 할 예정이다.

매장정보에 관한 DB에 isAdopted (boolean)을 추가해서 true인 것만 불러오도록하면 될 듯?


5. 관리자 기능

이건 API 명세서에 없길래 그냥 내가 추가하는 것

대충.. 투표 목록에 가게를 추가하고 (추가로 들어갈 정보에 대해서는 DB를 짜면서 고려하기), 이정도면 되려나?

 

말일이 지나면, 즉 매월 1일 자정마다 시간을 체크해서

상위 N개를 선정하고 isAdopted 를 true로, 이전에 것들은 false로 바꾸는 작업도 진행해야한다.

 

오늘은 대충 이정도로 마무리. 코딩은 내일합시다.


어제 고찰 내용에서 백엔드 3요소로는

WAS - Web - DB (순서는 기억나는 순서) 가 있었다.

 

오늘 3요소에 대한 책을 샀다.

도서관에서 빌리는 방법도 있지만 그래도 내 책에 내 맘대로 필기하면서 보면 좋잖아?

 

WAS - 스프링 인 액션

 나는 스프링6을 쓰는데 책이 스프링5에 대해 다루고 있다. 그게 마음에 안들긴하는데 GPT에게 물어보니 이 책이 WAS를 다루기에는 최적이라고해서 그냥 샀다. 뭐 바뀐 내용은 구글링하면 되지.

 

Web - 혼자 공부하는 네트워크

 javax.mail을 하면서 서버에 대해서 이해하기 어려운 내용이 많아서 Web 공부용으로 하나 구매. 역시나 GPT에게 물어보니 추천한대서 샀다.

 

DB - 안샀다!

 사실 저 책 2권이 이미 6만원이라.. 아니 IT 쪽 책들은 깊이가 있는 책들도 많아서 좋은데 다 비싸.. DB는 내가 구글링하면서 독학하도록 합시다. 사실 집에 SQLD 책이 있긴해서 안산거긴함

 

이제 이 책들 한 권씩 보면서 목표달성을 해보자고

만다라트 계획표랑 고찰 내용들 읽으면서 합시다

 

내일 할 거

- 오늘 대략적인 흐름 세운 기능들 개발하기

- 산 책 읽기 (스프링인액션부터)

- MySQL 공부하기

- C++ 기초정도만 배우기 (반복문 / 조건문까지)

- 노을 출사가기 (어디가지?)

일찍 일어나야겠는걸? 4시간만 자기 얍

'팀 프로젝트 > [2025][GDG]홍대 맛집 아카이빙 프로젝트' 카테고리의 다른 글

[GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #9 - 회원가입 기능 개발하기  (1) 2025.07.22
[GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #8 - 투표기능 개발하기  (4) 2025.07.21
[GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #6.1 - DTO 및 로그인 기능 마무리  (0) 2025.07.19
[GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #5 - OAuth 최종점검  (0) 2025.07.18
[GDG] 개발코스 2주차 WIL  (1) 2025.07.17
'팀 프로젝트/[2025][GDG]홍대 맛집 아카이빙 프로젝트' 카테고리의 다른 글
  • [GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #9 - 회원가입 기능 개발하기
  • [GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #8 - 투표기능 개발하기
  • [GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #6.1 - DTO 및 로그인 기능 마무리
  • [GDG]홍대 맛집 아카이빙 프로젝트 백엔드 개발 #5 - OAuth 최종점검
Radiata
Radiata
개발을 합니다.
  • Radiata
    DDD
    Radiata
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • 신년사 (3)
        • 2025년 (2)
        • 2026년 (1)
      • CS (59)
        • JVM (12)
        • 백엔드 (20)
        • 언어구현 (1)
        • 객체지향 (1)
        • 논리회로 (5)
        • 컴퓨터구조 (9)
        • 데이터베이스 (1)
        • 컴퓨터 네트워크 (10)
      • 언어공부 (64)
        • Java | Kotlin (48)
        • JavaScript | TypeScript (9)
        • C | C++ (6)
      • 개인 프로젝트 (11)
        • [2025] Happy2SendingMails (3)
        • [2026] 골든리포트! (8)
        • [2026] 순수자바로 개발하기 (0)
        • 기타 이것저것 (0)
      • 팀 프로젝트 (29)
        • [2025][GDG]홍대 맛집 아카이빙 프로젝트 (29)
      • 알고리즘 (13)
        • 백준풀이기록 (11)
      • 놀이터 (0)
      • 에러 수정일지 (2)
      • 고찰 (24)
        • CEOS 23기 회고록 (2)
  • 블로그 메뉴

    • CS
    • 언어공부
    • 개인 프로젝트
    • 팀 프로젝트
    • 알고리즘
    • 고찰
    • 신년사
    • 컬러잇 개발블로그
  • 링크

    • 컬러잇 개발블로그
  • 공지사항

  • 인기 글

  • 태그

    144
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Radiata
[GDG]홍대 맛집 아카이빙 프로젝트 #7 - 투표기능 기획
상단으로

티스토리툴바