프로젝트/웹 ERD 프로젝트
-
[리팩토링] 가독성을 위한 리팩토링2프로젝트/웹 ERD 프로젝트 2023. 12. 8. 23:59
지난번 포스팅했던 코드를 리뷰받았는데. 가독성이 떨어지는 것을 따로 private 메서드로 만들어서 가독성을 높혔었었던 작업을 더 진행하면 좋을것 같다고 했다. 그리고 null값으로 직접 비교 하는게 아닌, isEmpty를 사용하면 더 좋겠다고 했다. 그래서 지난번 리팩토링에 이어서 추가적으로 가독성을 올리기 위해 비즈니스 로직들을 더 추상화 시켜봤다! 리팩토링 전 코드 @Transactional public String sendMail(MailDTO mailDto, String addressListStr, MultipartFile attachmentFile) { dao.saveMail(mailDto); //보낸 메일 고유번호 int recentMailNum = mailDto.getMail_num(); ..
-
[리팩토링] @Transactional 적용프로젝트/웹 ERD 프로젝트 2023. 11. 27. 22:12
개요 저번에 친구가 dao.saveMail(mailDto); 이후에 예외가 발생하면 어떻게 될까? - 첨부파일은 이미 저장되어 있는데 삭제되어야 할까? - DB에 보낸 메일정보를 저장은 삭제되어야 할까? 라는 문제를 줘서 @Transactional 에 대해서 찾아보면 정리를 좀 했었다. https://hsch19.tistory.com/13 @Transactional이란 무엇인가 개요 친구가 문제를 줬다. dao.saveMail(mailDto); 이후에 예외가 발생하면 어떻게 될까? - 첨부파일은 이미 저장되어 있는데 삭제되어야 할까? - DB에 보낸 메일정보를 저장은 삭제되어야 할까? 검색해 hsch19.tistory.com 그래서 이번엔 @Transactional을 사용해서 프로젝트를 리팩토링 해봤다...
-
[리팩토링] 가독성을 위한 리팩토링프로젝트/웹 ERD 프로젝트 2023. 11. 19. 22:57
피드백 내용 MemberDTO login = session.getAtrribute("login"); //현재 사용자 정보 이전까지 사용자 정보를 가져올때 이 문장을 계속 반복해서 썼었다. 나는 내가 쓴 코드라서 읽는데 불편함을 못느끼고 있었는데, 피드백을 받고보니 남이 봤을 땐 가독성이 떨어질 수 있겠다는 생각을 했다. 그리고 사용자 정보를 가져오는 반복되는 코드를 따로 private메서드로 만들어서 이름을 재정의하면 가독성을 높일 수 있다는 것은 생각도 못했었는데, 정말 좋은 방법인거 같다. private MemberDTO getUserInfoBySession() { MemberDTO login = session.getAtrribute("login"); //현재 사용자 정보 } @RequestMappi..
-
[리팩토링] Controller/ Service/ DAO 책임 분배프로젝트/웹 ERD 프로젝트 2023. 11. 9. 16:41
프로젝트를 진행하면서 Controller/ Service/ DAO(Data Access Object)로 나눠서 진행을 했었는데, 정확히 "왜 나누지?" 에 대한 궁금증을 해결하지 않고 프로젝트를 진행하다 보니 Controller에서 너무 많은 일을 하는 것 같다는 피드백이 들어왔다. Controller/ Service/ DAO 각각의 책임 Controller 클라이언트의 요청을 처리하고 해당 요청에 대한 응답을 생성하는데 사용 UI와 상호작용하고, 클라이언트에서 받은 데이터를 처리 데이터 유효성 검사, 사용자 입력 처리, 응답생성 등의 제어흐름을 관리 Service 비즈니스 로직을 구현하고 제공하는 역할 Controller와 DAO간의 중간 레이어로 작용하여 비즈니스 로직을 추상화하고 모듈화 데이터를 가..
-
팀 프로젝트프로젝트/웹 ERD 프로젝트 2023. 11. 9. 15:10
원래는 노션에 정리하고 있었지만, 노션의 틀이 너무 자유로워서 중구난방으로 보였다. 그래서 처음부터 티스토리에 다시 정리해보자는 생각으로 블로그를 개설했다. 우선, 8월말부터 10월31일까지 학원사람들과 함께 팀 프로젝트를 진행했다. 프로젝트 주제는 웹 ERD 프로그램이었고, 내가 맡은 부분은 내부 메일기능/ 프로젝트 알림(웹소켓 활용)/ WBS API 이다. 1. 내부 메일 내부 메일쓰기 / 내게 쓰기 메일함 / 메일 상세보기 첨부파일 다운로드 2. 프로젝트 알림(WebSocket활용) 프로젝트 생성시, 프로젝트 참여인원들에게 토스트 메세지를 띄움 로그인 되지 않은 참여인원은 상단 메뉴바에 알림 아이콘을 통해 확인 가능 3. WBS 프로젝트 관리 API / Todo관리 API 발표기한 때문에 급하게 마..