일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- 프로그래머스
- PDF병합
- 커밋 컨벤션
- restapi
- 테킷
- springboot
- PDFBOX
- Java
- GitFlow
- spring jpa
- 스프링부트 쇼핑몰 프로젝트
- 연관관계
- break-label
- RESPONSEBODY
- responsepart
- 알고리즘
- 체인호출
- 제작기
- VB
- 코딩테스트
- 값 타입
- 부트캠프
- querydsl
- Hibernate
- orm
- Visual Basic
- 멋쟁이사자처럼
- JPA
- 반복문 탈출
- Today
- Total
목록분류 전체보기 (93)
섭섭한 개발일지
프로젝트에서 데이터가 생성되면 create_at 필드에 생성 일자 데이터가 삽입된다. 프로젝트 로직에서 생성된 데이터의 스테이터스가 일정 시간이 지나도 변경되지 않으면 해당 데이터를 삭제하는 로직이 필요했다. SQL로 작성한 바는 아래와 같았다. SELECT id, time(created_at) FROM restaurant_order WHERE time (subdate(now(), INTERVAL 30 MINUTE)) >= time(created_at) AND status = 1 AND deleted_at IS NULL; 이걸 QueryDSL JPA 로 표현을 해야하기에 찾아보고 테스트 해본 결과 아래와 같이 작성을 하면 SQL과 동일하게 작동이 되었다. public List findOrderToDele..
public static String getEntityType(BaseEntity entityObj) { for (EntityTypeV2 entity : EntityTypeV2.values()) { if (entityObj.getClass().isInstance(entity.entityObj)) { return entity.entityType; } } throw new BusinessException(HttpResponse.Fail.NOT_FOUND); } enum에서 사용하는 메서드인데 class 타입을 비교해주는 메서드이다. 프로젝트에서 이미지를 s3에 저장하거나 db에서 불러올 때 entity의 타입이 필요로 하는데 편의성을 위해 BaseEntity를 통해서 처리를 하는 기능을 만들었었다. 이때까지..
프로젝트에서 데이터의 삭제를 물리적 삭제가 아닌 논리적 삭제로 처리를 하고 있다. 그렇기에 데이터를 조회할 때 해당 데이터의 삭제일자 값을 통해 삭제 여부를 확인하는데 1:N 관계의 entity에서 고민이 생겼다. 문의내역에는 답변이 존재하는데 이는 1:N 관계이고 엔티티는 아래와 같이 생겼다. public class Question extends BaseEntity { @Comment("문의사항 작성자") @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", columnDefinition = "BIGINT", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) private Member m..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/L9pBV/btsFlPZRDz7/4T5XsgzUAVk8XrNH6tFPvk/img.png)
Response 시 무한참조로 인한 JSON infinity exception Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError)] 프로젝트 중에 위와 같은 에러를 마주쳤다. 에러는 문의사항 1개의 정보를 가져오는 부분에서 에러가 발생을 했고 에러 내용은 무한한 json을 만드는 것으로 확인된다. 찾은 이유는 아래의 코드에서 발생한 문제로 확인된다. @Entity public class Member extends BaseEntity { @Comment("회원의 문의 내역") @OneToMany(mappedBy..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbPeRU/btsFaFWbtPT/xdOXXqcHOx3wq6MXhYA6B0/img.png)
jdk : 17 springboot : 3.2.1 사이드 프로젝트 개발 중 문의사항 등록 부분에서 데이터를 title, content, 이미지를 받아와야 하는 상황이 생겼다. rest로 개발을 하는 중에 있어 postman을 통해 테스트를 해보던 중 미디어 타입의 문제가 발생했다. 초기 코드 // Controller @PostMapping("/save") @Operation(summary = "문의사항 등록") public ResponseEntity saveQuestion(@RequestBody QuestionRequest questionRequest, @AuthenticationPrincipal UserPrincipal user) { QuestionSaveResponse response = questi..
Server 생성 1. 서버생성 버튼을 누른다 2. 수업에서는 위와 같은 옵션들을 선택을 하였고 버전은 최신버전인 centos-7.8 을 사용했다. 쉬운 네트워크 구성을 위해 classic 버전으로 진행 3. 서버 설정에서는 서버 세대만 g2로 변경한 후에 별다른 설정을 하지 않고 넘어갔다. 4. 인증키는 ll-2023-12-11로 하였으며 (ll = likelion) 보통은 생성한 날짜를 포맷으로 한다고 한다. 인증키는 메일로 나에게 전송해서 보관하자인증키를 생성하면 다운로드를 받을 수 있으며 다운로드 받은 인증키는 개인 메일로 저장을 해두면 분실 위험이 적다 5. Access Control Group 신규 생성을 해야한다. ACG 생성하기기본적으로 이미지 포트들을 추가해주면 된다. 접근소스 myip ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b96FPQ/btsA9QtQXZo/oL7U4EgAsOzkAPOKHpn1e0/img.png)
요즘 진도를 나가면서 드는 생각이 많다. 수업의 내용이 어렵다거나 그런건 아니지만 지금 나의 상태로 프로젝트를 한다면.. 잘 할 수 있을까 라는 생각이다.. 그래서 단순 해결책으로는 공부하는 절대적인 시간을 늘리기 위해 직접 스터디를 개설을 해서 공부를 하고 있다.. (이미 기존에 친분이 있던 사람들과 개인적으로 하던 스터디를 확장한 것이지만 ㅎ.ㅎ.) 강사님의 수업이나, 점프 투 스프링부트, 코딩테스트(프로그래머스), 인프런까지 동원하여 하고 있는데 이게 강의마다 스타일이 전체적으로 다르다보니 방식이 아닌 코드 스타일에 대해 혼란이 오기도한다.. 껄껄 현재로써는 강사님의 코딩 스타일을 따라가는 것이 좋을 것 같지만 이때까지 내가 해오던 스타일과는 적응을 하기가 여간 불편한게 아니다. 조금 있으면 진행 ..