기능 개선 과제
·
TIL
과제 내용이번 과제는 테스트 코드를 연습해보고 기능들을 개선시켜보는 과제입니다. 트러블 슈팅배경기능들을 개선 시키는 과제 목록중에 Service에 도메인 로직을 엔티티에 위임시키는 목록을 진행하면서 Service에 있는 Password 체크와 같은 유효성 검사들을 Entity 클래스에 위임하던 중  Entity 클래스는 이미 DB와 소통하는 클래스로서의 책임을 가지고 있는데 과연 Entity 클래스에 유효성 검사와 같은 책임을 맡게해도 될까? 라는 생각이 들었습니다. 해결구글링을 통해 Entity 클래스가 과연 유효성검사와 같은 책임들까지 맡게 해도 될지 찾아봤는데 Entity 클래스는 이미 DB와 소통하는 클래스로서의 책임을 가지고 있는데 거기에 유효성 검사와 같은 책임들 까지 넘겨주면 SRP 원칙을 ..
Todo 프로젝트 리팩토링 하기
·
TIL
1. 현재 문제점현재 Todo프로젝트에서는 토큰에 저장되어있는 유저 정보를 사용하기 위해 각 컨트롤러 마다 아래와 비슷한 코드들이 중복으로 발생하게된다. 무엇보다 각 컨트롤러마다 getUser라는 메서드를 만들기 때문에 만약 내가 request.setAttribute로"user"가 아닌 "users"로 저장하게된다면 각 컨트롤러마다 들어가서 바꿔줘야하는 불편함이 생긴다. 그래서 이 부분을 고쳐보고자 한다. @GetMapping("/myInfo") public ResponseEntity findMyInfo(HttpServletRequest request) { return ResponseEntity.ok(userService.findById(getUser(request))); } ..
프로그래머스 - 최댓값과 최솟값
·
프로그래머스
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.제한조건s 에는 둘 이상의 정수가 공백으로 구분되어 있습니다.입출력 예sreturn"1 2 3 4""1 4""..
뉴스피드 프로젝트 리팩토링
·
TIL
현재 게시물을 페이징 처리하는 ResponseDto를 Post만 처리하는 Dto가 아닌 제네릭 클래스로 만들어서 Post뿐만이 아니라 다른 곳에서도 쓰일 수 있게 하면 어떨까?? 라는 피드백을 받았는데 제네릭클래스를 아예 생각지도 못하고 있었던 나는 머리를 한대 맞은 기분이였다 왜 제네릭으로 만들 생각을 못했지... ?? 아무튼 그래서 한번 제네릭 클래스로 한번 만들어 봤습니다. 기존 PostPagingResponseDto기존에는 이름부터 PostPaging으로 오직 게시물만을 위한 페이징 Dto였다..@Getterpublic class PostPagingResponseDto { private final Long id; private final String content; private ..
뉴스피드 프로젝트
·
프로젝트
[프로젝트 기간 ]    24/10/18 ~ 24/10/24[팀원 및 역할]문정원 (팀장)  : 친구 요청 생성, 친구요청 응답 API, 친구 요청 목록 조회김지혜  :  회원가입, 로그인, 프로필 상세조회, 프로필수정(이름, 비밀번호)이하승 : 게시물 등록, 게시물 단건 조회, 페이징 조회, 게시물 수정, 삭제장용환 : 친구 삭제, 친구 목록 조회, 회원탈퇴 [구현 기능]- 회원 -회원가입비밀번호 암호화로그인로그인 성공 시 JWT 토큰 발급 및 쿠키에 저장프로필 상세 조회프로필 수정회원 탈퇴비밀번호 입력받아 확인소프트 삭제탈퇴됨과 동시에 관련 게시글과 친구데이터 삭제친구 요청 및  응답친구 조회친구 삭제본인의 친구만 삭제가능- 게시글 - 게시글 등록단건 조회 로그인 하지 않아도 조회 가능페이징 조회로그..
REST, REST API, RESTful
·
TIL
RESTREST 정의Representational State Transfer의 약자이다.Rest는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다.자원(resource)의 표현(representation) 자원 : 해당 소프트웨어가 관리하는 모든 것-> ex) 문서, 그림, 데이터, 해당 소프트웨어 자체 등자원의 표현 : 그 자원을 표현하기 위한 이름-> ex) DB의 게시글 정보가 자원일 때,  'post'를 자원의 표현으로 정한다.상태(정보) 전달데이터가 요청되어지는 시점에서 자원의 상태(정보)를 전달한다.JSON 혹은 XML를 통해 데이터..
JPA - 일정관리 앱 만들기
·
TIL
과제 내용이번 과제는 JPA를 활용하여 일정관리 앱을 만드는 것이였습니다. 이번에는 각각의 API마다 정리를 했으니 블로그 봐주세요 !!https://haseung22.tistory.com/ haseung22의 블로그haseung22 의 블로그 입니다.haseung22.tistory.com  과제를 하며 있었던 트러블 슈팅배경과제의 요구사항 중 일정 담당 유저 (매니저)와 일정의 연관관계를 N:M으로 하라는 요구사항이 있었는데이걸 어떻게 할지 고민하다가 처음에는 User와 Todo 테이블 이외에 일정 담당 유저를 관리하는 Manger 테이블과 일정과 그 Manager 테이블을 N:M으로 연관 짓기 위하여 Management라는 테이블을 하나 또 만들어서 연관관계를 맺어줬었다.근데 코드를 계속 보다 보니 ..
JPA - 회원가입 로그인
·
TIL
저번 포스팅에 올렸던  JwtUti를 이용하여 회원가입과 로그인을 구현하였다. 1. 엔티티 생성일정과 일정 담당유저와의 연관관계를 맺으라는 요구사항이 있어 OneToMany를 이용하여 1:N관계를 맺었다.@Entity@Getter@Table(name = "user")@NoArgsConstructor(access = AccessLevel.PROTECTED)public class User extends AuditingDate { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String email; @Col..