본문 바로가기

기타8

QueryDsl + JPA 로 게시글 페이지네이션 구현기, 일대다 외부조인시 유의해야할 점 개별 웹툰 페이지를 조회하는 API 를 구현해보겠다. 위와 같이 웹툰 개별 페이지로 들어가면 웹툰의 정보와 전체 회차 목록을 볼 수 있다. 이 중 빨간 영역의 전체 회차 목록을 불러오는 API 를 개발하자. 최신순, 오래된 순 정렬 PageSize = 30 썸네일, 회차 제목, 별점, 업로드 일자가 필요 구현에 앞서 필요한 기본 개념을 짚고 간다. Querydsl 을 사용하는 이유 QueryDSL은 하이버네이트 쿼리 언어(HQL: Hibernate Query Language)의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임워크이다. QueryDSL은 정적 타입을 이용하여 SQL과 같은 쿼리를 생성할 수 있게 해 준다. QueryDSL 을 이용하면 Spring Data JPA 만으로는 구현하기 힘들었던.. 2023. 9. 17.
ERD Cloud 를 이용한 데이터 모델링, DB 설계 팀프로젝트 경험은 두세번 있지만 개인프로젝트 경험치가 적다고 느껴 내가 관심이 있는 도메인으로 프로젝트를 하나 완성해보기로 했다. 어릴적부터 웹툰을 좋아해서 네이버 웹툰 페이지를 참고하여 화면 단위로 요구사항을 정리하고 DB 설계를 해보았다. 다양한 웹툰 정보를 검색, 추천, 페이징조회 해야하기 때문에 이번 기회에 QueryDsl 도 공부해보기로 했다. 나는 크게 홈, 웹툰, 마이페이지 를 기준으로 기능을 정리하였다. (베스트도전, 도전만화는 기능이 중복되는 것이라 생각하여 제외) 주요 기능이 구현되면 쿠키 결제와 같이 결제 기능도 추가시켜보겠다 1. 홈 오늘의 웹툰 조회 읽다만 웹툰 조회 실시간 인기 웹툰 조회 장르별 인기 웹툰 조회 (PURE, FANTASY, ACTION, DAILY, THRILL).. 2023. 9. 17.
우아한 테크코스 프리코스 회고 작년 10월, 우아한 테크코스 5기 백엔드 과정에 지원을 했다. 1400명의 백엔드 지원자와 함께한 프리코스 과정을 지나 약 200명의 최종 코딩테스트까지 갔지만 아쉽게 떨어져 본 코스 과정을 밟지는 못했다. 프리코스 과정에서도 배운 것이 많았기에 늦게나마 기억을 저장하고자 기록한다. 1주차 onboarding https://github.com/MinjeongKong/java-onboarding/tree/MinjeongKong GitHub - MinjeongKong/java-onboarding: 온보딩 미션을 진행하는 저장소 온보딩 미션을 진행하는 저장소. Contribute to MinjeongKong/java-onboarding development by creating an account on Gi.. 2023. 3. 23.
오브젝트 (역할, 책임, 협력/캡슐화와 응집도에 대하여) 모든 소프트웨어 모듈에는 세 가지 목적이 있다. 첫 번째 목적은 실행 중에 제대로 동작하는 것이다. 두 번째 목적은 변경을 위해 존재하는 것이다. 세번째 목적은 코드를 읽는 사람과 의사소통하는 것이다. — 로버트 마틴, 변경에 취약한 코드란 하나의 클래스가 다른 클래스에 대한 정보(인스턴스, 메소드)를 지나치게 직접 접근할 경우 변경에 취약한 코드가 된다. 지나치게 세부적인 사실에 의존해서 동작할 경우 이러한 세부적인 사실 중 한 가지라도 바뀌면 해당 클래스뿐만 아니라 이 클래스에 의존하는 클래스들도 함께 변경해야한다. 이것은 객체 사이의 의존성과 관련된 문제로, 의존성은 변경에 대한 영향을 암시한다. 객체지향 설계는 서로 의존하면서 협력하는 객체들의 공동체를 구축하는 것으로, 애플리케이션의 기능을 구현.. 2023. 3. 23.
AWS SNS vs. SQS (feat. Lambda) 프로젝트에서 푸시알림 기능을 맡아 사용할 기술을 찾아보던중 AWS SNS 라는 것을 처음 접했다. 단순히 푸시알림을 구현하는 데만 신경쓴다면 FCM을 사용해도 상관없겠지만 AWS SNS에 Lambda, SQS 등을 함께 사용하면 추후 기능을 확장하는데 용이할 것이라 생각되어 AWS SNS를 쓰기로 정했다. Lambda 란 Lambda는 AWS에서 제공하는 서버리스 컴퓨팅 플랫폼 이다. 서버리스(Serverless) ? 서버리스(Serverless)는 클라우드 컴퓨팅의 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍처를 의미한다. 서버리스는 동적으로 서버의 자원을 할당한다. 사용자가 없다면 자원을 할당하지 않고 대기하다 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태.. 2023. 3. 7.
[Web] HTTP, Web Server, WAS HTTP 란 하이퍼텍스트 전송 프로토콜(HTTP)은 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜이다. HTTP는 클라이언트가 요청을 생성하기 위한 연결을 연다음 응답을 받을때 까지 대기하는 전통적인 클라이언트-서버 모델을 따른다. HTTP는 무상태 프로토콜이며, 이는 서버가 두 요청간에 어떠한 데이터(상태)도 유지하지 않음을 의미한다. Stateless vs. Stateful stateless 프로토콜은 수신자가 이전 요청의 데이터(상태)를 유지하지 않는 커뮤니케이션 프로토콜이다. 전송자는 관련된 데이터(상태)를 수신자에게 보내는데, 이 때 모든 요청은 이전 요청의 데이터와 관계없이 독립적으로 수행될 수 있어야한다. ex) Internet Protocol (IP), HT.. 2022. 7. 28.