이곳은 제가 실무에서 겪은 문제와 해결 과정, 그리고 그 속에서 얻은 인사이트를 기록하고 공유하는 공간입니다.
글 대부분은 다소 편안하고 자유로운 말투로 작성되었으며, 기록을 통해 지식을 체계화하고 나중에 다시 참고할 수 있는 자료로 남기고자 합니다.
0 posts
[ {"date":"2026-02-11","title":"Coroutine and VirutalThread","url":"/portfolios/docs/Java-Kotlin/51/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2026-02-05","title":"cloudflare tunnel 로 댓글 홈서버 운영 및 자동화","url":"/portfolios/docs/Java/49/","parent":"Server","cat":"Java"}, {"date":"2026-01-24","title":"Hotspot VM 의 JIT 컴파일러와 GraalVM","url":"/portfolios/docs/Java-Kotlin/50/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2026-01-18","title":"최종 정리","url":"/portfolios/docs/toss/16/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-17","title":"메모리 사용률 50% 임계값 alert 및 파티셔닝 전/후 메모리 부하 분산 확인","url":"/portfolios/docs/toss/15/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-14","title":"컨슈머 재정리 로직 개선 및 cdl 개별 interval/retry 설정값 적용","url":"/portfolios/docs/toss/14/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-12","title":"aws-secret/bus-refresh 직접구현은 매우 비효율적. CDL 로 max retry 이후 전송되는 것 관측","url":"/portfolios/docs/toss/13/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-09","title":"추가적인 모니터링 지표들과 stream 크기 동적 확장을 위한 버스 리프레시 구현(redis pub/sub)","url":"/portfolios/docs/toss/12/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-05","title":"실패 메세지 재처리 시 중복방지를 위한 XAUTOCLAIM lua 구현","url":"/portfolios/docs/toss/11/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-03","title":"stream key size 확인","url":"/portfolios/docs/toss/10/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2026-01-01","title":"Consumer 제거 필요 및 stream 별 redis node 메모리 사용량 모니터링 추가","url":"/portfolios/docs/toss/9/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-31","title":"Redis Stream 모니터링 API 안에 lag 데이터까지 가져와서 확인하기","url":"/portfolios/docs/toss/8/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-30","title":"Redis Stream 내부 메세지 모니터링 pagination","url":"/portfolios/docs/toss/7/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-29","title":"Arxiv 서버 헬스체크","url":"/portfolios/docs/toss/6/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-29","title":"CDC table change event","url":"/portfolios/docs/Java/48/","parent":"Server","cat":"Java"}, {"date":"2025-12-26","title":"Grafana Redis Cluster 대시보드 + Stream lag 모니터링 쿼리","url":"/portfolios/docs/toss/5/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-24","title":"XACKDEL 미지원, Grafana 대시보드","url":"/portfolios/docs/toss/4/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-22","title":"Redis Stream 파티셔닝 시 한계점","url":"/portfolios/docs/toss/3/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-21","title":"Redis Cluster 내 설정값 관리 및 구축","url":"/portfolios/docs/toss/2/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-18","title":"Redis 8.4 를 써야하는 이유","url":"/portfolios/docs/toss/1/","parent":"토스 러너스 하이 2기","cat":"toss"}, {"date":"2025-12-10","title":"redis stream 는 kafka 와 달리 그런거 없었다...","url":"/portfolios/docs/Java/47/","parent":"Server","cat":"Java"}, {"date":"2025-11-30","title":"공통 개발 라이브러리를 직접 만들어서 gradle 모듈 github package 로 쉽게 관리하기","url":"/portfolios/docs/Java/46/","parent":"Server","cat":"Java"}, {"date":"2025-11-17","title":"Ollama 는 mac m1 환경에서 docker 실행하기엔 너무 느렸다...","url":"/portfolios/docs/Java/45/","parent":"Server","cat":"Java"}, {"date":"2025-11-11","title":"API 최적화 방법","url":"/portfolios/docs/Java/44/","parent":"Server","cat":"Java"}, {"date":"2025-11-10","title":"protobuf 이진 내부구조 분석 및 gRPC 와 REST API 성능 비교","url":"/portfolios/docs/Java/43/","parent":"Server","cat":"Java"}, {"date":"2025-11-07","title":"GZIP 압축을 이용한 서버 응답 최적화(?)","url":"/portfolios/docs/Java/42/","parent":"Server","cat":"Java"}, {"date":"2025-10-28","title":"대용량 엑셀 파일 처리를 위한 Apache POI 최적화 팁","url":"/portfolios/docs/Java/41/","parent":"Server","cat":"Java"}, {"date":"2025-10-10","title":"Bean 안쓰고 로우레벨에서 싱글톤으로 관리하기","url":"/portfolios/docs/Java-Kotlin/40/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2025-10-09","title":"ElasticSearch ILM 설정 기록","url":"/portfolios/docs/Java/39/","parent":"Server","cat":"Java"}, {"date":"2025-10-04","title":"llama2 chat 7b run on MBP M1 max","url":"/portfolios/docs/Java/38/","parent":"Server","cat":"Java"}, {"date":"2025-10-02","title":"실수로 인해 발생하는 장애를 방지하기 위한 개인적인 규칙과 셋업","url":"/portfolios/docs/%EC%9D%BC%EC%83%81/38/","parent":"개발자 일기","cat":"일상"}, {"date":"2025-09-16","title":"Mysql - Redis stream - Mongodb CDC + ETL setup","url":"/portfolios/docs/Java/37/","parent":"Server","cat":"Java"}, {"date":"2025-08-10","title":"goroutine 경량스레드 상기","url":"/portfolios/docs/Java-Kotlin/36/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2025-08-04","title":"Redis 클러스터 모드에서 stream key 분산처리","url":"/portfolios/docs/Java/34/","parent":"Server","cat":"Java"}, {"date":"2025-05-21","title":"Spring batch","url":"/portfolios/docs/Java/32/","parent":"Server","cat":"Java"}, {"date":"2025-05-07","title":"OAuth 1.0 간단정리","url":"/portfolios/docs/Java/31/","parent":"Server","cat":"Java"}, {"date":"2025-04-25","title":"Amazon MQ 대신 Redis Stream 적용기","url":"/portfolios/docs/Java/30/","parent":"Server","cat":"Java"}, {"date":"2025-03-30","title":"aws 계정변경 유틸 & 쉘 스크립트 베드락","url":"/portfolios/docs/Java/29/","parent":"Server","cat":"Java"}, {"date":"2025-01-28","title":"RestClient 탄생 비화","url":"/portfolios/docs/Java/27/","parent":"Server","cat":"Java"}, {"date":"2025-01-18","title":"배치 모니터링으로 처음 에러 잡기 성공","url":"/portfolios/docs/Java/26/","parent":"Server","cat":"Java"}, {"date":"2025-01-18","title":"자동화 리스트","url":"/portfolios/docs/Java/25/","parent":"Server","cat":"Java"}, {"date":"2024-12-30","title":"Git Actions with multiple Runner","url":"/portfolios/docs/Java/24/","parent":"Server","cat":"Java"}, {"date":"2024-11-02","title":"ETC","url":"/portfolios/docs/Java/21/","parent":"Server","cat":"Java"}, {"date":"2024-10-12","title":"배치 처리 성능 향상","url":"/portfolios/docs/Java/20/","parent":"Server","cat":"Java"}, {"date":"2024-09-06","title":"Kotlin 잡동사니","url":"/portfolios/docs/Java-Kotlin/19/","parent":"Server","cat":"Java-Kotlin"}, {"date":"2024-09-06","title":"Kotlin sealed class","url":"/portfolios/docs/Java-Kotlin/18/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2024-09-04","title":"Mysql varchar/text/char 차이점","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2024-09-08/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2024-09-01","title":"RSA 암호화 원리","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2024-09-01-rsa/","parent":"Cryptography","cat":"암호학"}, {"date":"2024-05-17","title":"Spring 잡동사니","url":"/portfolios/docs/Java/15/","parent":"Server","cat":"Java"}, {"date":"2024-03-07","title":"BM performance tester","url":"/portfolios/docs/benchmark/","cat":"benchmark"}, {"date":"2024-02-23","title":"ARM64 아키텍처를 지원하는 nGrinder 도커 이미지 만들기","url":"/portfolios/docs/docker/2024-02-23-docker8/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2024-02-11","title":"Mock vs Stub vs Spy 정리","url":"/portfolios/docs/Java/14/","parent":"Server","cat":"Java"}, {"date":"2024-02-04","title":"46. SQL OrderBy 에 여러가지 인덱스 적용해보기 - 46배 빨라진 쿼리!","url":"/portfolios/docs/project/2024-02-04-chatting(46)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2024-01-29","title":"45. CI/CD 자동화 구축 - 3","url":"/portfolios/docs/project/2024-01-29-chatting(45)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2024-01-27","title":"44. 현재까지 프로젝트에 사용된 기술 정리","url":"/portfolios/docs/project/2024-01-27-chatting(44)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2024-01-22","title":"(PostgreSQL) Index 에 따른 성능측정","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2024-01-22-DB-4/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2024-01-07","title":"43. 서버성능 개선기록 - 🔴MTTFB 평균차이 - 31% 성능감소","url":"/portfolios/docs/project/2024-01-04-chatting(43)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2024-01-03","title":"42. 서버성능 개선기록 - 🟢MTTFB 변동량 평균 30.46% 개선","url":"/portfolios/docs/project/2024-01-03-chatting(42)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-12-29","title":"41. 서버성능 개선기록 - 🟢TPS AVG 31%, MTTFB p99 39% 개선","url":"/portfolios/docs/project/2023-12-29-chatting(41)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-12-21","title":"40. 서버성능 개선기록 - 🟢TPS p99 4556%, MTTFB p95 94.47% 개선","url":"/portfolios/docs/project/2023-12-21-chatting(40)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-12-10","title":"39. CI/CD 자동화 성공 - 2","url":"/portfolios/docs/project/2023-12-10-chatting(39)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-11-03","title":"Transactional 와 Async 예제 및 탐구","url":"/portfolios/docs/Java/13/","parent":"Server","cat":"Java"}, {"date":"2023-10-07","title":"38. CI/CD 자동화 성공 그리고 실패 - 1","url":"/portfolios/docs/project/2023-10-07-chatting(38)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-09-12","title":"쿠버네티스 요약본","url":"/portfolios/docs/docker/2023-09-12-docker/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2023-09-10","title":"JPQL JOIN 의 4가지 방식과 예제 설명","url":"/portfolios/docs/Java/12/","parent":"Server","cat":"Java"}, {"date":"2023-09-10","title":"Spring Security 데이터 플로우","url":"/portfolios/docs/Java/11/","parent":"Server","cat":"Java"}, {"date":"2023-08-08","title":"JPA 양방향 전파 설정 3 가지 경우 테스트","url":"/portfolios/docs/Java/10/","parent":"Server","cat":"Java"}, {"date":"2023-08-01","title":"JPA IdClass 중복저장 시 기존 엔티티 업데이트 이슈","url":"/portfolios/docs/Java/9/","parent":"Server","cat":"Java"}, {"date":"2023-06-26","title":"📌 쿼리 최적화 방법","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/db1/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2023-06-18","title":"Spring-Cloud-Gateway 지원 로드밸런싱 기술","url":"/portfolios/docs/Java/8/","parent":"Server","cat":"Java"}, {"date":"2023-06-18","title":"37. Spring Cloud 기반 MSA 변환 시작-11(RDB 트래픽 분산)","url":"/portfolios/docs/project/2023-06-18-chatting(37)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-06-17","title":"Spring-Java 에서의 Sync/Async Blocking/Non-Blocking 구현 방법","url":"/portfolios/docs/Java/7/","parent":"Server","cat":"Java"}, {"date":"2023-06-10","title":"36. Spring Cloud 기반 MSA 변환 시작-10(FE/BE 동기화)","url":"/portfolios/docs/project/2023-06-10-chatting(36)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-05-01","title":"35. Spring Cloud 기반 MSA 변환 시작-9(성능이슈 해결 과정)","url":"/portfolios/docs/project/2023-05-01-chatting(35)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-30","title":"34. Spring Cloud 기반 MSA 변환 시작-8(CQRS 설계)","url":"/portfolios/docs/project/2023-04-30-chatting(34)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-25","title":"33. Spring Cloud 기반 MSA 변환 시작-7(주문서비스 이벤트 flow 및 스키마 설계)","url":"/portfolios/docs/project/2023-04-25-chatting(33)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-24","title":"32. Spring Cloud 기반 MSA 변환 시작-6(MSA Project 를 진행하면서 느낀 점)","url":"/portfolios/docs/project/2023-04-24-chatting(32)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-24","title":"31. Spring Cloud 기반 MSA 변환 시작-6","url":"/portfolios/docs/project/2023-04-24-chatting(31)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-19","title":"Netty 아키텍처 및 동작과정","url":"/portfolios/docs/Java/6/","parent":"Server","cat":"Java"}, {"date":"2023-04-19","title":"NIO 와 Reactor 모델 아키텍처 설명","url":"/portfolios/docs/Java/5/","parent":"Server","cat":"Java"}, {"date":"2023-04-17","title":"30. Spring Cloud 기반 MSA 변환 시작-5","url":"/portfolios/docs/project/2023-04-17-chatting(30)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-13","title":"29. Spring Cloud 기반 MSA 변환 시작-4","url":"/portfolios/docs/project/2023-04-13-chatting(29)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-04-08","title":"Spring Security(WebFlux) 인증/인가 설정 + JWT","url":"/portfolios/docs/Java/3/","parent":"Server","cat":"Java"}, {"date":"2023-04-05","title":"WebFlux(Reactive Programming)","url":"/portfolios/docs/Java/2/","parent":"Server","cat":"Java"}, {"date":"2023-04-05","title":"CompletableFuture vs WebFlux","url":"/portfolios/docs/Java/1/","parent":"Server","cat":"Java"}, {"date":"2023-03-29","title":"28. Spring Cloud 기반 MSA 변환 시작-3","url":"/portfolios/docs/project/2023-03-29-chatting(28)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-28","title":"27. Spring Cloud 기반 MSA 변환 시작-2","url":"/portfolios/docs/project/2023-03-28-chatting(27)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-27","title":"26. Spring Cloud 기반 MSA 변환 시작-1","url":"/portfolios/docs/project/2023-03-27-chatting(26)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-16","title":"25. Postgresql indexing 활성화","url":"/portfolios/docs/project/2023-03-16-chatting(25)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-15","title":"CompletableFuture 기능 별 심화이해","url":"/portfolios/docs/Java-Kotlin/java3/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2023-03-15","title":"24. 트랜젝션과 멀티스레드의 잘못된 매칭 수정","url":"/portfolios/docs/project/2023-03-15-chatting(24)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-11","title":"23. HTTP benchmark tool 제작 및 서버 부하 Fuzzing Test","url":"/portfolios/docs/project/2023-03-11-chatting(23)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-06","title":"22. @Async를 사용하지 않는 Spring Java MultiThread handling","url":"/portfolios/docs/project/2023-03-06-chatting(22)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-05","title":"21. Postgresql Locks 및 RDS 지표 관찰, 성능향상!","url":"/portfolios/docs/project/2023-03-05-chatting(21)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-04","title":"20. 싱글 스레드 -> 멀티 스레드","url":"/portfolios/docs/project/2023-03-04-chatting(20)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-03-02","title":"Garbage Collection","url":"/portfolios/docs/Java-Kotlin/java2/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2023-02-21","title":"Java에서의 비동기 NonBlocking, 그리고 ListenableFuture 객체","url":"/portfolios/docs/Java-Kotlin/java1/","parent":"Java-Kotlin","cat":"Java-Kotlin"}, {"date":"2023-01-30","title":"19. 현재까지의 일정관리 Notion","url":"/portfolios/docs/project/2023-01-30-chatting(19)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-27","title":"18. 성능개선 사안들 및 적용된 값","url":"/portfolios/docs/project/2023-01-27-chatting(18)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-24","title":"17. 프론트 서버 개발 완료 및 성능이슈 발생","url":"/portfolios/docs/project/2023-01-24-chatting(17)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-20","title":"16. 프론트 서버의 예상 UI + 시퀀스 다이어그램 + HTTP 송/수신 방법 정의","url":"/portfolios/docs/project/2023-01-20-chatting(16)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-17","title":"15. 대량 Rest api test 시 속도문제 해결과정-2","url":"/portfolios/docs/project/2023-01-17-chatting(15)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-17","title":"14. 대량 Rest api test 자동화","url":"/portfolios/docs/project/2023-01-17-chatting(14)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-16","title":"13. 대량 Rest api test 시 속도문제 해결과정-1","url":"/portfolios/docs/project/2023-01-16-chatting(13)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-16","title":"12. 대량 Rest api test","url":"/portfolios/docs/project/2023-01-16-chatting(12)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-15","title":"11. 대량 Rest api test 코드","url":"/portfolios/docs/project/2023-01-15-chatting(11)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-08","title":"10. 양방향 DB Sync 구현의 어려움과 비용","url":"/portfolios/docs/project/2023-01-08-chatting(10)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-04","title":"9. 단방향 DB Sync with Kafka connector","url":"/portfolios/docs/project/2023-01-04-chatting(9)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-03","title":"8. Kafka/Spring/ELK Stack 연동완료","url":"/portfolios/docs/project/2023-01-03-chatting(8)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2023-01-02","title":"Elastic Search 심화(2) ELK stack","url":"/portfolios/docs/elasticSearch/2023-01-02-elastic-search(3)/","parent":"Elastic Search","cat":"elasticSearch"}, {"date":"2023-01-01","title":"Elastic Search 심화(1)","url":"/portfolios/docs/elasticSearch/2023-01-01-elastic-search(2)/","parent":"Elastic Search","cat":"elasticSearch"}, {"date":"2022-12-31","title":"Elastic Search의 개념 및 RDB와의 차이점","url":"/portfolios/docs/elasticSearch/2022-12-31-elastic-search/","parent":"Elastic Search","cat":"elasticSearch"}, {"date":"2022-12-30","title":"7. 수정된 아키텍처","url":"/portfolios/docs/project/2022-12-30-chatting(7)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-24","title":"6. 전체 아키텍처 수정","url":"/portfolios/docs/project/2022-12-24-chatting(6)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-21","title":"5. Kafka 연동완료","url":"/portfolios/docs/project/2022-12-21-chatting(5)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-19","title":"4. 프로젝트 수행시 고려점2","url":"/portfolios/docs/project/2022-12-19-chatting(4)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-19","title":"Kafka에 대한 고찰","url":"/portfolios/docs/Java/1-3/","parent":"Server","cat":"Java"}, {"date":"2022-12-18","title":"3. JPA save 잘못된 이해로 비롯된 에러","url":"/portfolios/docs/project/2022-12-18-chatting(3)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-17","title":"2. 프로젝트 수행시 고려점1","url":"/portfolios/docs/project/2022-12-17-chatting(2)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-11","title":"1. 현재 프로젝트의 문제점과 해결방법","url":"/portfolios/docs/project/2022-12-11-chatting(1)/","parent":"실시간 채팅서버 프로젝트","cat":"project"}, {"date":"2022-12-02","title":"KafkaMQ 의 아키텍처와 메세지를 처리하는 방식","url":"/portfolios/docs/Java/1-2/","parent":"Server","cat":"Java"}, {"date":"2022-12-01","title":"메세지 큐의 개념 및 장점","url":"/portfolios/docs/Java/1-1/","parent":"Server","cat":"Java"}, {"date":"2022-11-20","title":"CAP와 ACID, BASE 이론","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2022-11-20-DB-3/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2022-11-20","title":"RDB 트랜젝션 Isolation","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2022-11-20-DB-2/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2022-10-14","title":"Algorithm(1) 트리","url":"/portfolios/docs/CS/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/2022-10-14-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/","parent":"알고리즘","cat":"CS"}, {"date":"2022-10-06","title":"(English) RDB Normalization","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2022-10-06-DB-1/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2022-09-18","title":"(EN) What is Goroutine and its behavior","url":"/portfolios/docs/Go%EC%96%B8%EC%96%B4/2022-09-18-thread-goroutine/","parent":"Go","cat":"Go언어"}, {"date":"2022-09-05","title":"(EN) What is MSA?","url":"/portfolios/docs/msa/2022-09-05-micro-service-architecture2/","parent":"Micro Service Architecture","cat":"msa"}, {"date":"2022-09-04","title":"(KR) Saga 의 두 가지 패턴 설명","url":"/portfolios/docs/msa/2022-09-04-micro-service-architecture1/","parent":"Micro Service Architecture","cat":"msa"}, {"date":"2022-08-30","title":"(EN) Golang vs Spring Native","url":"/portfolios/docs/Go%EC%96%B8%EC%96%B4/2022-08-30-golang-vs-spring(1)/","parent":"Go","cat":"Go언어"}, {"date":"2022-08-25","title":"(EN) Golang vs Java(2)","url":"/portfolios/docs/Go%EC%96%B8%EC%96%B4/2022-08-25-golang-vs-java2/","parent":"Go","cat":"Go언어"}, {"date":"2022-08-23","title":"(EN) Golang vs Java(1)","url":"/portfolios/docs/Go%EC%96%B8%EC%96%B4/2022-08-23-golang-vs-java/","parent":"Go","cat":"Go언어"}, {"date":"2022-08-01","title":"간단한 포트폴리오 웹 제작","url":"/portfolios/docs/toy/toyp6/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2022-05-30","title":"(EN) Relationship between MSA and Docker","url":"/portfolios/docs/msa/2022-05-30-msa-docker-kubernetes/","parent":"Micro Service Architecture","cat":"msa"}, {"date":"2022-05-10","title":"(English) RSA ecnryption","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2022-05-10-rsa/","parent":"Cryptography","cat":"암호학"}, {"date":"2022-05-01","title":"(EN) Network(4) Cookie and Session, JWT(Json Web Token)","url":"/portfolios/docs/CS/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/2022-05-01-cookie-session-storage/","parent":"Network","cat":"CS"}, {"date":"2022-04-25","title":"(EN)Building a Lightweight MQ with Redis Streams","url":"/portfolios/docs/Java/1-4/","parent":"Server","cat":"Java"}, {"date":"2022-04-23","title":"(EN) implementation (2)","url":"/portfolios/docs/project2/2022-04-23-golang-backend(3)/","parent":"Bank API Server Project","cat":"project2"}, {"date":"2022-03-22","title":"(KR) SAGA Choreography 트랜젝션 관리 및 DDD(Domain-Driven Design)","url":"/portfolios/docs/msa/2023-03-22-msa1/","parent":"Micro Service Architecture","cat":"msa"}, {"date":"2022-03-15","title":"(English) Kubernetes","url":"/portfolios/docs/docker/2022-03-15-kubernetes/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2022-03-13","title":"📌 도커 vs VM Hypervisor Type-1 vs VM Hypervisor Type-2 차이점 설명","url":"/portfolios/docs/docker/2022-03-13-docker2/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2022-03-10","title":"(English) Docker Setting","url":"/portfolios/docs/docker/2022-03-10-docker1/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2022-02-22","title":"(EN) Network(3) TLS 1.2 vs TLS 1.3","url":"/portfolios/docs/CS/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/2022-02-22-network(3)/","parent":"Network","cat":"CS"}, {"date":"2022-02-08","title":"(English) RDB Transaction","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/2022-02-08-DB-transcation/","parent":"RDBMS","cat":"데이터베이스"}, {"date":"2022-02-02","title":"(EN) implementation (1)","url":"/portfolios/docs/project2/2022-02-02-golang-backend(1)/","parent":"Bank API Server Project","cat":"project2"}, {"date":"2022-02-01","title":"GOTYBENCH(HTTP Benchmark Tool) 설계","url":"/portfolios/docs/toy/toyp3/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2022-01-08","title":"(EN) Network(2) HTTP comparison by its version(1.0/1.1/2.0/3.0)+basic TLS","url":"/portfolios/docs/CS/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/2022-01-08-network(2)/","parent":"Network","cat":"CS"}, {"date":"2021-12-29","title":"(EN) Network(1) OSI 7 Layers","url":"/portfolios/docs/CS/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/2021-12-29-network(1)/","parent":"Network","cat":"CS"}, {"date":"2021-12-01","title":"악성코드 유형 별 대표 특성 추출 프로젝트","url":"/portfolios/docs/toy/toyp8/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2021-09-01","title":"새로운 블록체인 합의 알고리즘 설계","url":"/portfolios/docs/toy/toyp4/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2021-09-01","title":"파워쉘 악성 스크립트 탐지 프로젝트","url":"/portfolios/docs/toy/toyp2/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2021-05-12","title":"(English) Blowfish encryption","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2021-05-12-bcrypt/","parent":"Cryptography","cat":"암호학"}, {"date":"2021-05-11","title":"(English) GCM(Galois Counter Mode) With GMAC","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2021-05-11-gcm/","parent":"Cryptography","cat":"암호학"}, {"date":"2021-04-12","title":"(English) TLS/SSL 암호화 과정","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2021-04-12-ssl-tls/","parent":"Cryptography","cat":"암호학"}, {"date":"2021-04-05","title":"ChatGPT 에게 쿠버네티스를 물어보기","url":"/portfolios/docs/docker/kubernetes-4/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2021-04-02","title":"쿠버네티스 생명 주기","url":"/portfolios/docs/docker/kubernetes-3/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2021-03-19","title":"쿠버네티스를 이해하기 위해 필요한 사전 지식들","url":"/portfolios/docs/docker/kubernetes-2/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2021-03-10","title":"(English) AES(Advanced Encryption Standard) encryption","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/2021-03-10-aes/","parent":"Cryptography","cat":"암호학"}, {"date":"2021-02-19","title":"📌 쿠버네티스의 아키텍처 설명","url":"/portfolios/docs/docker/kubernetes/","parent":"도커와 쿠버네티스","cat":"docker"}, {"date":"2021-01-29","title":"(KR) OS(7) 총정리","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-29-OS-7/","parent":"OS","cat":"CS"}, {"date":"2021-01-28","title":"(EN) OS(6) CPU Scheduling Algorithm","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-28-OS-6/","parent":"OS","cat":"CS"}, {"date":"2021-01-27","title":"(EN) OS(5) Context Switch and Critical Section","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-27-OS-5/","parent":"OS","cat":"CS"}, {"date":"2021-01-25","title":"(EN) OS(4) Process and Thread","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-25-OS-4/","parent":"OS","cat":"CS"}, {"date":"2021-01-22","title":"(EN) OS(3) Memory","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-22-OS-3/","parent":"OS","cat":"CS"}, {"date":"2021-01-20","title":"(EN) OS(2) Types of Cache Mapping","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-20-OS-2/","parent":"OS","cat":"CS"}, {"date":"2021-01-18","title":"(EN) OS(1) Computer Architecture and Cache","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/2021-01-18-OS-1/","parent":"OS","cat":"CS"}, {"date":"2020-12-04","title":"(EN) Geth v1.8.x Architecture and Eclipse Attack","url":"/portfolios/docs/Blockchain/2020-12-04-ethereum-eclipse-attack2/","parent":"Ethereum Eclipse Attack","cat":"Blockchain"}, {"date":"2020-11-27","title":"(EN) Geth v1.6.6 Architecture and Eclipse Attack","url":"/portfolios/docs/Blockchain/2020-11-27-ethereum-eclipse-attack/","parent":"Ethereum Eclipse Attack","cat":"Blockchain"}, {"date":"2020-06-01","title":"택시 주행 시뮬레이터 개발 및 분석결과","url":"/portfolios/docs/toy/toyp7/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2020-01-01","title":"DB 관찰 툴 프로젝트","url":"/portfolios/docs/toy/toyp1/","parent":"토이 프로젝트","cat":"toy"}, {"date":"2019-04-01","title":"근처 맛집 추천 프로젝트","url":"/portfolios/docs/toy/toyp5/","parent":"토이 프로젝트","cat":"toy"}, {"date":"","title":"Ethereum Eclipse Attack","url":"/portfolios/docs/Blockchain/","cat":"Blockchain"}, {"date":"","title":"Computer Science","url":"/portfolios/docs/CS/","cat":"CS"}, {"date":"","title":"Network","url":"/portfolios/docs/CS/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/","parent":"Computer Science","cat":"CS"}, {"date":"","title":"알고리즘","url":"/portfolios/docs/CS/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98/","parent":"Computer Science","cat":"CS"}, {"date":"","title":"OS","url":"/portfolios/docs/CS/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/","parent":"Computer Science","cat":"CS"}, {"date":"","title":"Go","url":"/portfolios/docs/Go%EC%96%B8%EC%96%B4/","cat":"Go언어"}, {"date":"","title":"Java-Kotlin","url":"/portfolios/docs/Java-Kotlin/","cat":"Java-Kotlin"}, {"date":"","title":"Server","url":"/portfolios/docs/Java/","cat":"Java"}, {"date":"","title":"📌 Cassandra의 구조 및 동작과정, RDB와의 차이점","url":"/portfolios/docs/NOSQL/cassandra/","parent":"NO-SQL","cat":"NOSQL"}, {"date":"","title":"NO-SQL","url":"/portfolios/docs/NOSQL/","cat":"NOSQL"}, {"date":"","title":"프로세스","url":"/portfolios/docs/alg/current1/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"다리를 지나는 트럭","url":"/portfolios/docs/alg/current2/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"전력망을 둘로 나누기","url":"/portfolios/docs/alg/current3/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"모음 사전","url":"/portfolios/docs/alg/current4/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"타겟 넘버","url":"/portfolios/docs/alg/current5/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"H-Index","url":"/portfolios/docs/alg/current6/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"네트워크","url":"/portfolios/docs/alg/current7/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"퍼즐 조각 채우기","url":"/portfolios/docs/alg/current8/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"가장 먼 노드","url":"/portfolios/docs/alg/current9/","parent":"알고리즘 문제","cat":"alg"}, {"date":"","title":"알고리즘 문제","url":"/portfolios/docs/alg/","cat":"alg"}, {"date":"","title":"자동화 목록","url":"/portfolios/docs/automation/","cat":"automation"}, {"date":"","title":"도커와 쿠버네티스","url":"/portfolios/docs/docker/","cat":"docker"}, {"date":"","title":"Elastic Search","url":"/portfolios/docs/elasticSearch/","cat":"elasticSearch"}, {"date":"","title":"(English) NPM vs YARN","url":"/portfolios/docs/etc/2022-06-09-npm-vs-yarn/","parent":"기타","cat":"etc"}, {"date":"","title":"CSRF 공격","url":"/portfolios/docs/etc/3/","parent":"기타","cat":"etc"}, {"date":"","title":"아무거나 기록","url":"/portfolios/docs/etc/4/","parent":"기타","cat":"etc"}, {"date":"","title":"Authorization Code with PKCE","url":"/portfolios/docs/etc/5/","parent":"기타","cat":"etc"}, {"date":"","title":"cv","url":"/portfolios/docs/etc/en_cv/","parent":"기타","cat":"etc"}, {"date":"","title":"git alias 로 회사, 개인 프로젝트 구분","url":"/portfolios/docs/etc/git-alias/","parent":"기타","cat":"etc"}, {"date":"","title":"Git 명령어 정리","url":"/portfolios/docs/etc/git-usage/","parent":"기타","cat":"etc"}, {"date":"","title":"기타","url":"/portfolios/docs/etc/","cat":"etc"}, {"date":"","title":"Explainable AI(XAI)로 취약점 분석","url":"/portfolios/docs/foxee/","cat":"foxee"}, {"date":"","title":"Micro Service Architecture","url":"/portfolios/docs/msa/","cat":"msa"}, {"date":"","title":"성능개선 기록","url":"/portfolios/docs/pf/","cat":"pf"}, {"date":"","title":"실시간 채팅서버 프로젝트","url":"/portfolios/docs/project/","cat":"project"}, {"date":"","title":"Bank API Server Project","url":"/portfolios/docs/project2/","cat":"project2"}, {"date":"","title":"토스 러너스 하이 2기","url":"/portfolios/docs/toss/","cat":"toss"}, {"date":"","title":"토이 프로젝트","url":"/portfolios/docs/toy/","cat":"toy"}, {"date":"","title":"RDBMS","url":"/portfolios/docs/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4/","cat":"데이터베이스"}, {"date":"","title":"(English) ECC encryption","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/ecc/","parent":"Cryptography","cat":"암호학"}, {"date":"","title":"Cryptography","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/","cat":"암호학"}, {"date":"","title":"(English) JWT vs PASETO","url":"/portfolios/docs/%EC%95%94%ED%98%B8%ED%95%99/token/","parent":"Cryptography","cat":"암호학"}, {"date":"","title":"2023-02-27 개발자 취준생 일기","url":"/portfolios/docs/%EC%9D%BC%EC%83%81/current1/","parent":"개발자 일기","cat":"일상"}, {"date":"","title":"2023-06-01 개발자 취준생 일기","url":"/portfolios/docs/%EC%9D%BC%EC%83%81/current2/","parent":"개발자 일기","cat":"일상"}, {"date":"","title":"2024-07-03 PCA infarction","url":"/portfolios/docs/%EC%9D%BC%EC%83%81/current3/","parent":"개발자 일기","cat":"일상"}, {"date":"","title":"개발자 일기","url":"/portfolios/docs/%EC%9D%BC%EC%83%81/","cat":"일상"}, {"date":"","title":"REST/JSON-RPC/gRPC","url":"/portfolios/docs/%ED%86%B5%EC%8B%A0%20%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/2022-03-19-REST-JSON-and-gRPC/","parent":"API 아키텍처","cat":"통신 프로토콜"}, {"date":"","title":"(English) rest-Api 디자인 룰","url":"/portfolios/docs/%ED%86%B5%EC%8B%A0%20%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/2022-09-11-REST/","parent":"API 아키텍처","cat":"통신 프로토콜"}, {"date":"","title":"API 아키텍처","url":"/portfolios/docs/%ED%86%B5%EC%8B%A0%20%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/","cat":"통신 프로토콜"} ]