일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- redis
- 백엔드
- 영속성
- 쿠버네티스
- Domain Driven Design
- Container Registry
- 중간 장소 추천
- Spring
- JPA
- 최범균
- RESTClient
- java
- cicd
- 중간 지점 추천
- Spring Batch
- 객체지향 쿼리 언어
- 도메인 주도 개발 시작하기
- 이펙티브자바
- K3S
- 모임 장소 추천
- kusitms
- ddd
- GitHub Actions
- 한국대학생it경영학회
- springboot
- 모이삼
- 자바 ORM 표준 JPA 프로그래밍
- JPQL
- 큐시즘
- 약속 장소 추천
- Today
- Total
목록분류 전체보기 (80)
코딩은 마라톤

들어가며 엔티티를 설계하다 보면 기계적으로 붙이는 애노테이션이 있다.@Entity@NoArgsConstructor(access = AccessLevel.PROTECTED) 항상 위 2개의 애노테이션을 붙이면서 엔티티 관련 문제가 발생한 적이 없고, 잘 쓰고 있었다. NoArgsConstructor를 사용하는 이유는 JPA에서 엔티티 생성 시 Reflection 방식을 사용하는데 이때 기본 생성자가 필요하기 때문이다. 또한 지연로딩(Lazy Loading)을 사용해 연관된 엔티티를 조회할 때 실제로 사용하기 전까지는 프록시 객체를 사용하는데, 이때 기본 생성자가 private으로 선언되어 있다면 해당 엔티티를 상속한 프록시 객체를 사용할 수 없어 이를 방지하기 위해 public이나 protected를 사용..

SPOT(스팟)의 서비스명이 모이삼으로 변경되었습니다!모이삼도 많은 관심 부탁드려요~! 시작하기 앞서https://developer-anxi.tistory.com/79https://developer-anxi.tistory.com/80 앞선 두 개의 글에서 운영·스테이징 환경으로 분리하는 과정을 알아보았습니다. Git-flow는 분리 이전에도 사용했습니다.하지만 운영, 스테이징으로 분리됨으로써 메인 브랜치(prod, develop)와 보조 브랜치(release)가 추가되었고,develop에서 prod로 작업 커밋을 옮기는 과정 또한 정했어야 하기 때문에 이번에 Git-flow 기반으로 모이삼의 방식을 만들었습니다!모이삼의 Git-flow 전략 Git-flow는 메인 브랜치인 master, develop과 ..

중간 지점 추천 서비스인 SPOT(스팟)은 에러 발생 시, 팀에서 어떤 에러인지 문의가 들어오고 이때 터미널에 들어가 로그를 확인했다.다만, 아직 미흡한 로깅 처리와 에러 추적에 대한 시스템을 마련해두지 않아서 매번 예외 로그만 확인하는데 시간이 꽤 걸렸다. 팀 SPOT은 디스코드를 협업 툴로 사용하고 있고, 디스코드 웹훅을 이용해 에러 발생 시 신속하게 대응할 수 있을 것으로 판단하여 스팟-에러 알림 채널을 만들었다. 웹훅을 어떻게 연동하고 처리하는지 알아보자! 1. 디스코드 웹훅 생성하기 디스코드 알림 채널을 만들고, 서버 설정 -> 연동을 통해 웹훅을 만들 수 있다.웹훅을 만들고 연결할 알림 채널과 이름을 설정하고 웹후크 URL을 복사한다. 웹훅 URL에 요청을 보내 디스코드에 알림을 보내는 방식..

https://developer-anxi.tistory.com/79 [Kubernetes] K3s로 운영·스테이징 환경을 단일 서버에서 분리하기 (1)나는 현재 중간 지점 추천 서비스인 "스팟(SPOT)"을 디벨롭하고 있으며 8월 중에 릴리즈 예정이다.지금은 UI 개선과 API 로직 개선 등 다방면에서 개선하고 있다. SPOT은 릴리즈 전인 지금도 사용할developer-anxi.tistory.com 1부에서는 K3s로 단일서버에서 운영·스테이징 환경으로 분리한 이유를 적어보았다.이번에는 단일서버에서 분리한 방식을 적어보려 한다. 쿠버네티스를 적용한 아키텍처 기존 아키텍처와 바뀐 부분은 쿠버네티스를 적용해서 Ingress 및 운영, 스테이징 네임서버 분리 그리고 스프링 애플리케이션 파드와 레디스 파드를 ..

나는 현재 중간 지점 추천 서비스인 "모이삼"을 디벨롭하고 있으며 8월 중에 릴리즈 예정이다.지금은 UI 개선과 API 로직 개선 등 다방면에서 개선하고 있다. 모이삼은 릴리즈 전인 지금도 사용할 수 있고, 서울·경기·인천 지역에서 친구들과 어디서 만날지 확인할 수 있다.https://moisam.kr/ 모이삼최적의 중간장소 찾기, 약속장소 추천www.moisam.kr 운영 서버 단일 구성의 한계: API와 UI 불일치로 인한 리스크 존재출시 전인 지금도 사용할 수 있는 만큼, 기능 개발/수정 후 배포된다면 운영 서버에 바로 적용되어 프론트에서 사용하는 값과 백에서 제공하는 값이 틀어질 수 있다. 즉, 기존의 모이삼은 운영 서버 하나로만 관리되어 백엔드에서 배포하면 의도치 않은 에러가 발생하고, 항상 ..

🍀 네이버 클라우드를 이용해 모이삼 서버 개발큐시즘 30기에 이어 31기에서도 네이버 클라우드에서 다양한 서비스를 프로덕트에 적용해 볼 수 있도록 크레딧을 제공해 주셨다 🥳🥳🥳이번 모이삼을 개발하면서 네이버 클라우드의 Container Registry와 Server를 이용해 서버를 구축했는데 구축 과정을 소개하고자 한다! 🚗 모이삼 x 네이버 클라우드📍모이삼 링크 : https://www.moisam.kr/📍모이삼 Client Github : https://github.com/Team-MOISAM/moisam-client📍모이삼 Server Github : https://github.com/Team-MOISAM/moisam-server 모이삼은 약속 중간 지점 선정의 불편함을 해소하기 위해..
https://developer-anxi.tistory.com/76 [Redis] 외부 API Rate Limiter를 만들어보기 (with. AOP)SPOT은... 외부 API 호출이 많다. SPOT의 메인 기능은 애플리케이션 레벨에서 최적의 중간 지점(역)을 계산하고, 이후 여러 출발지부터 중간 지점까지의 경로를 보여주는 것이다.이때 출발지 ~ 중간developer-anxi.tistory.com 위 글과 이어지는 내용이라서 먼저 읽어주시면 좋을 거 같습니다 🙏🙏🙏 문제 인식 : 멀티스레드 환경에서 Race Condition이 발생@Testvoid 멀티스레드_환경에서_RedisRateLimiter_원자성을_보장한다() throws InterruptedException { // given ..

SPOT은... 외부 API 호출이 많다. SPOT의 메인 기능은 애플리케이션 레벨에서 최적의 중간 지점(역)을 계산하고, 이후 여러 출발지부터 중간 지점까지의 경로를 보여주는 것이다.이때 출발지 ~ 중간 지점까지의 경로를 대중교통과 자가용, 두 가지를 기준으로 보인다. 중간 지점을 계산할 때, 지하철역 공공데이터를 가져와서 환승까지 전부 고려하여 계산하기 때문에 지하철 상세 경로는 보여줄 수 있지만, 버스나 자가용은 구현할 엄두가 나지 않았다. 그래서 대중교통 경로는 Odsay를, 자가용 경로는 Kakao Mobility를 호출하여 가져오도록 하였다. 그러나,, 외부 API를 사용하는 편리함을 무료로 얻는 데는 한계가 있다.특히 Odsay의 제한 호출수는 일 1,000회로 리미트를 초과하면 서비스를 운..