본문 바로가기

분류 전체보기156

[Spring] Server-Sent Events로 알람 서비스 개선하기 들어가기 전에 F-lab 프로젝트가 끝나고 비슷한 기술 스택을 사용하는 프로젝트 강의를 보면서 어떤 걸 더 고민하고 개선할 수 있을지 시야를 넓히려고 하고 있다. 마침 간단한 SNS 서비스를 만들면서 대용량 프래픽을 고려했을 때 어떤 점들을 개선시킬 수 있는지를 담은 강의가 있었는데 비슷한 알람 기능이 있었다. 우리도 알람 조회 API를 통해 알람을 확인하는 기능까지는 개발했다보니 그 이후에 할 수 있는 고민을 알게 되고 또 직접 구현해 보는 게 굉장히 흥미로웠다. 기본적인 기능은 게시물에 댓글을 달거나 좋아요를 클릭하는 등의 특정 이벤트가 발생했을 때 그 내용이 수신자에게 알람 데이터로 저장이 되고 수신자는 알람 조회 API를 통해 내게 온 알람들을 확인할 수 있는 것이다. 이때 조회 페이지를 새로고침.. 2023. 8. 28.
[글또 8기] 여정을 마치며 들어가기 전에 이번 년도는 시간이 어떻게 가는지 모르게 지나고 있는데 정신차려보니 글또 8기 활동도 막바지가 되었다. 나의 열두 번째 글은 회고로 마무리지어보겠다. 글또 활동 돌아보기 잔여 패스권 : 2 제출 횟수 : 11 제출글 [글또 8기] 시작하는 다짐 글 [Java] Object.hashCode()와 Hashing, 그리고 Hash Collision [DB] 무조건 정규화가 정답일 수 없는 이유 Lombok을 사용하지 말라고? Spring REST Docs를 선택한 이유 [글또 8기] 중간 회고 [글또 8기] 2차 커피드백 [Spring] 쉽게 이해하는 Spring Security + JWT 로그인 구현기 Github Actions: CI/CD 구축 (feat. shell script) - 실전편.. 2023. 7. 16.
가변 인자를 다루기 위한 Functional Interface 활용 들어가기 전에 버즈덤 프로젝트에서는 [RabbitMQ] 설치 및 적용기에 작성한 것처럼 Feed 기능을 구현했다. 이때 템플릿을 지정해놓고 스케줄 정보만 지정된 위치의 문자열에 치환할 수 있도록 아래와 같이 MessageTemplate 클래스에 상수로 템플릿 메시지를 선언해서 사용했다. MessageTemplate public class MessageTemplate { // 치환해야 할 문자열이 한 개일 때 public static final String CREATE_SCHEDULE = "%s님이 {0}로 코칭 일정을 신청했습니다."; // 치환해야 할 문자열이 두 개일 때 public static final String UPDATE_SCHEDULE = "%s님이 {0}에서 {1}로 코칭 일정을 변경했습.. 2023. 7. 1.
[Redis] 설치 및 간단한 테스트 해보기 (Ubuntu 18.04) 들어가기 전에 버즈덤 프로젝트에서는 Spring Security와 JWT를 통해 인증 및 인가 처리를 하는데 이때 Token 저장소로 Redis를 사용하기로 했다. 같이 하시는 팀원 분 파트였는데 하시는 데 어려움을 겪으셔서 내가 연결 정보만 넘겨드리기로 하면서 Redis를 조금이나마 경험할 수 있었다. 사실 설치하고 사용하는 과정까지는 크게 어렵지 않지만 혹시나 나처럼 실수를 겪는 분이 있을까봐 글을 작성하게 됐다. 공식 문서나 블로그 글이나 큰 차이가 없을 것이라고 생각해서 "Redis 설치"를 검색하고 상위에 뜨는 블로그 글들의 설치 방법을 그대로 따라했다가 계속 오류가 나서 생각보다 시간을 쏟게 되었었기 때문이다. 🥲 역시 올타임 교훈은 뭐다? 공식 문서를 참고하자! 설치하기 1. APT 인덱스에.. 2023. 6. 28.
[서적] 개발자 원칙 | 박성철 외 8명 개발자 원칙 | 박성철 - 교보문고 개발자 원칙 | ★ 더 나은 개발자로 성장을 꿈꾼다면★ 먼저 헤쳐온 테크 리더들의 원칙에서 해답을 찾아보세요“나도 테크 리더가 될 수 있을까? 어떻게 선배 개발자들처럼 성장할 수 있을까? 3 product.kyobobook.co.kr 이번에 글또에서 이 책을 읽고 자신만의 원칙과 서로의 가치관 등을 나눌 수 있는 "나만의 원칙을 찾아또" 모임이 열려 참여하게 되면서 이 책을 읽게 되었다. 개발자 원칙은 9명의 테크 리더들이 개발자로 일하면서 세우고 지켜왔던 원칙들이 담겨있는 책이다. 지난 4월에 나는 무엇을 제어할 수 있는가라는 글을 작성했는데 이때 [우아한 테크 세미나] 테크 리더 3인이 말하는 "개발자 원칙"이라는 영상의 이동욱님 말씀을 많이 마음에 새겼던 터라 다.. 2023. 6. 26.
동시성 제어와 DB 설계의 고민 들어가기 전에 버즈덤 프로젝트는 F-lab의 코칭 시스템 이용하면서 일정이나 피드백 관리가 있으면 좋을 것 같다는 마음에서 시작하게 됐다. 메인 기능은 코치가 코칭 가능한 시간을 등록하는 것과 멘티가 코칭을 신청하는 것인데 기본 내용은 다음과 같다. 코치 한 명에 여러 명의 멘티가 매칭될 수 있다. 코치는 코칭 가능한 시간을 등록한다. 멘티들은 코치의 일정을 조회해 그중 하나를 선택해 코칭을 신청한다. 그중 내가 맡은 것은 멘티가 코칭을 신청하는 기능이었는데 코치 한 명에 여러 명의 멘티가 있다 보니 동시성 문제가 발생할 것이라고 보고 동시성 제어에 대한 경험을 해볼 수 있을 것이라고 생각했다. 그래서 처음에는 수강 신청처럼 오픈되는 시간을 정해두고 멘티가 동시에 선착순으로 코칭 일정을 선점하는 방식으로.. 2023. 6. 23.