Genie의 Java 개발 공부와 일지를 기록하는 아카이브 공간 Develop Study160 (25.10.22) Java Spring 에서의 Caching 업무간 단일 쓰레드 환경의 싱글톤 환역엥서 작업을 처리해야하는 로직이 필요하고 있다.담당 업무가 아니지만 같은 프로젝트에서 개발 중인 만큼 Java Spring의 캐싱을 활용해서 개발내용을 정리하면서충분히 활용할 수 있도록 하려고 한다. Java의 Caching 캐싱@Cacheable 같은 Spring의 캐싱 어노테이션은 JVM 레벨의 메모리 캐싱을 기반으로 작동Spring 캐시 추상화 → 캐시 구현체 → JVM 힙 메모리(Heap Memory) 순서대로 작동할 수 있도록 함따라서 Map 형태로 저장Cache 구현체@EnableCaching 등을 사용할 때 활용할 수 있는 다양한 캐싱용 구현체 구현체 저장 위치 특징 ConcurrentMapCache (기본)JVM Heap매우 단순, 기본 Map 기반.. 2025. 10. 22. (25.09.25) MyBatis Mapper 구문 절 확인해보기 직장에서 업무를 진행하면서, JPA 를 활용하지 않고, 다양한 안정된 복잡한 쿼리를 DB에 보내기 위해MyBatis를 적극적으로 활용하고 있다. SQLD도 취득을 하고, 쿼리 작성 연습도 꾸준히 하고 있음에, 그대로 쿼리를 String으로 그대로 쓰려고 했지만, MyBatis에서는 OGNL을 따르면서, 미리 짠 쿼리를 다시 MyBatis에서 사용할 수 있도록 하는데에 꽤 리소스를 잡아먹었다. 이에 가장 많이 사용 되는 조건 문과 많이 사용하는 구문을 토대로,MyBatis 매퍼를 간단하게 분석하고 기록해서 잊지 않도록 하려고 한다.DB에서 특정 성별(gender) 별, 생성/업데이트 날짜 구간별, 나이 구간별 사용자 리스트를 구하는 MyBatis SQL Mapper(Altibase 환경)요청 예시 (→ U.. 2025. 9. 25. (25.09.02) Java Spring 의 스케쥴러 @scheduled의 shedlock 최근 모 회사의 Platform Backend Engineer로 8월 11일 부터 개발자로 시작하게 되었다.Java Spring 기반의 백엔드 서비스 Platform의 개발을 담당하면서, 서버단에서의 자동화를 위한 Scheduler가 존재하고,대용량 DB 처리를 위해 미들웨어 또는 DB단에서가 아닌 Scheduler단에서 동시성을 제어할 수 있도록 shedlock 을 걸어줘야 했다. 분산 인스턴스에 적합한 Scheduler 대상으로 하는 shedlock 이기 때문에 이에 대해서 간단하게 찾아보면서 예시도 스스로 작성하면서 기록을 하고자 했다. ShedLockDB 등 분산 환경에서 @Scheduled 즉, Scheduler 등의 스케쥴 작업이 동시에 중복 실행되지 않도록 / 분산 DB 에서 중복해서 각.. 2025. 9. 2. (25.08.18) SFU 기반의 그룹통화/방송 연결 2025.08.11 - [Develop Study/Architecture] - (25.08.11) WebRTC기반의 P2P 통화 연결 (25.08.11) WebRTC기반의 P2P 통화 연결최근 취업을 하게 되어,회사의 솔루션 및 서비스를 분석하고자 한다. 항상 Backend 단에서의 API 및 WebSocket 기반의 내 메시지의 교환을 구성했지만, 이와 다르게 SDK 를 기준으로 시그널링만의 역할andrew75313.tistory.com 이전은 1:1 방식의 P2P 통화연결을 볼 수 있었다.똑같이 UDP 프로토콜위에서 중앙서버를 중심으로 미디어 및 텍스트를 SDK 에서 SFU 방식으로 같은 방에 있는 사람들에게 전달해주는 역할을 하고 있다. P2P 방식의 STUN 의 서로의 아이피를 알고 스트리밍을 구.. 2025. 8. 18. (25.08.11) WebRTC기반의 P2P 통화 연결 최근 취업을 하게 되어,회사의 솔루션 및 서비스를 분석하고자 한다. 항상 Backend 단에서의 API 및 WebSocket 기반의 내 메시지의 교환을 구성했지만, 이와 다르게 SDK 를 기준으로 시그널링만의 역할만 서버가 담당하고, 스트리밍을 UDP로 미디어를 스트리밍 = 영상통화를 할 수 있도록 하는 서비스를 샘플 코드를 기반으로 분석하고자 했다.https://docs.knowledgetalk.co.kr/sample/p2p P2P통화 연결 | KnowledgepointSAMPLEP2P통화 연결 설명 중앙 미디어 서버없이 종단 간 직접 연결하여, 연결을 하고 싶은 사용자에게 발신자의 영상을 보낼 수 있습니다. 단, NAT/방화벽 환경의 사용자가 외부망과의 통신을 위해docs.knowledgetalk.c.. 2025. 8. 12. (25.07.22) 다중 RECURSIVE 와 Hierarchy SQL 만들기 최근들어 CTE를 활용해서 다양한 SQL 구문을 테스트 하는 중인데, 이에 관련해서,HashMap과 List를 통해서 구현해서 활용할 수 있지만,SQL에서 이런 계층 구조를 활용해서 데이터를 가공, 조회하는데 RECURSIVE 만으로 힘들다고 생각했다. 하지만, JOIN 을 통해서 루트를 모두 기록한 테이블을 만들어 이를 활용할 수 있다고 생각했고,이를 테스트 구현 연습을 해보고자 했다. (LeetCode 문제활용) Employees table :+----------------+---------+| Column Name | Type |+----------------+---------+| employee_id | int || employee_name | varchar || mana.. 2025. 7. 22. (25.07.16) Java Spring Boot 환경에서 CTE 동작 확인 (MyBatis 와 JPA 활용) 2025.05.13 - [Develop Study/Database] - (25.05.13) SQL 재귀 WITH RECURSIVE (25.05.13) SQL 재귀 WITH RECURSIVESQLD 자격증을 공부하면서 습득했던 구문들과 문법들을 나름 다 활용하고 있다고 생각했는데,Java 기반의 알고리즘 프로그래밍에서나 볼 수 있었던 "재귀" 에대해서 SQL구문을 활용을 하는 예제를andrew75313.tistory.com SQL의 서브 쿼리를 간편하게 작성될 수 있도록 CTE(Common Table Expression)를 활용한 쿼리를 공부하고 많이 활용하고자 하고 있다.PostgreSQL 과 MySQL에서 직접 쿼리를 날려서 데이터를 Fetch 해올 때는 정상적으로 작동을 하지만, 이러한 코드를 실제로.. 2025. 7. 16. 이전 1 2 3 4 ··· 23 다음