목록전체 글 (56)
코딩블로그
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ddfxDH/btsFGDqZK3X/2BtTjQfYkRehKlg9Jo6KOk/img.png)
팝콘메이트에서는 상영회를 찜하기를 한다면 상영회 하루 전날 아침 열 시에 본인이 찜한 상영회에 대한 알림을 보내는 기능이 있다. 주변에 인앱 푸쉬 알람을 구현해본 친구들이 별로 없었기에 깃허브 레퍼런스를 찾기도 힘들었고 시작하기 전에는 막막했지만 막상 도전 해보니 공식문서에도 친절하게 나와 있고 깃허브 돌아다니면서 참고도 많이 해보았다 https://firebase.google.com/docs/cloud-messaging/server?hl=ko&_gl=1*gph5n9*_up*MQ..*_ga*MTYwNzk4NTg5MS4xNzEwMTY1MzAz*_ga_CW55HF8NVT*MTcxMDE2NTMwMy4xLjAuMTcxMDE2NTMwMy4wLjAuMA.. Firebase 클라우드 메시징 Google I/O 202..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CUF8e/btsFF757rvE/qiztqqkCc805KtxeKvm7p1/img.png)
팝콘메이트에서 프론트 분들과 통신을 진행하면서 갑자기 image를 "Multipart"로 전송을 하면 500에러가 뜬다는 오류를 전달 받았다. 단순한 스크린 샷은 업로드가 수월했지만, 폰의 카메라에서 찍은 사진을 업로드 하려고 할 때 용량 문제로 업로드가 되지 않고 있었다. 이에 대한 해결책을 찾던 도중, image api를 따로 만들어서 S3에 pre-sign된 링크를 발급 받아 그 곳으로 이미지를 PUT하는 방식, 즉 Presigned Url 방식으로 바꿔 문제를 해결하였다. 1. 기존의 Multipart방식 S3에 하나의 대용량 파일을 업로드할 때 하나의 객체를 여러 부분으로 나누어 처리량을 향상 시키고 업로드를 실패한다면 빠른 복구를 한다는 장점이 있다. 나누어 처리를 하여 나누어진 조각들을 S3..
나는 처음에 레버와의 거리도 생각하면서 복잡하게 풀라고 했는데 bfs라는 문제의 기본 틀을 구글링 하면서 다른 사람들의 풀이를 보고 그렇게까지 복잡하게 생각을 안해도 된다는 것을 알 수 있었다. 먼저 내 코드는 import java.util.*; class Solution { public static char[][] arr; public static int leverX; public static int leverY; public static int startX; public static int startY; public static int endX; public static int endY; public static int[] dy = {-1,1,0,0}; public static int[] dx = {..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/B4J68/btsFzcllORc/Y9cikPafIw5RDPKdVGe38K/img.png)
Kafka란? Kafka는 대규모 실시간 데이터 스트리밍을 처리하는 데 사용되는 분산 이벤트 스트리밍 플랫폼이다. 분산 이벤트 스트리밍 분산 이벤트라는 말은 "여러 대의 서버에 분산되어 저장된 이벤트(데이터)"를 말한다 이벤트 스트리밍은 대량의 이벤트(데이터)를 실시간으로 처리하는 방식을 의미한다 즉, 분산 되어 있는 이벤트들을 실시간으로 처리하는 플랫폼이다 Kafka는 분산 이벤트를 실시간으로 Pub/Sub 모델의 메세지 큐 형태로 동작한다 메세지 큐 메세지 지향 미들웨어(MOM)를 구현한 시스템이다 메세지 큐를 사용하면 메세지를 보낸 사람(발행자)와 메세지를 받는 사람(수신자)가 서로를 직접 알 지 못해도 전송, 수신이 가능하다. 메세지 큐가 발행자와 수신자 사이에서 중개하고 있기 때문이다 장점 수신..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bjSRng/btsEYYBCCw8/UxBosdR3UuePy2Kwwoi3GK/img.png)
우아한 객체지향 by 우아한형제들 개발실장 조영호님 강연을 보고 정리하신 https://jaehoney.tistory.com/311 패키지 의존성 사이클 검사 및 개선하기! (feat. IntelliJ) 우아한 테크 세미나에서 발표한 우아한 객체지향 by 우아한형제들 개발실장 조영호님 강연을 무척 재밌게 봤다. Link: https://www.youtube.com/watch?v=dJ5C4qRqAgA&t=5217s 해당 영상에는 패키지 의존성 관련 jaehoney.tistory.com 님의 블로그를 보고 팝콘메이트의 패키지 의존성에 대한 검사를 하려고 한다. 서버를 혼자 구축하기도 하였고 분명 패키지 의존성 사이클이 있을 것같아 검사해보기로 하였다 무엇보다 멀티모듈을 사용하여 순환 참조문제에 대해 검토를 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b1nSSV/btsEP6HsPT0/rhyK3k5YGLddocJfT6otkK/img.png)
팝콘메이트에서는 검색 기능이 있는데, 프론트 분들이 무한 스크롤 형식으로 넘겨달라고 부탁하셔서 Querydsl 적용해보는 겸 구현해 보았다! 💖 Controller @GetMapping("/screenings/search") public SliceResponse searchScreenings( @RequestParam(required = false,value = "title") String title, @RequestParam(required = false,value= "category") Category category, @ParameterObject @PageableDefault(size = 10) Pageable pageable ) { return screeningAdaptor.searchScree..
하암..멀티모듈 그게 뭔데 .. 나랑 평생 관련 없겠지.. 라고만 생각하다가 이번에 실력짱왕이신 개발자분들 깃허브 참고하면서 "나도 저렇게 멋쥐게 코딩해봐야징 히히" 했다가 코드 짜면서 이해하다가 도저히 안되겠어서 도대체 멀티 모듈이 뭔데!!!DDD가 뭔데!!!!라고 생각하면서 정리를 시작하는 글입니다..... DDD란? Domain-driven Design으로 도메인 모델을 중심으로 개발을 진행하는 방법이다. 도메인 중심으로 개발을 하는 만큼, 각 모델은 서로 분리되어야 한다. 계층형 아키텍처란? 시스템을 여러 계층으로 구분하여 설계하는 방식 각 계층은 특정한 기능이나 역할을 수행, 일반적을 프레젠테이션 계층, 비즈니스 계층, 데이터 엑세스 계층으로 구성 계층 간의 의존성은 상위 계층에서 하위 계층으로..
https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 106, 2 ≤ M ≤ 103) 둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109) 출력 첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다. 문제 분석하기 (A + B) % C 는 ((A % C) + (B % C)) % C와 같..