[BackEnd] 커뮤니티 게시물 목록 조회 API 쿼리를 QueryDsl로 구현해보기
·
Dev/Backend
개요코알라 커뮤니티 기능 중 게시판 목록 조회 API를 위해 QueryDsl을 학습 및 구현해보았다.요구사항은 다음과 같다.정렬 (최신순, 조회수, 좋아요수)검색 (제목, 내용, 작성자)페이징 이 세 가지 조건 하에, DB에서 값을 가져오기 위해 QueryDsl을 활용하였다. * JPQL 대신 QueryDsl을 사용한 이유   필요한 Entity, Request게시판 전체 목록을 조회할 때 단순히 GET을 하는 것이 아니라, 개요에서 언급한 3가지 조건을 만족시켜야 한다. 조회 조건을 만족하기 위해 다음과 같은 Request record를 생성한다.@Schema(description = "게시글 목록 검색 요청 객체")public record SearchBoardRequest( @Schema(des..
[BackEnd] API의 멱등성을 고려하여 개발하기
·
Dev/Backend
개요내가 개발한 기능을 쓰는 사람이 Admin 관리자였는데, 개발 과정/구현 내용을 모르다보니 이걸 쓰다가 문제가 생겼다. 이 문제의 핵심은 API의 멱등성을 고려하지 않아서 발생한 것또한, 사용자 관점에서 테스트를 진행해야 한다는 깨달음을 얻었다. API 멱등성이라는 것에 대해 전혀 몰랐고,, 코드 리뷰를 통해 알게 되었다. 따라서 이 포스팅에서는 API의 멱등성에 대해 다루어 앞으로 의식하고 적용할 수 있도록 해볼 것이다! 멱등성(Idempotency)멱등성은 수학 용어로, 여러 번 연산을 적용해도 결과는 달라지지 않는 성질을 말한다.한자도 덮을 멱, 무리 등인데 무리(swarm)의 효과를 덮어버린다! 라는 뜻이다.절댓값 함수1을 계속 곱하는 것 HTTP의 멱등성기본적으로 HTTP 메소드의 GET, ..
[Backend] yaml 파일 작성법
·
Dev/Backend
😮‍💨 새로 CI가 필요한 프로젝트가 있어서 Cloud Build를 구축하는 도충 계속 아래와 같은 에러가 떴다. "failed unmarshalling build config cloudbuild.yaml: yaml: line 3: did not find expected key" yaml 파일 문법 에러가 발생한 것 yaml은 파이썬에서 tab으로 구분하듯이 띄어쓰기가 중요하다. 그런데 이러한 띄어쓰기 적용이 툴마다 달라서,,,, 아니 분명 intelliJ로 빌드할 땐 됐는데 외않되지?만 외치고 있다가 구글링을 통해 꿀정보 찾음 꿀정보는 아래 사이트인데, yaml -> json 변환 사이트로 yaml 문법이 잘못되면 잡아준다. https://www.json2yaml.com/convert-yaml-to-j..
[BackEnd] 메일 전송 시 CSS 적용(inline 자동 변환기)
·
Dev/Backend
개요JAVA로 특정 사용자에게 메일을 전송하는 프로그램을 개발하는데, 이때 메일은 html 파일로 템플릿을 만들어서 보낸다.템플릿에 CSS를 적용하면 CSS를 style 태그로 담은 페이지는 정상적으로 잘 작동하지만, 메일 발송을 할 때에는 정상적으로 작동하지 않는다. 이유와 해결방법에 대해 작성하는 포스팅이다.  문제상황과 이유, 해결 방법 메일 전송 시 CSS가 깨지는 이유Gmail, Naver 등의 이메일 서비스는 각 사의 보안상 메일 내용을 일부 변조를 하게된다. 이때 script, style등 head태그 내부에 작성하는 내용들이 메일 전송 시에 배제된다고 한다.  HTML에 CSS를 적용하는 방법은 3가지가 있다.외부 .css 파일을 적용style 태그를 사용하는 임베디드 방식각각의 HTML ..
[BackEnd] API 명세서 작성 가이드 라인 | 작성 예시
·
Dev/Backend
프로젝트에서 API 명세서와 ERD 설계를 맡았다. API 명세서를 작성해본 적이 없어서 최대한 공식적인 자료를 바탕으로 찾아보다가 사막의 오아시스같은 글을 발견해서 정리하고 두고두고 보려고 한다. 이번 프로젝트에서 활용을 당연히 하겠지만 앞으로도 정말 큰 도움이 될 것같다..😍 API는 '서버와 클라이언트가 데이터를 주고 받을 수 있도록 도움을 주는 매개체'이다.API 명세서는 서버와 클라이언트간 특정 기술을 사용하기 위한 약속이다. API 문서화에 들어가야할 내용1) 개요기술 문서의 서론은 독자들에게 본문의 요약, 작성 배경, 관련 개념을 설명해준다. 즉, 독자들을 위한 '가이드'이다. API 문서에도 서론의 역할을 하는 개요(Overview)가 필요하다. API 소개단순히 API에 대한 기능 설명..
[Backend] RESTful API란, API와 Interface
·
Dev/Backend
REST/Restful API란? REST 아키텍처 스타일의 디자인 원칙을 준수하는 API다. REST 디자인 원칙 균일한 인터페이스 클라이언트-서버 Stateless 캐싱 가능성 코드 온디맨드 HTTP URI를 통해 자원(resource)을 명시 해당 자원에 대해 HTTP 메소드를 활용해서 CRUD 기능을 수행 HOW TO UNDERSTAND API REST REST/RESTful API 에 대한 이해가 기반되어야 한다. Interface(상호의 얼굴 😃) (사전상) 컴퓨터 프로그램이 user와 주고받는 정보를 나타내는 방법 메뉴/스크린의 레이아웃 GUI(Graphical User Interface): 사용자가 편리하게 사용할 수 있도록 컴퓨터의 어떠한 기능을 아이콘 따위로 나타낸 것 (결론) 어떤 두..
sebinChu
'Dev/Backend' 카테고리의 글 목록