분류 전체보기 229

[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

[TIL] 2021.11.21 최종 프로젝트 진행중 - 오랜만에 쉬는 일요일

오전 4시에 자서 오후 9시에 일어났다 내가 봐도 충격적이다 연속해서 잔건 아니고, 오후 4시에 일어나서 밥 먹고 6시쯤 잠들고 9시에 깼다 핑계를 대자면, 유일하게 쉴 수 있는 날이 일요일밖에 없는데 약 한달 반 동안 일요일에도 약속이 있었다 어머니 생신, 아버지 생신, 결혼기념일, 선배님들과 약속 등... 집에 콕 박혀 쉬어야되는데, 약속이 있어서 잠도 많이 못 자고 밖에 싸돌아댕겨서 제대로 쉬질 못했다 게다가 몸도 안 좋아서 약도 먹고 있어 더 쉬어줘야 할 판인데, 쉴 시간이 없었다 그래서 잠이 폭발한 것 같다 아까 약을 먹어서 그런지(약에 졸린 성분이 있다) 또 잘 수 있을 것 같다ㅎㅎ.. 밀린 것들 다 해결하고 자고싶다 1. 밀린 블로그 글 쓰기 - 20일, 21일 2. 알고리즘 스터디 공부한 ..

항해99 3기 2021.11.21

[TIL] 2021.11.20 최종 프로젝트 진행중 - 멘토링 / 프로젝트 주제 변경 / response 형식 변경

오늘은 바울 멘토님께 멘토링을 받는 날이다(10:30 ~ 11:00) 이번주 회고 내용 - 백엔드 CI/CD 방법 공부, 보류(.gitignore적용방법 어려워서) Git Action에 환경변수를 주는 방법이 있다 찾아보시길 https 사설 인증 적용(백엔드 배포 서버) 클라우드 프론트를 적용한건지? 직접 적용한건지? -> Open SSL 적용했다 NGrinder → JMeter 로 변경 부하테스트는 JMeter를 제일 많이 사용한다. 사용방법만 좀 익숙해진다면 잘 쓸 수 있을 거다 백엔드 질문 디비조회 할때 100만개 중 하나를 찾아야 하면, 이런 성능개선은 어떻게...? index를 잘 걸어주세요 이거 한번 읽어보세요 : https://yurimkoo.github.io/db/2020/03/14/db-..

항해99 3기 2021.11.21

[TIL] 2021.11.19 최종 프로젝트 진행중 - 알림 기능 / 웹소켓 / JMeter 사용 방법 / 해야할 일

오늘 오전엔 jmeter에 대한 강의(인프런 백기선님 테스트코드 강의 중) 내용을 정리하고 오후부터 알림 기능을 위해 웹 소켓에 대해 찾아보았다 너무 복잡해보인다 채팅에 대한 웹 소켓 예제는 많았지만 웹 소켓을 가지고 알림 기능을 만드는 예제는 거의 없었다 https://velog.io/@skygl/FCM-Spring-Boot%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9B%B9-%ED%91%B8%EC%8B%9C-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0#step-5---%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C FCM, Spring Boot를 사용하여 웹 푸시 ..

항해99 3기 2021.11.20

[TIL] 2021.11.18 최종 프로젝트 진행중 - nGrinder->JMeter 변경

nGrinder를 써보려고 했지만 jmeter로 바꿔볼까 한다 nGrinder는 정보가 너무 없다 부하테스트를 하는데, 가상 사용자를 70명으로 설정하고 테스트를 하면 timeout이라는 에러가 나는데 왜 나는 지 검색해도 정보가 없다(60명까지는 된다) 빨간 공은 에러가 나서 테스트하다 멈춘 것이고, 초록 공은 테스트가 성공적으로 완료된 것이다 가상 사용자(Vuser)가 60명일 때까지는 에러가 안 났지만 가상 사용자를 70명으로 설정했을 때부터 에러 폭발이다 그래서 10초도 안되서 테스트가 에러로 인해 종료된다 로그를 확인해보면 time out 에러가 수두룩하다 원인을 찾을 수 없다 jdk문제인것 같아 openjdk를 oraclejdk로 어찌어찌 해서 겨우 깔았는데도 이 모양이다 우리 프로젝트 성능이..

항해99 3기 2021.11.18

[TIL] 2021.11.17 최종 프로젝트 진행중 - nGrinder 뻘짓

어제 AWS에 nGrinder를 설치했다 https://nazero.tistory.com/130 [TIL] 2021.11.16 최종 프로젝트 진행중 팀원분께서 Github Action을 적용하는 과정에서 맞딱뜨린 에러다 contextLoads() FAILED 라는 에러가 난다 BackEndApplicationTests를 수정한 적이 없다 그래서 'contextLoads() FAILED' 키워드로 구글에 검색해.. nazero.tistory.com 이 글에서 open jdk 8 버전을 깔았다고 적혀있는데, 이걸 깔면 안되는거였다 강의(https://opentutorials.org/module/351/3337)에서 open jdk를 설치한 뒤 프로세스를 1 이상으로 지정하게 되면 오류가 발생하기 때문에 오라..

항해99 3기 2021.11.17

[TIL] 2021.11.16 최종 프로젝트 진행중 - nGrinder 실행

팀원분께서 Github Action을 적용하는 과정에서 맞딱뜨린 에러다 contextLoads() FAILED 라는 에러가 난다 BackEndApplicationTests를 수정한 적이 없다 그래서 'contextLoads() FAILED' 키워드로 구글에 검색해봤더니 우리와 같은 상황인 글을 봤다 https://enant.tistory.com/29 Github Action 빌드시 contextLoads Failed 오류 spring server를 ec2에 배포하는 과정을 자동화할 방법을 찾다가, github Action을 사용해보기로 했다. Github Action? Github Action을 간단히 설명하면 빌드, 테스트, 배포 등의 작업을 자동화 시켜주는 도구이 enant.tistory.com Gi..

항해99 3기 2021.11.16

[TIL] 2021.11.15 최종 프로젝트 진행중 - 게시물 수정 로직 변경 / nGrinder 준비

게시물 수정 로직을 다시 짜고 있다 전혀 생각 못했는데 레시피 수정 로직을 먼저 만드신 다른 팀원분의 PR을 읽어보는중 IN 절을 사용하신걸 봤다 IN절을 전혀 생각 못했다 나는 where 절로 하나하나씩 찾을 것만 생각했었다 그래서 JPA에서 IN 절을 사용하는 방법을 찾아봤다 https://happygrammer.tistory.com/158 JPA - 스프링 데이터 JPA에서 쿼리 메소드 안에 지원되는 키워드 쿼리 메소드는 스프링 데이터 JPA의 핵심적인 기능중 하나로 메소드 이름으로 쿼리를 생성할 수 있다는 장점이 있다. 메소드 이름으로 쿼리를 생성을 위해 인터페이스에서 사용할 사용자 쿼리 happygrammer.tistory.com 이 블로그 내용을 보면 JPA 공식 문서의 일부를 가져온 것이다 ..

항해99 3기 2021.11.15