기술 블로그
GG FACTORY 개발팀의 기술 경험과 노하우를 공유합니다.
Redis 캐시 키 보안 강화
Redis 캐시를 사용하는 애플리케이션에서 캐시 키 주입 공격 등의 보안 취약점을 예방하고, 안정적인 캐시 시스템 운영을 위해 안전하지 않은 외부 입력값이 캐시 키로 사용될 때 위험을 최소화하는 것을 목표로 하는 기본적인 방법입니다. 보안 강화를 통해 캐시 키 주입 공...
M4 Mac mini Homebrew로 MySQL 설치하기
M4 Mac mini구매 기념 MySQL 설치 가이드를 작성하게 됐습니다~ macOS 환경에서는 Homebrew를 이용해 MySQL과 MySQL Workbench를 설치하는 것이 가장 깔끔하고 효율적입니다. 터미널을 열고 명령어만 몇번 입력하면 설치 후 쉽게 사용할 수...
TypeScript any 린트 에러(no-explicit-any) 근본적으로 해결하기
TypeScript 프로젝트에서 @typescript-eslint/no-explicit-any 린트 에러는 단순 규칙 비활성화로 해결할 문제가 아닙니다. 눈 앞 문제는 해결할 수 있지만, TypeScript를 사용하는 가장 중요한 이유를 위배하게 됩니다. any 타입은...
Cursor 사용자가 작성한 JetBrains Junie 후기
일단 Junie는 JetBrains AI Assistant와 다릅니다. AI Assistant는 코드 자동완성, 설명, 커밋 메시지 생성 등 개발자 작업 지원 도구입니다. 반면 Junie는 개발자 요청에 따라 계획하고 실행하는 AI 코딩 Agents입니다. Junie ...
CorsFilter 설정 및 기능
CorsFilter는 다른 출처(도메인, 프로토콜, 포트)의 프론트엔드 애플리케이션이 백엔드 API와 원활하게 통신할 수 있도록 보안 정책을 적용하는 핵심 구성요소입니다. 주요 기능 CORS 헤더 자동 적용 : 모든 HTTP 응답에 CORS 관련 헤더( Access-C...
Redis 키는 영어랑 숫자만 사용해야할까?
Redis는 영어랑 숫자만 취급해야할까요? 정답은 "아닙니다." 하지만 실무에서는 영어와 숫자만 사용하는 게 좋습니다. 코드를 작성할 때 영어로 작성하는 걸 보면 당연한 결과일 수 있지만 이유를 살펴보겠습니다. Redis는 키는 사실 다 됩니다. UTF-8 완벽 지원 ...
JPA Auditing로 엔티티 공통 필드 자동화
JPA Auditing은 Spring Data JPA에서 제공하는 기능으로, 엔티티가 생성되고 수정될 때 생성일, 수정일, 생성자, 수정자 와 같은 공통 필드를 자동으로 관리해줍니다. 주요 기능 및 이점 코드 간소화 : @PrePersist , @PreUpdate 어노...
Jackson Datatype JSR310 활용한 ObjectMapper LocalDateTime 변환 문제 해결
jackson-datatype-jsr310은 JSON 데이터와 Java 객체 간 변환을 담당하는 Jackson 라이브러리 확장 모듈입니다. 날짜 및 시간 API (JSR-310)을 Jackson이 올바르게 처리할 수 있도록 지원하는 핵심 기능을 제공합니다. 무슨 기능이...
Colima 기본 설정 및 옵션 설명
카테고리 구분을 모호하게 만들어, Docker와 직접적인 관련은 없지만 해당 글을 Docker 카테고리에 작성하게 되었습니다. Colima 인스턴스의 기본 리소스 설정(CPU, Ram, 디스크)를 설명하고, 사용자가 이 설정을 필요에 따라 커스터마이징 할 수 있습니다....
Docker/Colima 연결 에러 해결 가이드
문제 발생 docker ps 또는 docker-compose ps 명령어를 입력했을 때 error during connect: ... EOR 메시지가 나온다면, 이는 Docker Client가 Colima에서 실행 중인 Docker(엔진)에 정상적으로 연결되지 못했음을...