프로젝트/나날이
-
나날이 백엔드 CI-CD 구축의 과정프로젝트/나날이 2023. 11. 20. 22:17
이전 2번의 프로젝트 Trend_Pick, 피료해에서는 수동으로 배포를 했다. ec2 서버에 연결한 다음에 로컬에서 JAR 파일을 보낸 뒤 직접 자바 파일을 실행시켰다. 배포를 한 후에도 계속해서 변경사항이 생겼고, 생길 때마다 ec2 서버에 JAR 파일을 보내고 기존의 실행되는 애플리케이션을 kill 한 다음에 다시 자바를 실행시키는 일이 매우 번거로웠다. 계속 CI-CD를 구축해봐야지라고 생각만 하고 다른거 하기 바빠서 안했었는데 이번에는 시간을 들여서 제대로 해봤다. (물론 계속 안돼서 10시간은 넘게 썼다. 구글링해도 다 달라서 잘 안되더라......) scripts/deploy.sh #!/usr/bin/env bash REPOSITORY=/home/ubuntu/nanali cd $REPOSITO..
-
Get 요청에서는 Body로 데이터를 받으면 안된다프로젝트/나날이 2023. 11. 17. 19:08
@GetMapping public GarmentResponseDto Garment(@RequestBody GarmentRequestDto request) { // 코드 생략 } 처음 설계를 할 때에는 Garment를 조회하는 함수에서 데이터를 받을 때 @RequestBody로 temp, uv, rain, sex등의 데이터를 받았다. postman으로 테스트 했을 때에도 문제가 없어서 괜찮은줄 알았다. 그런데 프론트엔드 개발자에게서 GetMapping을 할 때 body로 통신을 할 수 있냐는 질문을 받았다. 찾아보니 Http Get Method에는 body가 없는게 표준 스펙이라고 했다. 아주 예외적으로 현업에서 파라미터가 너무 많으면 post method를 열어두고 body로 받기는 하지만 선호하는 방식..
-
옷 사진 데이터 설계 방식에 대한 고민프로젝트/나날이 2023. 10. 29. 00:08
이번 프로젝트에서 팀장을 맡게 되었다. 기획자가 따로 없어서 기획자의 역할을 같이 했기 때문에 '나날이' 프로젝트에서 가장 시간 투자를 많이하고 고민을 많이 한 부분이 기획과 백엔드 설계에 대한 방식이다. 그렇기 때문에 기획과 설계에 대한 내용을 정리하려고 한다. 옷 데이터를 저장하는 방법 처음에는 공공데이터를 활용하려고 했으나 생각보다 데이터가 좋지 않아보여서 무신사에서 크롤링을 해서 그 사진들로 추천하는 방식으로 변경하였다. 사진 데이터를 어떻게 저장할지에 대한 고민이 있었다. 옷 사진은 전체 코디 사진, 아이템별 사진으로 저장된다. 옷은 db에 저장해서 필요한 상황에 맞게 select 해오기로 했다. 옷을 저장할 때 저장되는 테이블에는 사진 url과 이름, id라는 기본적인 값과 온도, 강수량, 자..
-
실시간 날씨 open api 활용프로젝트/나날이 2023. 10. 27. 20:20
'나날이'는 날씨에 따른 옷을 추천해주는 서비스이다. 그렇기 때문에 실시간 날씨 데이터를 받아오는 것이 매우 중요하다. open api를 검색하던 도중 Weather Forecast API라는 API를 발견해서 이걸 활용하기로 했다. api 사이트 https://open-meteo.com @Slf4j @Service @RequiredArgsConstructor public class WeatherService { public ResponseEntity weather(LocalDateTime weatherTime) throws IOException { String today = weatherTime.toString().concat("T"); today = today.substring(0, today.ind..