전체 글65 ChatGPT의 코드리뷰 적용 기록 보호되어 있는 글 입니다. 2023. 6. 1. ChatGPT가 코드리뷰를 할수 있을까? 보호되어 있는 글 입니다. 2023. 6. 1. 내장DB 커스텀 함수 https://pushvalue.tistory.com/63 test case를 위한 test DB 테스트 케이스를 만들고 있다 테스트 하나를 실행하면 그 흔적이 서비스중인 테이터베이스에 그대로 남는다 언제 어떤구현부를 테스트 했는지 알수도 있겠지만 서비스와 목적이 맞지않는 데이 pushvalue.tistory.com 서비스에 사용하는 mariaDB는 쿼리문에 함수를 포함시켜 기능을 사용할수있다 그 기능으로 작업시간을 저장 하거나 해싱값을 저장 하거나 할수 있다 위의 블로그처럼 테스트를 위한 데이터베이스를 도입 했는대 해당 데이터베이스는 H2로 spring boot 내장 데이터베이스로 쿼리문에 함수를 사용하려면 커스텀 함수라는것을 직접 구현 해야 한다 mysql에서 사용하는 함수들은 내장 H2 DB 에서 .. 2023. 5. 31. test code 이미 만들어져있는 기능 구현부의 검증이 필요했다 배포자동화를 하면서 test case를 만들어 내 프로젝트의 신뢰성을 더할 필요가 있었다 기존에 데이터베이스의 컬럼명을 변경하면서 웹서버의 변수명을 수정하거나 조금씩변화가 있을때마다 기능 하나하나를 직접 확인했다 종이에 체크리스트를 작성해 하나하나 확인후 체크했는대 이 작업을 테스트코드로 구현 하기로 했다 spring Boot에는 junit 테스트 프레임워크가 포함되어 있다 Test 어노테이션으로 바로 테스트코드를 작성할수있다 기능 구현부의 메서드에서 테스트코드를 생성하는 자동완성을 가지고 있어서 사용했다 테스트메서드의 경우 기능메서드의뒤에Test를 추가하는것이 규칙인것 같다 이 코드를 실행시키면 컨트롤러에서 user객체를 join()메서드에 보내는것 us.. 2023. 5. 26. test case를 위한 test DB 테스트 케이스를 만들고 있다 테스트 하나를 실행하면 그 흔적이 서비스중인 테이터베이스에 그대로 남는다 언제 어떤구현부를 테스트 했는지 알수도 있겠지만 서비스와 목적이 맞지않는 데이터가 쌓이는것이 보기 좋지않았다 그래서 테스트 케이스가 돌아가는 테스트용 데이터 베이스를하나 만들어 줬다 spring boot 에는 내장 데이터 베이스H2가 있어서 테스트에 연동하기 적합했다 테스트가 끝나면 데이터도 같이 날아가니까 알맞은 선택이라 생각했다 기존의 데이터 베이스를 연동하는것 처럼 properties로 설정해준다 이러면 연동이 끝난것이고 내 서비스용 DB와 같은 구조의 스키마를 만들어줘야 한다 테스트코드의 일부는 이미 완성해서 몇회 돌려봤기때문에 테스트 DB의 환경에서 테스트코드가 돌아가기만 한다면 실제 서비스DB.. 2023. 5. 19. 비밀번호 해싱MD5 > sha256 문제 해결 이전의 비밀번호 암호화 글 https://pushvalue.tistory.com/42 pw 암호화(md5)후 DB에 저장하기 내 프로잭트의 비밀번호 저장 기능은 유저가 입력한 비밀번호 그대로 DB에 저장 된다 이렇게 되면 비밀번호가 노출될 위험이 있다 비밀번호가 그대로 저장되지않고 비밀번호의 해시값을 저장 pushvalue.tistory.com 테스트 코드를 만들면서 테스트코드 전용 데이터베이스가 필요했다 spring boot 에서 내장 데이터베이스를 지원 하기때문에 h2 데이터 베이스를 mysql 모드로 사용 하여 mysql 쿼리문도 연동 되도록 계획 했다 하지만 쿼리문이 완벽하게 연동 되지는 않았다 MD5 해시 함수와 sysdate 함수가 호환 되지 않았다 하는김에 sha256 으로 해싱하고 CURR.. 2023. 5. 19. 서버타임 동기화 배포 자동화를 계속해서 다듬고 있는중에 nohup.out 파일 관리에 필요를 느꼈었다 로그 기능을 추가하기 전에 구버전의 기록이 담긴 out 파일을 그때의 날자로 변경 하여 mylog 폴더에 저장 했는대 이상하게 잘 작동 하던 스크립트가 작동을 하지않았다 if [ -f nohup.out ]; then mv nohup.out nohup_$(date +%Y%m%d).out; mv nohup_$(date +%Y%m%d).out /home/${{ secrets.USER }}/mylog/; fi 굳이 한줄로 작성 된 이유는 github actions 러너가 줄바꿈을 && 로 치환하여 처리하기때문인데 그때문에 가독성을 포기해야 했다 분명 잘 잘동 하는 스크립트였다 하지만 금일은 6일로 nohup.out 파일이 no.. 2023. 5. 6. 내 서비스에 로그 적용 이전 블로그 글에서 로그를 시작한다고 했다 https://pushvalue.tistory.com/59 로그 남기기 로그를 남기기전에 겪은 문제점 out 파일 관리 문제 따로 로그를 남기지않을때 nohup.out 파일에서 기본 에러문구를 볼수 있었다 계속해서 기본 로그가 쌓이는 형태인데 나름 관리를 해주겠다고 서 pushvalue.tistory.com 로깅 목표 1 실행중인 서비스의 페이지 활성화,기능,api호출의 기록 2 로깅 모듈의 로그파일 관리 3 추후 구현할 testCase 의 성공 여부 확인 목표의 첫번째 페이지 로딩의 기록 어떤 페이지가 가장 자주 활성화 되고 사용 되는지 시각적으로 확인하고싶었다 페이지 활성화인 만큼 컨트롤러의 페이지를 반환하는 메서드에 로그를 남겼다 @GetMapping("/.. 2023. 5. 6. 로그 남기기 로그를 남기기전에 겪은 문제점 out 파일 관리 문제 따로 로그를 남기지않을때 nohup.out 파일에서 기본 에러문구를 볼수 있었다 계속해서 기본 로그가 쌓이는 형태인데 나름 관리를 해주겠다고 서버 버전이 업그레이드 될때마다 기존out파일을 nohup_20230x0x.out 서버시스템시간으로 파일명을 바꾼뒤 mylog 폴더에 옮겼다 새 서버를 실행시키면 새로운 nohup.out 파일이 자동으로 생성되도록 배포자동화 셀스크립트를 구성했다 하지만 같은날 2번이상의 커밋은 기존의 out파일의 기록을 날렸다,시간까지넣자니 out파일의 가독성이 떨어진다 다행히 logback 에는 그러한 대비까지 되어있다는 공식문서를 봤다 현 서비스의 상태확인 불가 문제 UI를 개발하면서 처음으로 제이쿼리를 사용해봤다 탬플릿 엔.. 2023. 5. 3. 이전 1 2 3 4 5 6 ··· 8 다음