일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- softeer
- 프로그래머스
- SQL
- BFS
- 백준알고리즘
- 데이터베이스
- 코틀린
- MYSQL
- 스프링
- 백준
- programmers
- 문제풀이
- 회고
- 시나공
- 소프티어
- SW봉사
- 코딩교육봉사
- C++
- 자바
- 공부일지
- java
- 알고리즘
- 코딩봉사
- 백준 알고리즘
- 파이썬
- CJ UNIT
- kotlin
- python
- 정보처리산업기사
- 1과목
- Today
- Total
목록개발 (141)
JIE0025
학습하면서 정리한 내용입니다. ✅ Request와 Response에서 어떻게(어디에서) DTO를 변환하는걸까? 선행지식으로 요청을 보냈을 때 컨트롤러로 오고, 다시 return되는 과정을 함께 알아야한다. 아래 그림은 request를 보냈을때, Spring Context에서의 동작과정을 나타냅니다 클라이언트로부터, 요청메세지가 들어오면 DispatcherServlet에서 요청 URI를 통해 HandlerMapping에서 컨트롤러의 정보를 검색, 리턴받는다. 리턴받은정보를 DispatcherServlet은 HandlerAdapter에게 보내며 컨트롤러의 호출을 위임한다. HandlerAdapter는 Controller를 호출한다. (여기에서 JSON데이터가 DTO로 변환된다.) 컨트롤러가 로직 처리를 마치..
보호되어 있는 글입니다.
자바 ORM 표준 JPA 프로그래밍 김영한 엔티티 매핑 목차 @Entity @Table 다양한 매핑 사용 데이터베이스 스키마 자동 생성 DDL 생성 기능 기본키 매핑 필드와 컬럼 매핑 : 레퍼런스 정리 실전 예제 요구사항 분석과 기본 매핑 ✅ @Entity JPA를 사용해 테이블과 매핑할 클래스에 필수적으로 붙히는 어노테이션 @Entity를 붙히면 JPA가 관리하게 된다. 기본 생성자가 필수적이다. JPA는 엔티티 객체를 생성할 때 기본 생성자를 사용한다. 생성자가 하나도 없는 경우는 에러가 안나지만(자바가 자동으로 만들어서), 어떤 생성자를 하나 이상 만들게 되면 직접 기본 생성자를 만들어줘야한다. final, enum, interface, inner 클래스에는 사용불가 저장할 필드에 final을 사용..
✅ Category Entity에 사용되었던 어노테이션 리팩토링 이전에는 어노테이션이 무분별하게 사용되고 있었다. @Setter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @Builder 잘 알지 못하고 마구 사용한 것을 반성하며 이것을 개선하기 위해 먼저 Setter와 AllArgs를 삭제했다. Entity 클래스이고, @id 컬럼의 GenerateType이 IDENTITY이기 때문에, AllArgs은 필요없다고 판단했고 Setter 역시 클래스 레벨에 사용하는게 좋지 못하다는 것을 들었고, 자유로운 객체 생성시엔 @Builder를 남기는게 맞다고 판단했다. 그렇게 @NoArgsConstructor(access = Ac..
object references an unsaved transient instance - save the transient instance before flushing 연관되어 있는 두엔티티가 존재하는데, save()하는 과정에서 오류가 발생한다. 오류메세지를 해석해보면 '개체가 저장되지 않은 임시 인스턴스를 참조합니다. - 플러시(영속화)하기 전에 임시 인스턴스를 저장합니다.' 즉 어떤 객체가 영속화 될 때, 연관된 객체도 영속화 해주는 코드가 필요하다 ✅ 영속성 전이를 사용한 해결 연관관계를 맺어주고, 영속성 전이를 사용해야 객체에 사용되는 행동이 그 관계를 맺어준 객체한테까지 전파되게 해야한다. 특정 엔티티에 대해 특정한 작업을 수행하면 관련된 엔티티에도 동일한 작업을 수행한다 JPA에서는 연관된 ..
✅ 이전 버전은.. 앞서 entitymanager를 직접 불러와 사용하는것 레포지토리르 2개나 만들어 사용한것 (서비스에 2개의 의존 레포지토리가 생겼다) https://jie0025.tistory.com/345 [Springboot][개발] FLAG - Category CRUD 1차 완성 (Merged) JIE0025 [Springboot][개발] FLAG - Category CRUD 1차 완성 (Merged) 본문 jie0025.tistory.com 예전에 스터디하면서 정리해놓은 글이 있어 해당 사용방법을 참고했다. https://jie0025.tistory.com/254 [Spring] QueryDSL 개인적으로 공부하면서 정리한 내용입니다 : ) FLAG Project - BE Study 2022..
//private final EntityManager em; //엔티티 매니저를 가져오는게 문제가 됨 >> 비추천 //JPA or JPQL or QueryBuilder (QueryDsl)을 이용해 개선이 필요함 public List findAll(){ return em.createQuery( "select c " + "from Category c " + "where c.parent is NULL" ,Category.class) .getResultList(); } 앞서 entitymanager를 직접 불러와 사용하는것 엔티티는 1개, 레포지토리를 두개씩 만들어 사용한것 (서비스에 2개의 의존 레포지토리가 생겼다) 두가지 문제가 있어서 QueryDSL을 사용해보는겸 개선을 해보고자 했다. 예전에 스터디하면서..
✅ 개요 프로그램을 만들어 잘 동작하는지 확인하려고 System.out.println()도 많이 썼다. 또 디버깅을 통해 데이터의 흐름도 볼수있었다. 이런것들은 다 로그의 하나로 볼수있다. 그럼 로깅은 뭘까? 로깅은 운영중인 웹 어플리케이션의 문제 발생시- 원인을 파악하기 위한 정보를 의미한다. 배포환경에서도 잘 되는지 확인하기 위해 결국 로깅을 알아야한다. ✅ 로깅이란? 프로그램동작시 발생하는 모든 일을 기록하는 행위 ⏺ 모든 일 :: 개발자가 가져야하는 최소한의 목적 ✔️ 서비스의 동작상태 확인 시스템로딩 http통신 트랜잭션 db 요청 의도를 가진 Exception ✔️ 장애 i/o exception nullpointerexception... ⏺ 로그의 장점 출력형식 지정가능 로그레벨에 따라 남기고..
테스트 코드는 아직 어려워서, 요청메세지를 통한 테스트만 확실하게 진행한 상태로 컴밋을 진행하기 위해 코드를 기록한다. ✅ 테스트 완료 글 https://jie0025.tistory.com/338 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 JIE0025 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 본문 프로젝트 - FLAG/테스팅 [현재 상황 분석] 어디가 문제일지 & 앞으로 봐야할 부분들 찾기 Kangjieun11 2022. 12. 19. 23:36 jie0025.tistory.com https://jie0025.tistory.com/343 [Postman][5] PUT- 카테고리 수정(컨트롤러 요청메세지 테스트)(PATCH 안쓸거다 ㅜㅜ) JIE0025 [..
카테고리 수정하는 부분에서 PATCH를 사용하면서 문제가 있었는데, 좀 알아보니까 PATCH용 DTO를 따로 만들고 그러는것 같다.. 카테고리에서 굳이 그럴 필요까지는 없을 것 같아서 PUT으로 바꾸고 테스트를 진행해야겠다. 나중에 PATCH를 쓰는건 연습을 따로 해봐야지.. ✅ GIVEN 일단 data 입력해주고, id가 5인 카테고리의 이름 "카테고리4"를 "ALGORITHM"으로 바꾸기! PUT으로 바꿨기 떄문에 전체 데이터를 보내준다. PUT http://localhost:8080/v1/categories/5 { "name":"ALGORITHM", "categoryDepth":2, "parentId":3 } PATCH는 참고할만한 예제가 많이 없어서 연습이 필요할 듯 하다 ㅠㅠ ✅ 결과 확인 잘 ..