전체 글119 스파르타 코딩클럽 미니 프로젝트 - 7 SNS 텐스레드 7/17~21 회고 https://velog.io/@more/23-07-24-KPT 23-07-24 KPT 한 주의 흐름1) 한 일 프로젝트 명: TenThread 필수 작업: \- 사용자 인증 - 손명지 \- 프로필 관리 - 전영민 \- 게시글 CRUD - 백승범 \- 댓글 CRUD - 김예성 추가 작업: \- 소셜 로그인 - 전영민 velog.io KPT회고를 작성한 팀원분의 링크를 첨부합니다. 1. 팀원 간 소통이 잘 되면 프로젝트 진행 속도가 정말 빨라진다는 것을 느꼈습니다. 특히 저는 진행상황을 보고하기 위해서라도 코딩을 더욱 많이 하게 된 것 같습니다. 2. 개발자가 되기 위한 마음을 다시 잡은 주차였습니다. 개발을 위한 정말 수많은 도구들이 있고 이를 적극적으로 도입해보려는 시도가 중요하다라는걸 깨달았습니다. .. 2023. 7. 24. TIL-26 TenThread 프로젝트 도중 발생한 문제 TenThread는 SNS 와 같은 게시글, 댓글, 이미지업로드, 좋아요, 팔로우 등이 있는 프로젝트이다. TenThread에서 맡은 역할은 백오피스의 유저관리, 공지글 CRUD이다. 백엔드 로직을 마무리하고 프론트엔드를 하려고 하는데 부 몇가지 문제들에 대해 복습한다. 1. 관리자페이지로 이동 시 api요청으로 유저 전체조회데이타가 오지 않고 요청에 실패메시지만 전송되었음 > 우리는 서버에서 헤더에 jwt토큰을 넣기로 하였다. 따라서 프론트에서 fetch 요청을 보낼때 헤더에 토큰을 담아서 보내줘야했다. 헤더에 넣지 않고 요청을 보내 실패메시지가 나온 것 2. api요청을 받고 테이블을 만드려고 하는데 동적으로 생성된 html이 테이블 밖에 출력이 되버리는 문제가 발생 > 테이블 내부에서 태그를 만들어.. 2023. 7. 19. TIL-25 Mockito 각 테스트 케이스는 분리가 되어야 한다. 예를 들어, ProductService를 테스트하는데 Repository들을 주입을 받아와야 하는데. 우리는 둘을 분리하여 Service만 테스트하고 싶다. 이걸 해결하기 위한 MockObject를 생성해야한다. Mockito를 사용해 MockObject를 만들 수 있다. 외부에서 가짜객체(MockObject)를 만들어서 주입해준다. 이렇게 테스트 케이스를 작성했지만 실패를 한다. 왜그럴까? 위 코드에서는 productId에 100L값이 들어가있지만 실제로는 updateProduct시 100번째의 값이 존재하지 않는다. Mock을 통해서 가짜 객체를 만들고 전달했다고 끝나는 것이 아니다. 사용하는 부분까지도 우리가 직접 넣어주어야 한다. 아래와 같다 2023. 7. 17. TIL-24 테스트에 필요한 어노테이션 버그 발견 시간이 늦어짐에 따라 비용이 기하급수적으로 발생한다. 따라서 테스트코드에 대한 필요성이 증가하게 되었따. Unit test(단위 테스트) : 테스트 코드를 잘게 잘게 쪼개서 테스트를 하는 것 @BeforeEach : 각 테스트코드가 실행되기 전 우선 실행된다. @AfterEach : 각 테스트코드가 실행된 후 실행된다. @BeforeAll : 모든 테스트 코드가 실행되기 최초로 실행된다. @AfterAll : 모든 테스트코드가 수행된 후 마지막으로 실행된다. @Test : 테스트코드를 실행할 메서드에 붙인다. @DisplayName("") : 테스트의 내용을 알아볼 수 있게 네이밍 한다. 테스트코드에서도 클래스를 만들 수 있다. @Nested : 주제별로 테스트를 그룹지어서 파악할 수 있다. .. 2023. 7. 17. TIL-23 스프링 연관관계 N:M 관계 2번째 방법 중간테이블 직접 생성 음식 entity @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @OneToMany(mappedBy = "food") private List orderList = new ArrayList(); } 고객 entity @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String.. 2023. 7. 13. TIL-22 스프링 연관관계 N:M 관계 1번째 방법 JPA 연관관계 맵핑에서 N:M 관계인 경우 2가지 방법으로 만들 수 있다. 1번째 방법의 단방향, 양방향, 테스트를 먼저 해보자 N:M 관계의 단방향 예로 users테이블과 food 테이블이 있다고 하자 food테이블을 외래키의 주인으로 둔다. 이런 경우 주문(orders)이라는 테이블을 만들어 N:M을 1:N 1:N상태로 만든다. @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @ManyToMany @JoinTable(name = "orders", // 중.. 2023. 7. 13. 이전 1 ··· 7 8 9 10 11 12 13 ··· 20 다음