목록전체 글 (74)
JustDoEat
개요 상품에는 카테고리가 있어야 한다, 중고 XX, 당근 XX을 보면 상품을 등록할 때 카테고리를 등록하잖아요? 고민중독이다.. 생각해 보니 카테고리에는 대, 중, 소 분류가 있다. 기존 테이블대로 가지고 간다면. 카테고리 테이블 안에 데이터는? 어떻게 넣어줄 거지?라는 생각이 강하게 들었다. " 문자열이니까 "전자기기/노트북/맥북", "식품/육류/소고기" 이런 식으로 다 넣는 건가? " 물론 단일 카테고리로 간다면 괜찮지만, 우리는 대, 중, 소로 가기로 했기에 뭔가 이상하다는 생각을 했다. 모든 경우의 수를 안에다가 다 넣을 수 없지 않은가.. 고민을 했던 부분"프런트엔드에서 상품을 저장할 때 카테고리를 텍스트로 넘겨줌 그리고 디비에 저장"근데 이건 말이 안 되는 거 같았다, 프런트 엔드에서 카테고리..
개요.API를 만드는 도중, 일어난 고민이다. 상품을 조회하는 로직은 크게 두 가지로 나눌 수 있다.1. 크게 상품에 대한 간략한 정보들만 보여줌(대표이미지, 제목, 가격, 지역 등등)2. 상품 상세조회시 간략한 정보에... 상세정보를 곁들인... 상세조회.(상품에 대한 여러 이미지, 상세정보, 후기, 판매자 정보 등) 그래서 결론이 무엇이냐, 상품에 대한 간략한 정보만 가지고 올 때, 이미지를 불러오는 것 때문에 이미지 테이블에 JOIN이 일어나게 된다. 여기서 든 고민은 "굳이 대표이미지 1장만 필요한데 JOIN을 해야하나 ?, 상품이 한 페이지에 10 개식 뜬다고 했을 때 대표이미지를 위해 10번의 JOIN이 일어날 필요가 있나.." 이 문제를 해결하기 위해 했던 고민들. " one to many..
개요RabbitMQ를 사용하는 도중 RabbitMQ 같은 경우는 메시지를 큐에 넣을 때 메시지를 직렬화해서 값을 넣는다는 것을 알았다. 반대로 redis를 사용할 때도 Value 값에 Object가 들어갈 때는 JackSon 라이브러리를 사용했던 기억이 났어서 어떻게 의존성을 주입받고 동작하는 건지 알고 싶어서 한번 파해쳐 보았다. 추가로 convertAndSend를 했을 때 직렬화를 자동으로 해준다고 하는데 "자동으로 해준다"이게 너무 궁금해서 클래스 간의 상속관계를 통해 알아보는 글입니다! 아래 내용은 기본적으로 RabbitMQ의 설정이 되어있다는 전재하에 설명이 되어있습니다. 솔직히 메서드들의 연관관계를 다 타고 확인은 하지만 세세한 모든 부분을 전부 알 수는 없습니다, 이미 남들이 잘 만들어놓은 ..
목차1. 개요2. WebSocket+ Stomp 설정파일 작성 및 동작예시3. WebSocket+ Stomp 브로드캐스팅을 위한 컨트롤러 작성 및 동작예시 - 발행(publish), 구독(subscribe), 브로드캐스팅(broadcasting) 개념 알고 가기4. 테스트 - STOMP 란 무엇인가? 예시로 보기.(STOMP 프로토콜과 HTTP 프로토콜의 비교) 개념을 처음에 설명을 안 하고 중간중간에 껴놓은 이유는, 나 같은 경우는 개념만 봤을 때 머릿속에서 개념과 코드의 연관관계가 잘 맺어지지 않아서 이렇게 구성을 하였다.개요.이전 게시물에 Stomp 없이 Spring WebSocket만 써서 웹소켓을 구현을 해보았는데,이번에는 Stomp를 같이 사용 후 같은 서비스를 구현할 예정이..
개요.stomp라는 서브 프로토콜을 이용해서 웹소켓을 구현을 해보았는데, stomp에 대해 자세하게 공부하기 전 그냥 웹소켓만 써보면 왜 stomp를 쓰는지 더 알 수 있을 거 같아서 그냥 웹소켓만 써서 같은 기능을 구현해 봄. 이번 프로젝트를 하면서 웹소켓을 사용할 일이 있는데 프로젝트 시작하기 전 공부한다는 느낌으로 해봄! 개인적으로 이론과 지식에 대해서는 어느 정도 숙지를 하였지만, 이걸 코드로 옮겼을 때 어떤 모양이 나오는지 전체적인 그림이 잡히지 않았다.. postman이나 크롬 확장 툴 중에 웹소켓을 테스트해 볼 수 있는 툴이 있지만, 이것만으로는 찝찝해서 리엑트+vite로 서버를 올린 후 테스트를 진행하였다. 이로 인해 발행/구독 및 브로드케스트 등 의 개념이 머릿속에서 흩어져서 조립이 잘..
개요. 효율적으로 예외 처리 해보기,Custom Exception과 GlobalErrorHandler로 예외 관리하기 1편개요. GitHub - woosungking/Good-Night-3rd-Hackathon: Hackathon 이후 후속조치 및 추가기능 구현 Docker 연동 및 프론트Hackathon 이후 후속조치 및 추가기능 구현 Docker 연동 및 프론트, 백엔드 통합 테스트를 위한kingmusung.tistory.com 1편에서는 예외처리를 효율적으로 하는 방법에 대한 큰 그림을 그렸었다.2편에서는 예외가 핸들러에 의해 처리가 되는 과정을 나름대로(?) 순서도 느낌으로 기록해 보겠다.1. 소원조회 시 없는 ID값을 입력 후 일부로 예외를 만듦.public Wish getWish(Long i..
개요. GitHub - woosungking/Good-Night-3rd-Hackathon: Hackathon 이후 후속조치 및 추가기능 구현 Docker 연동 및 프론트Hackathon 이후 후속조치 및 추가기능 구현 Docker 연동 및 프론트, 백엔드 통합 테스트를 위한 레포지토리임. - woosungking/Good-Night-3rd-Hackathongithub.com 헤커톤 프로젝트로 진짜 기본 중에 기본인 CRUD 구현을 했다, 코드 품질 및 예외처리도 안되어있고 엉망이다..잘하시는 분 레포지토리도 보고, 다른 사람이 한 프로젝트를 보면서 적용도 해보고 공부를 해보는 중이다.오히려 API도 기본적인 것만 있어서, 이것저것 해보기가 편한 거 같다.(가독성이 좋고 간결해서 공부하는 부분이 눈에 딱 ..
개요. 헤커톤 프로젝트로 진짜 남들이 보면 비웃을 수도 있는 Spring Boot로 기본적인 CRUD 구현을 했다,헤커톤이 끝난 후 다른 사람들이 spring boot로 만든 프로젝트를 보면서 이건 왜 이렇게 했지 등을 연구하면서 공부를 하고 있었다! 공부를 하면서 이해하기 어려웠던 부분이나, 나의 회로구조로 이해한 경험을 적어보고 싶었다. 비록 미흡할 수는 있지만 추후 추가적인 공부가 필요하거나, 비슷한 내용에 관해서 새로운 지식을 얻는다면 이어서 써보고 싶다. 1편에서 ResponseEntity에 대해 설명을 했고,ResponseEntity 에 RestApiResponse 부분에 대해서는 설명을 하지 않았다, 2편에서는 해보려고 한다. https://kingmusung.tistory.com/61 Sp..