티스토리 뷰

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.mobeom.local_currency.recommend;
 
// .......중간 생략 ........
 
@Service
@AllArgsConstructor
public class RecommendServiceImpl implements RecommendService {
    private final RecommendRepository recommendRepository;
    private final RatingRepository ratingRepository;
 
 
    @Override
    public List<String> findUserBasedRecommend(String id) throws TasteException {
 
        MysqlDataSource dataSource = new MysqlDataSource();
        dataSource.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=UTC");
        dataSource.setUser("mariadb");
        dataSource.setPassword("mariadb");
        MySQLJDBCDataModel model = new MySQLJDBCDataModel
                (dataSource, "rating""user_id",
                        "store_id""star_rating"null);
        ReloadFromJDBCDataModel fastModel= new ReloadFromJDBCDataModel(model); 
// 다음 유저의 즐겨찾기 데이터가 없을시 최근 디비에 갔다온 유저 데이터가 나오는 버그 발생.
        UserSimilarity similarity = new PearsonCorrelationSimilarity(fastModel);
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.7, similarity, fastModel);
        UserBasedRecommender recommender = new GenericUserBasedRecommender(fastModel, neighborhood, similarity);
 
        List<RecommendedItem> recommendations = recommender.recommend(Long.parseLong(id), 7);
        List<String> recommendItemIds = new ArrayList<>();
 
        for (RecommendedItem recommendation : recommendations) {
            recommendItemIds.add(Long.toString(recommendation.getItemID()));
        }
 
        return recommendItemIds;
    }
 
    @Override
    public List<String> findItemBasedRecommend(String id) throws TasteException {
        MysqlDataSource dataSource = new MysqlDataSource();
        dataSource.setUrl("jdbc:mysql://localhost:3306/test?serverTimezone=UTC");
        dataSource.setUser("mariadb");
        dataSource.setPassword("mariadb");
        MySQLJDBCDataModel model = new MySQLJDBCDataModel
                (dataSource, "rating""user_id",
                        "store_id""star_rating"null);
        ReloadFromJDBCDataModel fastModel = new ReloadFromJDBCDataModel(model);
        ItemSimilarity similarity = new PearsonCorrelationSimilarity(fastModel);
        ItemBasedRecommender recommender = new GenericItemBasedRecommender(fastModel, similarity);
 
        Long itemId = findOneRatedStore(id).getId();
        List<RecommendedItem> recommendations = recommender.mostSimilarItems(itemId, 7);
 
        List<String> recommendItemIds = new ArrayList<>();
 
        for (RecommendedItem recommendation : recommendations) {
            recommendItemIds.add(Long.toString(recommendation.getItemID()));
        }
        return recommendItemIds;
    }
 
// 하단 생
 
}
 
 
 
cs

16 ~ 18 라인: 이 처럼 하드코딩된 값은 application.properties 파일로 외부 접속값으로 전환해야 AWS 서버에서

수정가능하게 됩니다. 따라서 다음과 같이 변경해 주세요

 

일단, application.properties 파일을 생성합니다.

 

**********

 

1
2
3
4
5
6
7
8
spring.datasource.url=jdbc:mariadb://......rds.amazonaws.com
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.username=mobeomsimain
spring.datasource.password=mobeomsimain
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto= update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
cs

**************

다음은 아래와 같이 합니다. 

참조 블로그를 연결하겠습니다.

 

https://engkimbs.tistory.com/765

 

[Spring Boot #9] 스프링 부트 외부 설정, 설정값 검증

| 스프링 부트 외부 설정 스프링 부트는 외부 설정을 통해 스프링 부트 어플리케이션의 환경설정 혹은 설정값을 정할 수 있습니다. 스프링 부트에서 사용할 수 있는 외부 설정은 크게 properties, YA

engkimbs.tistory.com

hied에서 호스트명아마존의 엔드포인트 입력

 

application.properties 파일에 

 

spring.datasource.url=jdbc:mariadb://......rds.amazonaws.com:3306/mobeomsimin

 

포트번호 뒤에 데이터베이스 이름 으로 생성

 

 

 

 

application.properties 에서 create로 변경하여 실행

 

 

그 후에 hide에 생성한 데이터베이스(mobeomsimin)에 table 만들어졌는지 확인 

 

update로 다시 실행

 

그러면 자바는 실행됨.

 

 

[AWS] RDS MySQL 한글깨짐 해결방법

출처:(좌충우돌 프로그래밍)

https://winterandsnow.tistory.com/12#:~:text=AWS%20RDS%EC%9D%84%20%EC%9D%B4%EC%9A%A9%ED%95%B4%20MySQL,%EC%9D%B4%20%EC%95%84%EB%8B%8C%20latin%2D1%EC%9E%85%EB%8B%88%EB%8B%A4.&text=%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%20%EA%B7%B8%EB%A3%B9%EC%9D%84%20%ED%86%B5%ED%95%B4%20%EC%9D%B8%EC%BD%94%EB%94%A9,%EA%B9%A8%EC%A7%90%EC%9D%84%20%ED%95%B4%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.&text=%EA%B7%B8%EB%A3%B9%20%EC%9D%B4%EB%A6%84%20%2D%20%EC%95%84%EB%AC%B4%EA%B1%B0%EB%82%98%20%EC%8D%A8%EC%A3%BC%EC%8B%9C%EB%A9%B4%20%EB%90%A9%EB%8B%88%EB%8B%A4

 

한글깨짐 출처보고 그대로 따라하였음.

'1. 자바' 카테고리의 다른 글

자바/2020-08-29/스프링/ JPA 에서 final 을 활용한 Repository 코드의 이해  (0) 2020.08.29
File Handler Proxy.java with Generic  (0) 2020.08.26
Array - Score.java  (0) 2020.08.14
Array - Player.java  (0) 2020.08.14
OOP - Phone.java  (0) 2020.08.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함