항해99 3기 87

[TIL] 2021.12.01 최종 프로젝트 진행중 - 썸네일이 회전되어 나타나는 현상 해결

카페 후기 목록을 조회할 때 기존 방식은 첫번째 사진만 보여주는데 원본사진 그대로 보여주고 있었다 (상세 페이지에서 해당 게시물의 모든 사진을 보여준다) 하지만, 화면 렌더링 시간이 너무 오래 걸린다는 사용자의 의견이 있어 이를 개선하기 위해 썸네일을 만들기로 했다 카페 후기 목록에 보여줄 작은 사이즈의 저화질 사진을 원본 사진 파일로 만들어야 한다 코드의 일부만 본다면 //썸네일 resize하기 public BufferedImage resizeImage(File originalImage, int targetWidth, int targetHeight) throws IOException { BufferedImage in = ImageIO.read(originalImage); BufferedImage res..

항해99 3기 2021.12.02

[TIL] 2021.11.29 최종 프로젝트 진행중 - RDS 백업 및 복구

[RDS 백업 및 복구] 사용자를 받기 전 새벽에 서버를 재기동하니 DB 데이터가 싹 다 날라간 적이 있다 그래서 예쁘게 쌓아놓은 데이터를 처음부터 다시 쌓은 적이 있다 이런 상황에서 데이터를 복구하기 위한 방법을 꼭 마련해 놓아야한다고 뼈저리게 느끼고 있다 신기하게도 RDS에서 미리 대비를 해주고 있었다 데이터베이스를 생성할 때 가장 아래에 보면 '추가구성' 이라는 탭이 있는데, DB 복원에 대해 생각해보기도 전, 나느 DB 생성할 때 이 부분을 펼쳐보지도 않았다 하지만 안심해도 되는 이유는 이 부분 설정에 대해 건들지 않았어도 디폴트값이 '1일'이기 때문에 최대 1일 전 DB로 되돌려놓을 수 있다 실제로 DB가 1일마다 자동으로 백업되고 있었다! 이 DB는 개발 중에 사용하고 있다가 현재는 사용하지 ..

항해99 3기 2021.11.29

항해99 3기 15조 파이널 프로젝트 : 카페왕

https://cafewang.co.kr 카페왕 누가 카페왕이 될 상인가? cafewang.co.kr 파이널 프로젝트를 완성했다! 당연히 계속 수정은 이루어져야 하지만 일단 모든 기능들은 크게 삐걱거리는 것 없이 굴러간다 예외처리나 성능개선에 신경써야 한다 피드백이 많이 필요하다! 이 글을 보시는 분들은 이용해주시고 구글 폼에 피드백 작성 부탁드립니다! 추첨을 통해서 커피 쿠폰 또는 베스킨라빈스 쿠폰을 드려요! https://www.instagram.com/cafewang.official/ 인스타 계정도 운영 중입니다 팔로우 부탁드려용용

항해99 3기 2021.11.29

[TIL] 2021.11.28 - 내일 꼭 해야할 일

[내일 꼭 해야할 일] 1st. DB 데이터 날라갔을 때 복구하는 방법 찾기 2nd. 지금까지 한 거 반영 업데이트 함수에 validator 추가 게시판 댓글 수정 시 200자 초과 막기 검색 로직 제목 & 내용 & 닉네임 다 검색되도록 수정 사진 리사이징 (모든 목록 조회 API) 프론트에서 렌더링이 너무 느리다고 함 사진이 한장한장 너무 커서 그런것 같다고 함 게시물 목록 조회, 상세조회, 검색에 왕관표시 데이터 response에 추가 게시물 등록 완료 시 같은 데이터 들어가지 않게 로직 수정 기능 연속으로 클릭 시 데이터가 중복으로 들어가지 않게 막기 저번주 팔로우왕 fromuser 아니고 touser 저번주 랭킹 쿼리 다 틀렸음!!!!!!!!!!!! group by가 틀렸음....... 12시에 ..

항해99 3기 2021.11.29

[TIL] 2021.11.27 최종 프로젝트 진행중 - 로그 파일 월별로 남기기 / 또 일어난 이슈 / DB 데이터 복제

[로그 파일 월별로 남기기] 로그 파일을 남기는게 어려운 일인줄 알았는데 의외로 간단했다 Spring Boot / InteliJ / Java 11 build.gradle dependencies { ... //로그 파일 남기기 implementation ( 'ch.qos.logback:logback-classic:1.2.3', 'ch.qos.logback:logback-core:1.2.3', ) } logback-spring.xml 생성 - 아래 블로그에서는 logback.xml로 만들라고 하지만 난 되지 않았다 이 블로그(https://hermeslog.tistory.com/451)에서 logback-spring.xml으로 하길래 따라해봤더니 됐다 '-spring'을 붙이면 아마 스프링이 자동으로 인식할..

항해99 3기 2021.11.27

[TIL] 2021.11.26 최종 프로젝트 진행중 - CORS 관련 자료 / Nginx 사진 업로드 제한 / 정식 오픈 후 첫 이슈

https://www.youtube.com/watch?v=-2TgkKYmJt4&t=8s CORS 정보 : CORS가 생긴 이유 https://juneyr.dev/2018-12-23/cors CORS 맨날 봐도 모르겠어 맨날맨날 봐도 맨날 맨날 헷갈리니까 정리. 왜 웹에서 API 서버에 요청 안가는 거에요? 😭 웹 개발 시에 자바스크립트로 야심차게 외부 서버 경로로 ajax 요청을 날리면 요청이 실패한다. 요청한 juneyr.dev 게시물/카페후기 작성 API에서 일부 사진을 첨부하고 작성완료를 눌렀을 때 아무런 반응이 없는(게시물 작성이 안됨) 상황이 일어났다 개발자도구를 켜보니 또 CORS 에러가 났다!!!!!!!!!! 참 알 수가 없다 분명히 CORS 문제는 해결 했는데.. 게다가 어떤 사진은 올라가..

항해99 3기 2021.11.26

[TIL] 2021.11.25 ~ 26 최종 프로젝트 진행중 - EC2 https 적용

드디어...며칠 동안 해도 안되던 https 적용을 완전히 해결했다 정확히는 EC2(백엔드:Spring Boot)에 https를 적용하고 난 뒤 https를 적용한 S3(프론트:React)에서 request하고 response가 정상적으로 오는 것 까지 해냈다 가장 먼저 https를 적용하고 SSL 인증서를 발급받아야 했다 다른 팀원분의 EC2에서 https를 적용하는 것을 여러 번 실패해서 내 EC2에서 했다 나는 운이 좋게 한번에 성공했다 https://luminitworld.tistory.com/85 2-6 AWS에 Let's Encrypt로 HTTPS 적용하기 현재 AWS의 서버 환경은 다음 같습니다. 운영체제 : Ubuntu 18.04 (LTS) 웹서버 : Nginx BL : PHP DBMS :..

항해99 3기 2021.11.26

[TIL] 2021.11.24 최종 프로젝트 진행중 - JPA Native Query return 형식 / Java 저번 주 날짜 구하기

'지난 주 카페 글 중 좋아요를 가장 많이 받은 사람 1명' 에 대한 API 를 만들고 있다 JPA의 기본 기능이 아닌 JPA의 native query를 사용해야할 것 같다 그래서 가장 먼저 쿼리를 만들었다 BETWEEN에는 지난주 월요일, 지난주 토요일 날짜가 들어가야하지만, 현재는 이에 해당하는 데이터가 없기에데이터가 있는 날짜로 범위를 좁혔다(오로지 테스트를 위해) SELECT r.user_id, rl.recipe_id, count(rl.user_id) AS like_count FROM recipe_like rl, recipe r WHERE rl.recipe_id = r.recipe_id AND rl.reg_date BETWEEN '2021-11-16 10:36:02.741931' AND '2021..

항해99 3기 2021.11.24

[TIL] 2021.11.23 최종 프로젝트 진행중 - tomcat에 SSL 적용 /대표님과 면담

우리 프로젝트는 내장되어있는 톰캣 서버를 사용하고 있다 톰캣 서버에서 SSL을 발급받아 https에 적용하려고 했지만 내장 톰캣이라서 한계를 느꼈다 http://1004lucifer.blogspot.com/2020/03/lets-encrypt-tomcat-ssl.html [Let's Encrypt] 우분투 Tomcat 에 무료 SSL (와일드카드)인증서 설치방법 톰캣에 설치할 무료 SSL인증서를 알아보니 대부분 3개월 기간으로만 제공을 하는데.. Let's Encrypt에서는 Cron을 이용하여 자동연장이 가능하기에 작업을 시작했다. 공식 사이트: https://letsencrypt.org/ 1004lucifer.blogspot.com 내장 톰캣이라 server.xml이 없다 내가 내장 톰캣을 잘 몰라서..

항해99 3기 2021.11.24

[TIL] 2021.11.22 최종 프로젝트 진행중 - TDD란? / 오늘의 후회 / 내일 해야할 일 / Tomcat SSL

TDD는 이것이다!!!의미를 정확히 알고있자 지금까지는 설계를 하고 개발을 한 뒤에 test를 했다 하지만 테스트를 하다 보니까 설계를 수정해야 할 필요가 생겨서 다시 설계쪽으로 넘어왔다 edge 케이스가 생각이 났고 테스트코드를 짜다 보니까 edge 케이스들은 어떡하지 라는 고민을 하게 됐고 이런 부분들을 관련자들과 모여서 설계에 대한 수정을 다시 한 다음에 개발을 하고 테스트를 진행했다 TDD는 설계를 하고 나서 바로 테스트코드부터 만드는 거다 개발이 아닌 테스트코드를 먼저 만드는거다 "Write a failing test"를 쓴다 라고 그림에 표현되어 있다 개발을 안 했으니까 테스트코드만 만들었을 때 당연히 fail이 난다 테스트코드를 짜면서 설계를 수정하는거다 '이런 edge 케이스들이 있구나~'..

항해99 3기 2021.11.22