프로젝트

프로젝트/레시피토리(Recipetory)

Artillery 부하 테스트 해보기

1. POST 데이터 구하기 (csv) post 테스트를 하기 위해서.. 음식 관련한 정보가 필요했다. 부하 테스트에 사용될 놈들이었다. 공공데이터 포털에 들어가.. 음식 이름이 담긴 csv 파일을 다운받아보았다. 파일 이름을 'food-name-db.csv'로 적당히 바꾸고, UTF-8 인코딩을 적용하여 저장한 뒤 확인해보았다. 으음~ 뭔가 많이 있지만 음식 이름으로 사용할 5번째 column(index기준)만 필요할 것 같다. 해당 column만 뽑아서 새로운 csv 파일을 만들어야겠다. 그러기 위해 python의 csv 모듈을 사용해서 5번째 column들만 뽑아 새로운 csv파일을 작성하는 스크립트를 짰다. import csv content = [] with open('food-name-db.cs..

프로젝트/부추 농장(spring boot + mySQL)

6. Notification 기능 추가

# 계획 누군가가 회원이 작성한 일기에 좋아요를 누르거나 누군가가 회원을 팔로우하거나 누군가가 회원을 일기 안에서 태그할 때(태그는 "@" 뒤에 아이디를 추가하는 것으로 하자) 해당 회원에게 알림, 즉 Notification이 가는 기능을 추가하고 싶었다. 1. Notification Entity 설정 알림을 DB에 저장되는 하나의 객체로 만들었다. 알림에 필요해보이는 field들을 생각해보았다. @Builder @AllArgsConstructor @NoArgsConstructor @Getter @Entity @EntityListeners(AuditingEntityListener.class) public class Notification extends BaseEntity { @Id @GeneratedVa..

프로젝트/부추 농장(spring boot + mySQL)

5. querydsl 적용 (페이징)

자바 언어로 JPQL을 작성할 수 있게 해주는 오픈소스 프레임워크 querydsl을 프로젝트에 적용시켜 보도록 하겠다. Sorting 관련 내용은 따로 복잡하게 하지 않았고, 기본적인 내용은 다른 포스트에서 설명한 만큼 이번에는 페이징까지 한꺼번에 처리하도록 하겠다. 2023.03.21 - [JAVA/Spring] - [QueryDSL] QueryDSL이란? + 간단한 실습 모든 농장일기를 불러오되, 10개씩 페이징 처리를 할 것이다. 홈 화면에서 보여지는 "팔로우한 사람들의 농장일기 보기" -> 내가 작성한 일기와 팔로우한 사람들의 일기만 보이게 할 것이다. 특정 유저 페이지에서 보여지는 "해당 유저가 작성한 농장일기 보기" -> 유저 상세보기 페이지의 유저가 작성한 일기만 보이게 할 것이다. 특정 유..

프로젝트/부추 농장(spring boot + mySQL)

4. 에러 핸들링

웹 어플리케이션에서 발생할 수 있는 에러의 종류는 무궁무진하다. 서버의 소프트웨어 오류일 수도 있고, 하드의 오류일 수도 있고, 유저의 input 오류일 수도 있고, 네트워크 오류일 수도 있고... 그 모든 예외나 오류들을 직접 처리하기는 힘들지만, 적어도 개발한 어플리케이션 안에서 발생할 수 있는 예외들은 최대한 핸들링해야한다. 실제 개발하는 시간보다 디버깅 하는 시간이 훨씬 길듯, 예외 처리 역시 신중하고 확실하게! 해야한다. 1. Spring Boot에서 Custom Exception 처리의 동작 과정 @ControllerAdvice class+ @ExceptionHandler method 구조로 동작한다. @ControllerAdvice가 붙은 클래스의 method들은 @Controller 클래스..

김부추
'프로젝트' 카테고리의 글 목록 (3 Page)