728x90 프로젝트34 1~2일차 ) 팀 프로젝트 시작 ^___^ /) 팀 프로젝트를 하려고 구인하던 중 프로젝트를 하도록 도와주는 사이트가 있길래 신청했다. (돈을 내야 한다. 2만원..) 팀도 짜주고 프로젝트 예시와 기한도 준다. 여러 팀과 함께 시작하는 거라 동기 부여도 된다. 자율 팀을 짜는 시간에 프론트엔드 개발자 분께서 연락을 주셔서 기획자, 디자인, 프론트, 백엔드(나) 가 모여 프로젝트가 시작됐다. 8월 3일, 첫째 날 디스코드에 모여 서로 자기소개를 하고 아이템 회의를 했다. 그런데 기획자 분의 상태가 좀 이상했다... 기획을 해본 적도 없으신데다 말도 없고 어버버하시고 뭔가 경계성 지능 장애 같으셨다.. 그라운드 룰을 정했는데, 나는 최대한 소통과 대화를 강조했다. 그 전에 팀플을 했을 때 제일 힘들었던 게.... 안 되면 안 된다고 말하지 왜 말 안 하지.. 2023. 8. 4. Service 를 테스트해서 오류를 잡아내다! 자세한 테스트 방법은 https://hyuil.tistory.com/212 Junit5 Test ) Service 를 테스트 해보자! Junit5 를 사용하는 service 를 테스트 해보자! 참고로 난 스프링 3.0, JAVA 17을 사용중이므로 junit5 를 사용 중이다 ! 스프링부트 3.0 을 사용하면 hyuil.tistory.com https://hyuil.tistory.com/213 Junit5 Test ) Controller 를 테스트 해보자! 이번엔 Controller 를 테스트 해보겠다 Controller 는 HttpServletRequest 도 사용하고 값도 원래는 프론트에서 넣어줘야하는데 어떻게~~~할까용? @SpringBoot.. 2023. 7. 1. 보안을 위해 닉네임 대신 id 검증으로 코드를 리팩토링 하자! 팬레터 게시물에 들어가면 글쓴이 본인일 경우 수정 / 삭제 버튼이 보이게 하기 위해 model 에 닉네임 값을 넣어 보내서 닉네임 값이 왔을 경우 수정/삭제 버튼을 보여주도록 했다 그런데, 닉네임은 변경 가능한 값이기 때문에 닉네임으로 검증할 경우 추후 다른 사람이 자기 게시물이 아닌데도 수정/삭제 버튼이 보이는 경우가 발생할 수 있다 그래서 닉네임 값이 아닌, id 값으로 본인 게시글 검증을 하도록 코드를 변경해보았다! 원래코드 @GetMapping("/{num}") public String fanLetter(@PathVariable Long num, Model model, HttpServletRequest request) { // 글 Map map = fanLetterService.readLetter.. 2023. 6. 22. NullCheck 를 @Valid 로 손쉽게 ^__^ Validation 라이브러리가 제공하는 애노테이션들을 사용하면 일일히 널체크 코드를 쓰지 않아도 자동 널체크를 해준다고 한다! 이런 방법이 있는 걸 안 이상 사용해보지 않을 수 없지 ! ! @Data public class CommentWriteDto { @NotNull private Long boardNum; // 부모 댓글 번호 @NotNull private Long commentNum; @NotBlank private String content; } 일단 DTO 에 널을 받지 않는 변수들에 @NotNull @NotBlank 등의 애노테이션을 넣어준다 @NotBlank 는 널 뿐만 아니라 공백도 체크해주기 때문에 String 에서 자주 이용한다 @PostMapping("/write") public .. 2023. 6. 22. Spring Security ) Spring 3.0 에 맞춰 SecurityConfig 를 수정하자! 기존 프로젝트를 스프링 3.0 으로 마이그레이션하려고 결심 후 기존 코드를 몇가지 수정해줘야 했는데 그 중 SecurityConfig 설정이 좀 달라져서 몇 가지 수정해주었다 스프링 2.0 까지는 WebSecurityConfigureAdapter 클래스를 상속받아 구현했는데 3.0 에서는 해당 클래스를 지원하지 않아서 SecurityConfig 에서 사용하던 코드들을 일부 수정해야한다 기존 코드 @EnableWebSecurity @Configuration public class SecurityConfig extends WebSecurityConfigureAdapter { private final WebService webService; private final MemberJoinService member.. 2023. 6. 14. 좀 더 객체 지향에 걸맞게 메일 서비스를 수정해보자 ! 오늘도 휴일을 개발하며 느낀 점은 아 이렇게 하면 좀 더 맛깔나게(유지보수와 확장에 유리한) 코드를 작성할 수 있지 않을까? 이렇게 하니까 내가 해당 로직을 수정하려고 할 때 어렵구나 등등 객체지향을 이해하고 잘 사용하는 것이 스프링의 꽃이 아닐까? 그런 생각 그래서 해당 프로젝트에서 아쉬웠던 부분을 내가 생각한대로 한 번 리팩토링하는 시간을 가져보고 왜 일케 했는지 설명을 좀 해보겠다(난 이런 거 설명하는 거 좋아함ㅋㅋ) 일단 원래 코드와 수정 코드를 각각 비교해보겠다 원래 서비스 인터페이스 public interface MailService { String joinCodeSend(String toEmail); MimeMessage joinMailForm(String toEmail); String co.. 2023. 6. 13. 이전 1 2 3 4 5 6 다음 728x90