0. 이 글을 작성하는 이유 Redis가 어디에 좋고 왜 사용하는지 알아보면서 정리하기 위해 1. Redis란? Redis는 비관계형 데이터베이스 관리 시스템 NoSQL DBMS입니다. Key와 Value로 데이터를 구성하여 별도의 SQL없이 Key로 데이터를 조회할 수 있습니다. 어 어? 동작 그만. 마! Key와 Value는 Java에서도 Map지원하는데 이걸 왜 쓰는데 조회 속도가 빠릅니다. 내가 빙다리.. 아니 컴공과 1학년으로 보이냐 임마. Java의 Map도 Hashing을 사용해서 조회 속도가 빠른데 어?! 성격이 좀 급하십니다. 실은 그게 핵심은 아닙니다. Redis는 RAM에 데이터를 저장합니다. RDBMS는 데이터를 어디에 저장하죠? 보조 기억장치(HDD, SSD)에 저장하죠. (물론 ..
분류 전체보기
0. 이 글을 쓰는 목적 https://redis.io/docs/getting-started/ Get started with Redis How to get up and running with Redis redis.io Redis 해보려다가 Redis Stack이라는게 보여서 이걸로 연동 맛보기 해보려고함 1. Redis와 Redis-stack의 다른점은? Redis + Additional features 정도로 생각하면 될 것 같다. 2. 환경 구축 우선 Redis-stack은 딱히 이유는 없고 docker로 구축하려고 한다. redis-stack-server와 redis-stack이 반겨준다. 이 중 뭘 골라야할지 고민이 되는데 redis-stack은 redis-stack-server와 GUI Clie..
0. 이 글의 목적 Real MySQL 8.0을 읽으면서 내가 정리하고 싶은 부분에 대해 작성하기 위함 1. 환경 container : docker db : mariadb 10 (아무튼 mariadb는 mysql 서비스를 fork 해서 만들었기 때문에 이걸로 진행) 2. 서버 설정 MySQL 서버는 단 하나의 설정 파일을 사용한다. 확장자는 운영체제의 환경에 따라 다르나 보통 리눅스 환경에서 사용한다고 가정하고 cnf 파일로 진행한다. 리눅스 : my.cnf 윈도우즈 : my.ini 단 하나의 설정 파일을 사용한다고 했는데 이는 공통적으로 my.cnf라는 이름을 사용한다는 것이다. 문제는 이 파일이 여러 경로에 존재할 수 있는데 어느 디렉토리에 있는 my.cnf를 참조하고 있는지 아래 명령어로 확인이 가..
0. 이 글의 목적 JAVA의 finalize에 대해 정말 간단하게 소개하기 위해 1. 일련의 가상 사례를 들어보자. 우리는 브들리(php-5년차, 급하게 java프로젝트 투입)와 찰스(java-3년차)라는 2명의 개발자를 예시로 이야기를 진행한다. 찰스 : 브들리? 이거 finalize는 왜 오버라이딩 했어요? 브들리 : java는 gc가 메모리 수거하잖아요. 로그를 좀 찍어두면 좋지 않을까 해서요. 찰스 : 아니... 이러면 답이 없는데... 하.. finalize가 뭐 하는 메서드인지는 알아요? 브들리 : 알죠? 객체 소멸자. c++에서는 직접 호출해야 하는데 java에서는 gc가 알아서 처리해 주는 거잖아요. 찰스 : ... 2. 일단 당장은 뭐가 문제인가 finalize에 대해 소멸자인 것까지는..
0. 이 글을 쓰는 이유 대부분의 spring security 가이드에서는 csrf를 disable하는데 csrf는 뭐고 왜 disable처리하는지 궁금해서 정리하기 위함 1. CSRF란? Cross Site Request Forgery : 사이트간 위조 요청 웹사이트 취약점 공격 방법 중 하나로 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 2. Spring Security에서는? CSRF에 대한 예방 기능을 제공한다. https://docs.spring.io/spring-security/reference/features/exploits/csrf.html Cross Site Request Forgery (CSRF) :: Spring Security When..
0. 이 글을 작성하는 이유 엔티티 테스트 하는 방법에 대해 이게 맞는지는 잘 모르겠으나 내가 하고 있는 방식을 공유하고 정리하기 위함 1. 테스트 프레임워크 및 개발 환경 IntelliJ + spring boot 3.x 버전을 사용하면서 같이 들어있는 junit5를 사용 2. 엔티티의 구조 @Entity @Getter public class Bean { @Id @Column(name = "bean_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Long price; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.A..
0. 이 글의 목적 https://github.com/0113bernoyoun/easy-discord-webhook-api GitHub - 0113bernoyoun/easy-discord-webhook-api Contribute to 0113bernoyoun/easy-discord-webhook-api development by creating an account on GitHub. github.com 이 프로젝트를 배포하면서 했던 일들 정리하기 위함이 목적 1. 구조 Slack은 라이브러리를 제공해 줘서 참 좋은데 discord는 이게 없다. 그래서 만들면 재미있겠다 싶어서 무작정 만들기 시작했다. 다행히 어떤 parameter가 어떤 역할을 하는지에 대해서는 잘 나와있다. https://birdie0..
0. 이 글의 목적 기존 정수원 님의 강의는 SpringBoot 2.x, Spring-batch 4.x 버전을 사용 중이었으나 최신은 SpringBoot 3.x, Spring-batch 5.x 버전이기에 나는 최신으로 하면서 동작하지 않는 코드와 최신 방법으로 코드를 변형하기 위함 1. Spring Batch의 전략 하나의 Job이 존재하며 이 Job은 여러 Step으로 구성된다. 각 Step에서의 실제 수행은 tasklet에서 이루어진다. 2. 그러면 무엇이 바뀌었는가 우선 StepBuilderFactory와 JobBuilderFactory가 deprecated되었다. 이제 직접 JobBuilder와 StepBuilder를 구현해야 한다. //@EnableBatchProcessing @Configura..
0. 이 글을 작성하는 이유 slack webhook연동에 대한 글을 작성하다 discord에 대한 연동도 작성하면 재미있을 것 같아서 빠르게 메시지 한정으로 작성해 봅니다. 이 글을 읽기 전 이전 글을 읽고 오는 것을 추천합니다. 대부분의 구조를 동일하게 가져갑니다. https://developer-youn.tistory.com/149 spring + slack webhook 연동하기 0. 이 글을 작성하는 이유 서비스를 운영 중 문제가 발생했을 때 slack으로 알람을 주기 위해 webhook이 가장 구현이 편해서 공유하고자 함 1. 준비 과정 실은 아래 2개의 문서를 참고하면 잘 된다. 역 developer-youn.tistory.com 1. 웹훅 추가 슬랙과는 다르게 외부로 노출되지 않으므로 웹후..
0. 이 글에서 정리하고자 하는 내용 - 영속성 컨텍스트란 무엇인지 - EntityManager가 무엇인지 1. 개발 환경 준비 1-1. H2 설치 및 연동 http://h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp h2da..