- 팀원들과의 공유 폴더&문서함 만들기
- article Spring, REST API 개발하기 => DTO작성하다가 디비 설계가 잘못되어 중단
- 회의 후 도출되는 문제 해결하기
카카오맵 API 중 다각형 이벤트 등록하기 2 https://apis.map.kakao.com/web/sample/addPolygonMouseEvent2/
폴리곤 만들기 https://iron-jin.tistory.com/entry/%EC%B9%B4%EC%B9%B4%EC%98%A4-%EC%A7%80%EB%8F%84-api-%EC%8B%9C%EA%B5%B0%EA%B5%AC-%ED%8F%B4%EB%A6%AC%EA%B3%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0-feat-javascript
- DB 다시 설계하기 (Book 테이블 추가 및 속성 변경)
CREATE TABLE user
(
email
varchar(50) PRIMARY KEY,
password
varchar(20) NOT NULL,
nickname
varchar(10) NOT NULL UNIQUE,
introduce
varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE book
(
bookno
int NOT NULL auto_increment,
title
varchar(50) DEFAULT NULL,
writer
varchar(50),
writedate
datetime DEFAULT current_timestamp(),
province
varchar(10),
city
varchar(10),
startdate
datetime,
PRIMARY KEY (bookNo
),
FOREIGN KEY (writer) REFERENCES user (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE article
(
articleno
int NOT NULL auto_increment,
bookno
int,
title
varchar(50) DEFAULT NULL,
writedate
datetime DEFAULT current_timestamp(),
score
DECIMAL(3,2),
weather
varchar(10),
text
mediumtext,
traveldate
datetime,
day
int,
PRIMARY KEY (articleno
),
FOREIGN KEY (bookno) REFERENCES book (bookno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE article_score
(
scoreno
int NOT NULL auto_increment,
score
int NOT NULL,
author
varchar(50),
articleno
int,
PRIMARY KEY (scoreno
),
FOREIGN KEY (author) REFERENCES user (email),
FOREIGN KEY (articleno) REFERENCES article (articleno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE article_comment
(
commentno
int NOT NULL AUTO_INCREMENT,
articleno
int,
writer
varchar(50),
writedate
datetime DEFAULT current_timestamp(),
text
varchar(100),
PRIMARY KEY (commentno
),
FOREIGN KEY (writer) REFERENCES user (email),
FOREIGN KEY (articleno) REFERENCES article (articleno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 팀 미팅 및 회의를 통해 개선 방안 및 세부 개선점 정리 - 세부 내용은 위와 같음
- Swagger 사용
Reference https://jojoldu.tistory.com/31 http://tech.javacafe.io/spring%20boot/2019/04/21/Spring-swagger/
Code
Swagger 설정 파일
// swaggerConfig.java
package com.ssafyA205.loginEX.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class swaggerConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
라이브러리 추가
// pom.xml
...
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
...
실행 화면 (localhost/swagger-ui.html)
- 하나의 지도에 클러스터링으로 나타내기
- 위치 데이터가 없을 경우의 처리 방안
main 페이지
메인페이지 사진 Carousel로 구현 ( 자동 슬라이드 )
글자 애니메이션 삽입
로그인 / 회원가입 코드 수정
![[책장2] Untitled](README.assets/[책장2] Untitled.jpg)
- booking.com 사이트 참고
- 기행문 추천기능
- STS와 Git연동에 문제 발생 => 문제 해결을 위해 JGit이 아닌 GitBash를 이용!
- 틀만 생성 => 생성해둔 틀에 맞춰 파일 생성시 이름 양식 맞추면 좋을 듯!
- Article에 대한 dto 코드 약간 작성!
- Frontend와 Backend를 통합하여 하나의 서버로 연동해 보았으나 빌드나 페이지를 읽는 데 문제 발생
- Skeleton Project처럼 Frontend와 Backend 각각 다른 서버에서 실행 후 Axios로 연동 테스트 예정
- 행정구역 정보를 geoJosn으로 변경하여 폴리곤 형태로 맵으로 띄워 이벤트 효과를 구현할 예정
- geoJson에서 값을 받아오는 부분에 문제가 발생하여 문제 해결중
- 메인페이지 구현
- 메인페이지 디자인 변경으로 인한 수정 진행
- Article관련 Rest API 관련 개발 진행중 => Book이 우선적으로 필요하여 아직 완성 못함
- 에디터 활용해보기, 실제 데이터 어떤식인지 살펴보기
-
CKEditor 4 Vue 사용코드 https://ckeditor.com/docs/ckeditor4/latest/guide/dev_vue.html#editor-instance
-
CKEditor 4 CDN으로 간단 테스트 https://cdn.ckeditor.com/
- Frontend에서 Axios로 REST API 사용하여 Backend와 통신
- Frontend에서는 FormData로 보낼 데이터를 묶은 후 application/json 형식으로 전송
- Backend에서는 @RequestBody를 이용해 json 데이터를 VO에 매칭시켜줘야 함
- 카카오맵에 폴리곤 기능 추가하여 클릭하면 해당지역으로 확대되는 이벤트 적용
- Article에 대한 Spring REST API 설계 및 개발
- 개발 중 직면한 문제 해결
- Book에 대한 Spring REST API 설계 및 개발을 위한 파일 생성
- 사용자들이 쉽게 접근 할 수 있도록 기존의 메인페이지에서 더 간결하게 정보를 전달 (기존 웹사이트들의 형태를 모방)
- keyframe과 vue-carousel 3d opensource를 활용하여 동적인 애니메이션 효과를 유저에게 전달
- 목적에 맞는 브랜드 컬러 설정
![[수정본 모음집] 인기기행문 탑5 (3)](README.assets/[수정본 모음집] 인기기행문 탑5 (3)-1595494574994.jpg)
-
전체적인 색감 통일하기 -> 남색
-
Top5페이지 누르면 top5만 나오도록수정
-
검색옵션 모든페이지
옵션검색
으로 수정! -
Book 생성, Article 생성 나눠야함
- Gitlab 내 공유 프로젝트로 기능 옮기기
- 연동 부분에서 CORS 문제 다시 발생 -> proxy 이용하여 연동
- 내일 AWS로 server 올려서 정상 동작하는지 테스트 예정
- branch 관리하기
현재 우리의 branch 구조
master
ㅣ
develop
| |
front back
| | => 각자 branch 추가할 부분
git branch : 현재 로컬에 있는 브랜치 확인하는 명령어
git remote update : 원격 브랜치에 접근하기 위해 갱신하는 명령
ex) git checkout -t origin/develop git checkout -t origin/front git checkout -t origin/back ...
ex) git checkout back git checkout front
ex) git branch article
7. gitlab 페이지에서 왼쪽 메뉴바에 있는 Merge Requests를 누르고 new merge request(초록버튼)을 누르고 source는 하위 브랜치 target은 상위 브랜치 설정
##### 6.상위 branch로 이동하여(front, back) merge를 실시
ex) git merge --no-ff article
##### 7.그 다음 상위 branch인 develop으로 이동하여 merge 실시
ex) git merge --no-ff front or back(자신의 포지션)
##### 8.develop branch를 remote에 push 하고 싶다면 명령어 실시
ex) git push origin develop
Branch를 바꾸면 해당 branch에서 push한 내용만 확인 가능!!
디폴트 master일텐데 master로 되어 있으면 develop에서 push한 내용이 보이지 않는 듯!!
##### 9. 가장 상위 branch인 master에 push하고 싶다면 master로 이동 후 merge -> push 실시
ex) git checkout master
ex) git merge --no-ff develop
ex) git push origin master
Branch를 바꾸면 해당 branch에서 push한 내용만 확인 가능!!
- https://mylko72.gitbooks.io/git/content/branch/branch_type.html
- https://blog.outsider.ne.kr/572
- https://trustyoo86.github.io/git/2017/11/28/git-remote-branch-create.html
- https://trustyoo86.github.io/git/2017/11/28/git-remote-branch-create.html
- jar 파일로 build하여 내장 tomcat으로 실행, local의 frontend와 REST API 연동 확인
- SpringBoot는 jsp를 지원하지 않아 webapp 내의 페이지는 404 error 발생, war로 바꾸면 jsp 사용 가능하다고 함
- 현재는 내장 tomcat을 쓰고 있는데 이를 docker image로 만들어서 docker에서 배포하는 것도 생각 중
- Book에 대한 Spring REST API 설계 및 개발
- 카카오맵 기능 재정의 및 활용도 재구성
지역별 여행문 조회를 위한 기능으로
- Book에 대한 Spring REST API 설계 및 개발
- User에 대한 Spring REST API 설계 및 개발 시작
- Vue-router, Vuex 공부 및 프론트 내 로그인 정보 저장 구현 중
- 출처: https://lovemewithoutall.github.io/it/vue-login-demo/
- vue-router, vuex 공부
- 동적인 화면 구현을 위해 JavaScript 공부
- 메인페이지 틀 코딩완료 후 다른 페이지 작업 시작
- geojson의 유효하지 않은 영역 수정 완료(폴리곤 병합을 통해서)
-
map.geojson으로 부터 폴리곤 영역을 받아와 카카오맵에 뿌려줌
-
우리가 원하는 용도로 사용하기 위해서는 각 지역 코드를 매핑해서 보여줘야 함
서울 11
경기도 41
- 인천 28
강원도 42
경상도 47 48
- 부산 26
- 대구 27
- 울산 31
충청도 43 44
- 대전 30
- 세종시 36
전라도 45 46
- 광주 29
제주도 50
각 지역코드의 앞자리가 위와 같으므로 val.properties.SIG_CD.substring(0,2) == 'CODE' 를 통해 매핑해야 함! => 카드에서 클릭했을 때 넘겨주는 값을 매칭하는 방식으로
- Login 정보 Vuex에 저장 및 초기화 방지 구현: Timeout이 존재하지 않아 완벽하지 않음. JWT 다시 도전
- 회원가입 기능 연동: 아직 성공 여부에 따라 Redirect나 팝업 띄우는 게 제대로 동작하지 않음. async / await 다시 해 보기
- AWS 내에서 Frontend 및 Backend 각각 구동 성공: 아직 서로 연동되는지는 확인하지 못함
- DB 살짝 수정: Book과 Article의 Startdate의 유형을 datetime에서 date로 변경
- DB에 더미데이터 저장 및 Frontend에서 불러오기 기능 구현
- Jira 4주차 스프린트 제작
- 에디터 db와 연동하기 진행중
- 계속적인 에디터의 기능 실험중
- 날씨 굳이 필요없다
- 유저 평점 압력 이슈(중복 관련) => 하나의 게시글에 중복으로 평점 입력할 수 없게!
- 하나의 게시글에 유저들의 평점 입력 횟수 카운트 해아함!
- rest-api book-controller img인자 없음!! => img 인자 추가해야함!
- 게시글 좋아요는 나중에!!
- 회원정보수정 페이지에서 프로필 이미지 넣는 폼 추가하기
- 에디터에서 이미지 처리하기
- 파이어베이스 or aws => 파이어베이스로 진행하기로!
- book DB에 description 추가!
- user db에 back-img, profile-img 추가될 것으로 예상
- article 작성시 day1, day2 보다는 첫번째 여행, 두번째 여행이 보기에 좋을 듯
- firebase에 이미지 올리는데 cross origin 에러 발생 => 오류 해결 중...
- input-type = file 형태로 firebase에 올릴 수 있음(썸네일은 충분히 가능할 듯)
- 하지만 editor 안에서의 img는 위와 같은 방법으로는 해결하기 어려울 듯
- 에디터안에서 src 태그(img)만 추출해보기
- 추출한 img를 firebase에 올리고 가져오기 로 접근 해봐야할 듯!