전체 글
-
Spring Data Redis 설정(1) - RedisTemplate 설정Spring Boot 2025. 4. 27. 16:57
Redis 설정 관련하여 아키텍처, 직렬화/역직렬화에 대한 기록1. Redis 아키텍처설정에 앞서 아키텍처에 따라 Connection 설정 방법에 차이가 있어 아키텍처를 살펴본다.Redis를 사용하는 아키텍처는 크게 4가지가 있다. (참고 - https://docs.spring.io/spring-data/redis/reference/redis/connection-modes.html)1) StandAlone1대의 Redis 서버2) Redis Replication (master/slave 구조)master (읽기/쓰기), slave (master 데이터 복사 - 읽기전용)로 구성master → slave 복사시간이 1-2초 소요되는 단점이라 잘 쓰이지 않는 구조이다.redis cluster를 잘 운영하지 ..
-
1부 - 함께 자라기 (절망편) - 일터의 경험 격차회고 2025. 4. 15. 19:45
0. 배경취직하고 첫 개발자 스터디 서적으로 “함께 자라기”라는 책이 있다.책의 앞부분 내용을 축약하면 이렇다. 무서운 이야기가 아닐 수 없다.같은 경력을 쌓아도 격차가 생긴다는 불안이 따른다.어디에서 일 하느냐에 따라 업무 자체의 질(경험)이 다르다.2.8%의 퇴근 후 3시간 이상 공부하는 사람이 되어야 2-3년 뒤 훗날을 도모할 수 있다는 압박도 있다.이런 불안/압박은 한국의 고도성장/경쟁 문화의 폐해이며 정신적으로 건강하지 못하다. (https://www.youtube.com/watch?v=uWDRw6LzeCM).하여 정신적으로 건강하게 성장하는 방법을 도모하였는데, 2편 희망편에서 작성하도록 한다.1. 일터의 경험한국 기준으로 크게 5가지 유형의 IT 일터가 있는 것 같다.IT업계의 유형에 따라서..
-
[2025-02-15 k-devcon] StackOverflow에서 25,000점을 얻으며 배운 것들세미나 참석 2025. 2. 17. 00:53
배경이번 주는 너무 피곤해서, 회사 동료가 함께 가자고 했던 코틀린 세미나도 거절했다.(코틀린 세미나가 궁금하신 분은 이곳 - https://github.com/Kotlin-User-Groups-Seoul/kotlin-backend-meetup-2025)푹 쉬려고 했는데, 퇴근길 우연히 작년 한 해 가장 큰 영향을 주신 두 분이 발표자로 나선다는 세미나 광고를 보고 급 세미나에 다녀왔다. 두 분 중 한 분인 김영재 님의 발표 내용을 기록 해본다.StackOverflow에서 25,000점을 얻으며 배운 것들StackOverFlow는 서비스 충성도를 높이는 것이 굉장히 잘되어 있는 사이트다.가입 후 활동에 따라 priivilige라는 점수가 부여되는데 높아질 수록 할 수 있는 것이 많아진다.125점 (질문 ..
-
[2025-02-15 k-devcon] 성공적인 UX 솔루션을 위한 Key Things (feat. 어드민)세미나 참석 2025. 2. 17. 00:15
배경이번 주는 너무 피곤해서, 회사 동료가 함께 가자고 했던 코틀린 세미나도 거절했다.(코틀린 세미나가 궁금하신 분은 이곳 - https://github.com/Kotlin-User-Groups-Seoul/kotlin-backend-meetup-2025)푹 쉬려고 했는데, 퇴근길 우연히 작년 한 해 가장 큰 영향을 주신 두 분이 발표자로 나선다는 세미나 광고를 보고 급 세미나에 다녀왔다. 개발 세미나인 줄 알고 참석했지만, 막상 가보니 절반은 기획자와 디자이너를 위한 세션이었다.평소라면 그냥 지나쳤을지도 모르지만, 요즘 Admin UI/UX 사용성에 관심이 많았던 터라, 이 기회에 한 번 들어보기로 했다. 성공적인 UX 솔루션을 위한 Key Things 처음 Admin UX에 관심을 가지게 된 계기는 ..
-
Jobrunr 사용한 Springboot에 스케줄링 작업 구현Spring Boot 2025. 1. 30. 00:20
배경Spring Scheduler는 간단하지만 실패시 처리/실행 로그 확인 같은 작업이 굉장히 불편하다.Jobrunr를 사용하면 Spring Scheduler의 불편함을 해결할 수 있다.별도 구축없이 내장 dashboard를 제공 (실패/성공 이력 모니터링 가능, 스케줄링 삭제, 재시도 가능)애너테이션 기반 내장 스케줄링 지원 (@Recurring)API 기반 작업 등록 지원 (enqueue, scheduleIn, schedulerRecurrently)실패 시 재시도, 부가처리 가능사용 방법이 간단하여 spring batch 처럼 많은 공부를 필요로 하지 않는다. (Java 8 문법만 알면 이해 가능하다.) 공식 문서 : https://www.jobrunr.io/en/documentation/ Docu..
-
[springboot 예외 처리 안티패턴 정리] Exception Handling Worst PracticeSpring Boot 2024. 12. 30. 01:05
개발자로 회사를 4곳을 거치며 다양한 예외처리 방식을 경험했다.예외처리 방식의 정답은 없지만 틀린 답은 있었다. 해서는 안되는 안티패턴을 정리 해본다.선행 지식 java error : https://yeoon.tistory.com/1351. 클라이언트에게 검증 위임하기 (X)서버의 입력 유효성 검사는 반드시 서버에서 이루어 져야한다.실무에서 클라이언트에서 검증을 이미 진행한다는 이유로, 서버에서 입력 값 검증을 하지 않는 경우가 있었다.유효성 검사를 넣으면, 개발 속도가 느려진다는 이유 였는데 이는 굉장히 위험하다.사용자는 반드시 실수한다. 사용자는 알고도 잘못된 파라미터를 보낸다.900만원 9000원으로 조작하여 구매한 이야기 : https://www.seoul.co.kr/news/newsView.ph..
-
코딩 규칙 정하기 하루 전JAVA 2024. 12. 18. 00:50
코딩 규칙 정하기에 앞서 코딩 규칙이 필요한 이유을 작성해본다.코딩을 잘한다는 것은?개발이라는 행위는 대부분 특정 조직에서 이윤을 만드는 것이 목적이다. (세상의 문제를 해결한다고는 하지만, 대부분이 돈이 되는 문제를 해결한다)회사 입장에서 개발의 목표는 짧은 리드타임, 큰 경제적 가치 창출이 전부다. (https://yeoon.tistory.com/178)경영자 입장에서 개발 관련해 해야할 일은 너무 쉽다. 분기별 인건비만 잘 관리하면 된다. 개발에서 이윤 아웃풋을 만들기 위한 투입 리소스는 100% "인간"이다.(서버비, 운영비 제외)경영자 입장에서 개발을 잘하는 사람은 기간, 예산에 맞춰 적시에 업무를 완수하는 사람이다.회사 입장에서 코딩을 잘하는 개발자는 요구사항을 짧은 기간 내에 완수하는 사람이..
-
MySQL 관련해 신경쓰면 좋은 것 (feat. 성능)Spring Boot/DB 2024. 11. 13. 21:48
1. mysql 5.7.20 → mysql 8.0 아키텍처 변경Query cache가 MySQL 5.7.20부터 depreciated 되고, 8.0을 기점으로 삭제(https://dev.mysql.com/doc/refman/5.7/en/query-cache-configuration.html)트래픽 많아지면서 발생하는 DBMS의 Query cache 업데이트 비용과, 운영중 발생하는 캐시 stale 문제가 Query cache 기능을 제공하는 이점 보다 심각하다 판단하여 삭제mysql 버전을 올렸는데 더 느려진 경우가 있는데 Query cache가 없어졌기 때문. 캐시는 애플리케이션 단에 직접 구현해야한다. 2. mysql 5.7.20 → mysql 8.0 Storage 엔진query 실행하는 구현체 엔..