전체 글

안녕하세요;
· SpringBoot
계기 팀원들과 스터디플랫폼 프로젝트를 진행하면서 팀원들과 다 같이 채팅서버를 구현하는 파트를 맡게 되었다. 요구사항은 이러했다. 하나의 스터디방에는 하나의 채팅방이 존재하고 그룹채팅방으로 존재한다. 같은 스터디방이 아니더라도 유저들끼리 1:1 채팅을 할 수 있다. 위에 2가지 요구사항 가지고 구현하려다보니 기존 웹소켓 방식으로 한계점이 있었고 STOMP 프로토콜 통한 방식으로 구현하려 한다. 기존 웹소켓 방식의 단점 : 웹 소켓 단점 STOMP란? STOMP (Simple Text Oriented Messaging Protocol)은 메세징 전송을 효율적으로 하기 위해 탄생한 프로토콜이고, 기본적으로 pub / sub 구조로 되어있어 메시지를 전송하고 메시지를 받아 처리하는 부분이 확실히 정해져 있기 때..
· SpringBoot
궁금증 ❓ 둘 다 Spring Bean으로 등록해 주는 어노테이션이지만 무엇이 다를까라는 의문점이 생겼다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interfa..
· JPA
요구사항 게시물마다 댓글 수 , 좋아요 수, 찜한 수, 투표수, 조회 수를 가져와야 한다. group By로 게시물을 기준으로 설정하고 JOIN으로 테이블들을 가져와서 count 함수를 사용한다. SQL문 작성 SQL 문을 작성해보고 결과를 받아보았다. select c.campaign_id, c.view_count, c.title, count(distinct fc.id) as '좋아요 수', count(distinct cm.id) as '댓글 수', count(distinct v.id) as '투표 수' from campaign c left join favorite_campaign fc on c.campaign_id = fc.campaign_id left join comment cm on c.campai..
· JPA
프로젝션 이란? Querydsl을 이용해 entity전체를 가져오는 것이 아니라 조회 대상을 지정해 원하는 값만 조회하는 것을 말한다. 프로젝션 할 수 있는 방법 Tuple 이용 Projection.bean() Projection.fields() Projection.constructor() @QueryProjection Tuple JPQL에서 Entity 전부가 아니라 일부 column만 가져오고 싶다면 기본 반환 타입으로 Tuple 객체를 사용한다. 하지만 Tuple 객체를 사용할 때는 필드 하나하나 값을 알고 있어야 하고 Tuple을 다시 DTO로 조회해서 사용해야 하기 때문에 코드를 늘어나고 가독성 부분에서 떨어진다고 생각한다. 그래서 Tuple 보단 DTO로 바로 조회하는 방법을 주로 사용한다. ..
Dmin3
스터디 일지 By Dmin3