본문 바로가기 메뉴 바로가기

감자도 개발해요

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

감자도 개발해요

검색하기 폼
  • 분류 전체보기 (147)
    • 일기 (4)
    • 패스트캠퍼스 (13)
      • 과제 (6)
      • 기자단 (7)
    • 백엔드 공부하기 (40)
      • TIL (40)
    • 알고리즘 공부하기 (21)
      • 백준 (13)
      • 프로그래머스 (1)
    • CS (18)
      • 자료구조 (6)
      • 운영체제 (7)
      • 네트워크 (0)
      • 데이터베이스 (5)
    • SQL 공부 (1)
    • Git (3)
    • JAVA (12)
    • Spring boot (17)
      • MSA (1)
    • Spring (2)
    • node js (16)
      • 노드 리액트 기초 (9)
  • 방명록

Spring boot (17)
[기능 개발] MySql에 QR code 이미지 저장하고, 결제 처리하기 기능 개발기 (QR code 결제)

프로젝트 [만원의 행복] 개발 중에 이미지 저장하는 DB가 아직 구축이 되지 않아서, 일단 MySql에 이미지로 저장하고 프론트엔드한테는 endpoint api로 전달하기로 했다. ✔️ 결제 처리 로직 1) 짠처리 상품 구매 2) 서버 : 결제 API 처리 3) 서버 : QR code 발급 1) 짠처리 상품 사용하고 싶음 2) 업주 : QR code 찍음 3) 서버 : QR code 사용처리 4) 상품 제공 ✔️ ERD 는 다음과 같다. (아직 수정 중이고 많이 부족하다ㅜ) 📌 QR image Entity (QR code 이미지 저장 entity) 일단 QR 코드 (이미지) 를 저장할 수 있는 entity는 다음과 같다. 이미지는 byte 타입으로 저장해야하므로, byte[] 로 선언한다. ✔️ @Lob..

Spring boot 2023. 12. 8. 02:45
[성능 개선] 상품 주문 시, 비관적 Lock으로 동시성 제어하기 : curl을 이용한 동시성 테스트

상품 주문하기를 개발하던 중, 단 1초의 오차도 없이 동시다발적으로 상품을 주문한다고 가정할 때 문제가 발생한다. 일단 동시적으로 값을 보내주기 위해 테스트를 만들어보자. #상황 원래는 로그인 환경에서 해야하지만, 그러면 테스트가 더 복잡해지니 시큐리티에서 로그인 안해도 되도록 설정을 바꿔준 후 로컬에서 테스트를 진행했다. 포스트 맨에서 Body를 작성한 후에, 옆에 누르면 자동으로 curl 코드를 만들어준다. 그대로 복사. 메모장에 여러번 복붙해서 테스트 케이스를 만들자, 여러개 붙일 때에는 & 를 붙여준다. 그대로 전부 복사해서 터미널에 실행시키면 끝 📌 문제 상황 요청을 7개를 보냈으나, 응답이 7개는 정상적으로 온다. 그렇지만, DB에는 1개밖에 처리되지 않은 상태. 어찌보면 예외 발생보다 더 최..

Spring boot 2023. 11. 30. 04:24
[성능 개선] 비동기 방식, saveAll을 활용한 2초 ▶️ 0.2초로 개선하기

📌 원래의 방식 여정들을 부를 때 마다 각각의 API를 호출하기 때문에 삽입 부분에서 많은 시간이 걸렸었다. 📝 기존 코드 List saveItineraryList = new ArrayList(); for (ItineraryRequest ir : itineraryRequests) { Itinerary saveItinerary = itineraryRepository.save( ItineraryFactory.getItineraryEntity(trip, ir) ); saveItineraryList.add(saveItinerary); } 매 여정들 마다 save를 불렀었다. 이 당시 걸린 시간은 약 2초 정도 걸렸었다. (여정 13개 기준) 여정들이 무수히 많아지면 시간이 더 오래 걸릴것 같았고, 성능을 개선해..

Spring boot 2023. 11. 17. 12:35
[리팩토링 & 예외처리] 인터페이스를 이용한 enum으로 예외처리 정돈하기.

📌 문제점 기존의 예외 처리들을 하기 위해서는 RuntimeException을 상속받은 예외들을 각각 클래스를 만들어서 처리하였다. 하지만, 이렇게 예외 하나당 파일 하나를 만들면 각각 에러마다 핸들러를 만들어야하고, 클래스도 많아져서 관리하기 힘들어졌다. 📌 enum을 활용하자. enum은 열거형으로, 상수들을 정의해서 열거하여 편리하게 사용할 수 있는 클래스이다. 밑에 처럼 모든 도메인에서 나올 수 있는 예외들을 한 곳에 다 넣었다. @AllArgsConstructor @Getter public enum ExceptionCode { INTERNAL_SERVER_ERROR("서버에 오류가 발생했습니다."), BAD_REQUEST("잘못된 입력값 입니다."), INVALID_REQUEST("잘못된 요청입..

Spring boot 2023. 11. 15. 17:24
[예외처리] @Valid message를 response에 담아 출력하는 방법.

▶️ 해당 reqeust 파일이 있다고 해보자. 내가 만약 [ tripName ]을 입력하지 않았다면, 사용자에게 해당 [ message ]를 출력하고 싶다. @Getter @Builder @AllArgsConstructor @NoArgsConstructor public class TripRequest { @NotNull(message = "여행 이름을 입력하세요.") private String tripName; @NotNull(message = "출발 날짜를 입력하세요.") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate startDate; @NotNull(message = "도착 날짜를 입력하세요.") @JsonFormat(pattern = "yyyy-..

Spring boot 2023. 11. 13. 02:07
[리팩토링] if 문 없이 객체 만들어보자 - 팩토리 패턴, 상속관계 엔티티 생성

이 게시글은 pjh3749님의 게시글을 참고하였습니다. 📌 문제 상황 프로젝트를 하던 중 .. 상속관계에 있는 엔티티들을 매번 빌더로 만들어야하는 상황이었다. 방법이 없어 보여 switch 문 사용해서 썼지만, 프로젝트 팀원분이 조금 더 깔끔하게 만들면 보자 해서 리팩토링을 하기로 했다. 📌 기존 코드 부모 클래스 : itinerary 자식 클래스 : Movement, Lodgement, Stay 부모 클래스의 type 필드에 따라 자식들을 구분해서 객체를 만들어야하는 상황. 참고로 밑의 코드는 만든 객체들을 jpa를 이용해 db에 저장하는 상황이다. for (ItineraryRequest ir : itineraryRequests) { switch (ir.getType()) { case MOVEMENT:..

Spring boot 2023. 10. 28. 23:12
[Spring-boot] defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object..

📌 에러 상황 스프링은 컨트롤러 - 서비스 - 레포지토리가 유기적으로 잘 연결되어있어야하는데, 레포지토리에서 빈을 생성할 수 없다고 에러 발생!!! defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object 📌 이유 ItineraryRepoistory 즉 제네릭 타입을 사용해서 발생. 이유는 JPARepository 입장에서는 Itinera..

Spring boot 2023. 10. 24. 15:30
[Spring] h2-console 404 error

404 에러가 계속 떴었다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 해당 라이브러리 추가하니 해결 완료. JDBC 라이브러리는 안된다.. 이유는 모르겠음~!

Spring boot 2023. 10. 17. 13:19
이전 1 2 3 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 그룹스터디
  • 야놀자X패스트캠퍼스부트캠프
  • 백엔드부트캠프
  • 패스트캠퍼스
  • be
  • 국비지원
  • 백엔드
  • 자료구조 #스택 #큐 #덱 #선형자료구조
  • 프로젝트후기
  • 백엔드개발자
  • boj
  • springboot
  • 야놀자
  • 과정중간회고
  • 자료구조
  • #국비지원취업
  • 커리어멘토링
  • 패스트캠퍼스강의
  • 백준
  • 데이터베이스
  • qjzl
  • 부트캠프
  • TiL
  • 채팅기능개발
  • 스터디후기
  • 카카오API
  • Java
  • 국비지원캠프
  • 국비지원취업
  • 그룹스터디워크샵
more
«   2025/08   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바