Skip to content

Commit 57c378d

Browse files
authored
Merge pull request #123 from OurMenu/develop
[DEPLOY] develop -> main
2 parents 39b97c0 + 9acec24 commit 57c378d

42 files changed

Lines changed: 330 additions & 172 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
1-
# OurMenu-BE-V2
2-
OurMenu-BE-V2
1+
## 기술 스택
2+
3+
<p align=center><img src="https://github.com/user-attachments/assets/5630cbef-40d9-45c0-9b98-26e24975c57f" alt="drawing" width="600"/></p>
4+
5+
## 아키텍처
6+
7+
<p align=center><img src="https://github.com/user-attachments/assets/2f044ecf-93c7-436b-bbca-ceeea3efe221" alt="drawing" width="800"/></p>

infra/docker/docker-compose.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ services:
1010
ports:
1111
- "8080:8080"
1212
environment:
13+
TZ: Asia/Seoul
1314
KAKAO_API_KEY: ${KAKAO_API_KEY}
1415
MONGO_URL: ${MONGO_URL}
1516
MYSQL_HOST: ${MYSQL_HOST}
@@ -22,4 +23,5 @@ services:
2223
SPRING_SWAGGER_SERVER_URL: ${URL}
2324
DEFAULT_BUCKET_URL: ${DEFAULT_BUCKET_URL}
2425
volumes:
25-
- /var/log/springboot/:/var/log/springboot/
26+
- /var/log/springboot/:/var/log/springboot/
27+
- /etc/localtime:/etc/localtime:ro

src/main/java/com/ourmenu/backend/domain/cache/application/CacheService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.ourmenu.backend.domain.cache.dto.SimpleMenuFolderIconResponse;
99
import com.ourmenu.backend.domain.cache.dto.SimpleMenuPinResponse;
1010
import com.ourmenu.backend.domain.cache.dto.SimpleTagImgResponse;
11-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
1211
import com.ourmenu.backend.domain.tag.domain.Tag;
1312
import java.util.Arrays;
1413
import java.util.List;
@@ -19,7 +18,7 @@
1918
@RequiredArgsConstructor
2019
public class CacheService {
2120

22-
private final UrlConverter urlConvertor;
21+
private final UrlConverterService urlConvertor;
2322

2423
public GetCacheInfoResponse getCacheInfo() {
2524
List<SimpleMenuFolderIconResponse> menuFolderIconInfo = getMenuFolderIconInfo();

src/main/java/com/ourmenu/backend/domain/cache/util/UrlConverter.java renamed to src/main/java/com/ourmenu/backend/domain/cache/application/UrlConverterService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
package com.ourmenu.backend.domain.cache.util;
1+
package com.ourmenu.backend.domain.cache.application;
22

33
import com.ourmenu.backend.domain.cache.domain.HomeImg;
44
import com.ourmenu.backend.domain.cache.domain.MenuFolderIcon;
55
import com.ourmenu.backend.domain.cache.domain.MenuPin;
66
import com.ourmenu.backend.domain.home.domain.Answer;
77
import com.ourmenu.backend.domain.tag.domain.Tag;
88
import org.springframework.beans.factory.annotation.Value;
9-
import org.springframework.stereotype.Component;
9+
import org.springframework.stereotype.Service;
1010

11-
@Component
12-
public class UrlConverter {
11+
@Service
12+
public class UrlConverterService {
1313

1414
@Value("${spring.cloud.aws.credentials.default.bucket.url}")
1515
private String url;

src/main/java/com/ourmenu/backend/domain/home/application/HomeService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.ourmenu.backend.domain.home.application;
22

3-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
3+
import com.ourmenu.backend.domain.cache.application.UrlConverterService;
44
import com.ourmenu.backend.domain.home.dao.HomeQuestionAnswerRepository;
55
import com.ourmenu.backend.domain.home.domain.Answer;
66
import com.ourmenu.backend.domain.home.domain.HomeQuestionAnswer;
@@ -30,7 +30,7 @@ public class HomeService {
3030
private final RecommendMenuCacheService recommendMenuCacheService;
3131
private final MenuService menuService;
3232
private final MealTimeService mealTimeService;
33-
private final UrlConverter urlConverter;
33+
private final UrlConverterService urlConverterService;
3434

3535
/**
3636
* 홈 질문 응답 값을 저장 및 추천 메뉴를 캐싱한다. 질문에 관련 없는 응답이면 에러를 반환한다.
@@ -70,12 +70,12 @@ public SaveAndGetQuestionRequest updateQuestion(Long userId) {
7070
.userId(userId)
7171
.build();
7272
HomeQuestionAnswer saveHomeQuestionAnswer = homeQuestionAnswerRepository.save(homeQuestionAnswer);
73-
return SaveAndGetQuestionRequest.from(saveHomeQuestionAnswer, urlConverter);
73+
return SaveAndGetQuestionRequest.from(saveHomeQuestionAnswer, urlConverterService);
7474
}
7575

7676
HomeQuestionAnswer homeQuestionAnswer = optionalHomeQuestionAnswer.get();
7777
homeQuestionAnswer.update(randomQuestion);
78-
return SaveAndGetQuestionRequest.from(homeQuestionAnswer, urlConverter);
78+
return SaveAndGetQuestionRequest.from(homeQuestionAnswer, urlConverterService);
7979
}
8080

8181
/**
@@ -93,7 +93,7 @@ public GetHomeRecommendResponse getRecommendMenus(Long userId) {
9393
List<GetRecommendMenuResponse> randomRecommendMenus = getRandomRecommendMenu();
9494

9595
return GetHomeRecommendResponse.of(answer, questionRecommendMenus, tagRandomRecommendDto.getTag(),
96-
tagRandomRecommendDto.getGetRecommendMenuResponses(), randomRecommendMenus, urlConverter);
96+
tagRandomRecommendDto.getGetRecommendMenuResponses(), randomRecommendMenus, urlConverterService);
9797
}
9898

9999
/**

src/main/java/com/ourmenu/backend/domain/home/dto/GetHomeRecommendResponse.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.ourmenu.backend.domain.home.dto;
22

33
import com.ourmenu.backend.domain.cache.domain.HomeImg;
4-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
4+
import com.ourmenu.backend.domain.cache.application.UrlConverterService;
55
import com.ourmenu.backend.domain.home.domain.Answer;
66
import com.ourmenu.backend.domain.tag.domain.Tag;
77
import java.util.List;
@@ -27,10 +27,10 @@ public static GetHomeRecommendResponse of(Answer answer,
2727
Tag tag,
2828
List<GetRecommendMenuResponse> tagRecommendMenus,
2929
List<GetRecommendMenuResponse> otherRecommendMenus,
30-
UrlConverter urlConverter) {
30+
UrlConverterService urlConverterService) {
3131
HomeImg homeImg = answer.getRandomHomeImg();
32-
String HomeImgUrl = urlConverter.getHomeImgUrl(homeImg);
33-
String tagRecommendImgUrl = urlConverter.getHomeRecommendTagImgUrl(tag);
32+
String HomeImgUrl = urlConverterService.getHomeImgUrl(homeImg);
33+
String tagRecommendImgUrl = urlConverterService.getHomeRecommendTagImgUrl(tag);
3434
String otherRecommendImgUrl = tagRecommendImgUrl;
3535

3636
return GetHomeRecommendResponse.builder()

src/main/java/com/ourmenu/backend/domain/home/dto/SaveAndGetQuestionRequest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.ourmenu.backend.domain.home.dto;
22

3-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
3+
import com.ourmenu.backend.domain.cache.application.UrlConverterService;
44
import com.ourmenu.backend.domain.home.domain.Answer;
55
import com.ourmenu.backend.domain.home.domain.HomeQuestionAnswer;
66
import com.ourmenu.backend.domain.home.domain.Question;
@@ -18,19 +18,20 @@ public class SaveAndGetQuestionRequest {
1818
private String question;
1919
private List<AnswerDto> answers;
2020

21-
public static SaveAndGetQuestionRequest from(HomeQuestionAnswer homeQuestionAnswer, UrlConverter urlConverter) {
21+
public static SaveAndGetQuestionRequest from(HomeQuestionAnswer homeQuestionAnswer,
22+
UrlConverterService urlConverterService) {
2223
Question question = homeQuestionAnswer.getQuestion();
2324

2425
Answer answer1 = question.getAnswer1();
2526
AnswerDto answerDto1 = AnswerDto.builder()
2627
.answer(answer1)
27-
.answerImgUrl(urlConverter.getAnswerImgUrl(answer1))
28+
.answerImgUrl(urlConverterService.getAnswerImgUrl(answer1))
2829
.build();
2930

3031
Answer answer2 = question.getAnswer2();
3132
AnswerDto answerDto2 = AnswerDto.builder()
3233
.answer(answer2)
33-
.answerImgUrl(urlConverter.getAnswerImgUrl(answer2))
34+
.answerImgUrl(urlConverterService.getAnswerImgUrl(answer2))
3435
.build();
3536

3637
return SaveAndGetQuestionRequest.builder()

src/main/java/com/ourmenu/backend/domain/menu/application/MapService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.ourmenu.backend.domain.menu.application;
22

3-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
3+
import com.ourmenu.backend.domain.cache.application.UrlConverterService;
44
import com.ourmenu.backend.domain.menu.dao.MenuFolderRepository;
55
import com.ourmenu.backend.domain.menu.dao.MenuImgRepository;
66
import com.ourmenu.backend.domain.menu.dao.MenuRepository;
@@ -51,7 +51,7 @@ public class MapService {
5151
private final MenuImgRepository menuImgRepository;
5252
private final MenuFolderRepository menuFolderRepository;
5353
private final OwnedMenuSearchRepository ownedMenuSearchRepository;
54-
private final UrlConverter urlConverter;
54+
private final UrlConverterService urlConverterService;
5555

5656
/**
5757
* 유저가 보유한 메뉴들을 가져와 위치가 같은 메뉴들은 그룹핑하여 조회
@@ -70,7 +70,7 @@ public List<MenuOnMapDto> findMenusOnMap(Long userId) {
7070

7171
return menuMaps.entrySet().stream()
7272
.map(entry -> MenuOnMapDto.from(
73-
entry.getKey(), entry.getValue(), urlConverter))
73+
entry.getKey(), entry.getValue(), urlConverterService))
7474
.collect(Collectors.toList());
7575
}
7676

@@ -174,10 +174,10 @@ private MenuInfoOnMapDto getMenuInfo(Menu menu) {
174174
if (!menuFolders.isEmpty()) {
175175
MenuFolder latestMenuFolder = menuFolders.stream()
176176
.max(Comparator.comparing(MenuFolder::getCreatedAt)).get();
177-
menuFolderInfo = MenuFolderInfoOnMapDto.of(latestMenuFolder, menuFolders.size(), urlConverter);
177+
menuFolderInfo = MenuFolderInfoOnMapDto.of(latestMenuFolder, menuFolders.size(), urlConverterService);
178178
}
179179

180-
return MenuInfoOnMapDto.of(menu, menuTags, menuImgs, menuFolderInfo, urlConverter);
180+
return MenuInfoOnMapDto.of(menu, menuTags, menuImgs, menuFolderInfo, urlConverterService);
181181
}
182182

183183
/**

src/main/java/com/ourmenu/backend/domain/menu/application/MenuFolderService.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ourmenu.backend.domain.menu.application;
22

3-
import com.ourmenu.backend.domain.cache.util.UrlConverter;
3+
import com.ourmenu.backend.domain.cache.application.UrlConverterService;
4+
import com.ourmenu.backend.domain.menu.application.converter.DefaultImgConverterService;
45
import com.ourmenu.backend.domain.menu.dao.MenuFolderRepository;
56
import com.ourmenu.backend.domain.menu.dao.MenuRepository;
67
import com.ourmenu.backend.domain.menu.domain.MenuFolder;
@@ -13,7 +14,6 @@
1314
import com.ourmenu.backend.domain.menu.exception.ForbiddenMenuFolderException;
1415
import com.ourmenu.backend.domain.menu.exception.NotFoundMenuFolderException;
1516
import com.ourmenu.backend.domain.menu.exception.OutOfBoundCustomIndexException;
16-
import com.ourmenu.backend.domain.menu.util.DefaultImgConverter;
1717
import java.util.List;
1818
import java.util.Optional;
1919
import lombok.RequiredArgsConstructor;
@@ -27,9 +27,9 @@ public class MenuFolderService {
2727
private final AwsS3Service awsS3Service;
2828
private final MenuFolderRepository menuFolderRepository;
2929
private final MenuMenuFolderService menuMenuFolderService;
30-
private final DefaultImgConverter defaultImgConvertor;
30+
private final DefaultImgConverterService defaultImgConvertor;
3131
private final MenuRepository menuRepository;
32-
private final UrlConverter urlConverter;
32+
private final UrlConverterService urlConverterService;
3333

3434
/**
3535
* 메뉴 폴더 저장
@@ -45,7 +45,7 @@ public SaveMenuFolderResponse saveMenuFolder(MenuFolderDto menuFolderDto) {
4545

4646
MenuFolder menuFolder = saveMenuFolder(menuFolderDto, menuFolderImgUrl);
4747
return SaveMenuFolderResponse.of(menuFolder, menuFolderDto.getMenuIds(),
48-
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverter);
48+
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverterService);
4949
}
5050

5151
/**
@@ -95,7 +95,7 @@ public UpdateMenuFolderResponse updateMenuFolder(Long userId, Long menuFolderId,
9595
menuFolder.update(menuFolderDto);
9696
List<MenuMenuFolder> menuMenuFolders = menuMenuFolderService.findAllByMenuFolderId(menuFolderId);
9797
return UpdateMenuFolderResponse.of(menuFolder, menuMenuFolders,
98-
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverter);
98+
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverterService);
9999
}
100100

101101
/**
@@ -126,7 +126,7 @@ public UpdateMenuFolderResponse updateMenuFolderIndex(Long userId, Long menuFold
126126
findMenuFolder.updateIndex(index);
127127
List<MenuMenuFolder> menuMenuFolders = menuMenuFolderService.findAllByMenuFolderId(menuFolderId);
128128
return UpdateMenuFolderResponse.of(findMenuFolder, menuMenuFolders,
129-
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverter);
129+
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverterService);
130130
}
131131

132132

@@ -144,7 +144,7 @@ public GetMenuFolderResponse findAllMenuFolder(Long userId) {
144144
List<MenuMenuFolder> menuMenuFolders = menuMenuFolderService.findAllByMenuFolderId(
145145
menuFolder.getId());
146146
return MenuFolderResponse.of(menuFolder, menuMenuFolders,
147-
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverter);
147+
defaultImgConvertor.getDefaultMenuFolderImgUrl(), urlConverterService);
148148
}).toList();
149149
int menuCount = menuRepository.countByUserId(userId);
150150
return GetMenuFolderResponse.of(menuCount, menuFolderResponses);

src/main/java/com/ourmenu/backend/domain/menu/application/MenuImgService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.ourmenu.backend.domain.menu.application;
22

3+
import com.ourmenu.backend.domain.menu.application.converter.DefaultImgConverterService;
34
import com.ourmenu.backend.domain.menu.dao.MenuImgRepository;
45
import com.ourmenu.backend.domain.menu.domain.MenuImg;
5-
import com.ourmenu.backend.domain.menu.util.DefaultImgConverter;
66
import java.util.List;
77
import lombok.RequiredArgsConstructor;
88
import org.springframework.stereotype.Service;
@@ -15,7 +15,7 @@ public class MenuImgService {
1515

1616
private final MenuImgRepository menuImgRepository;
1717
private final AwsS3Service awsS3Service;
18-
private final DefaultImgConverter defaultImgConverter;
18+
private final DefaultImgConverterService defaultImgConverterService;
1919

2020
@Transactional
2121
public List<MenuImg> saveMenuImgs(Long menuId, List<MultipartFile> multipartFiles) {
@@ -52,7 +52,7 @@ public String findUniqueImg(Long menuId) {
5252
return menuImgRepository.findAllByMenuId(menuId).stream()
5353
.map(MenuImg::getImgUrl)
5454
.findFirst()
55-
.orElse(defaultImgConverter.getDefaultMenuImgUrl());
55+
.orElse(defaultImgConverterService.getDefaultMenuImgUrl());
5656
}
5757

5858
/**
@@ -88,7 +88,7 @@ private MenuImg saveMenuImg(Long menuId, String imgUrl) {
8888
private MenuImg createDefaultMenuImg() {
8989
return MenuImg.builder()
9090
.menuId(null)
91-
.imgUrl(defaultImgConverter.getDefaultMenuImgUrl())
91+
.imgUrl(defaultImgConverterService.getDefaultMenuImgUrl())
9292
.build();
9393
}
9494
}

0 commit comments

Comments
 (0)