{"id":21075116,"url":"https://github.com/adjh54ir/blog-codes","last_synced_at":"2025-05-16T06:31:40.950Z","repository":{"id":239028075,"uuid":"798297170","full_name":"adjh54ir/blog-codes","owner":"adjh54ir","description":"Contributor9 티스토리 블로그 내에서 활용한 내용들을 담은 레포지토리입니다.","archived":false,"fork":false,"pushed_at":"2024-10-30T05:01:32.000Z","size":1766,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-30T08:30:01.688Z","etag":null,"topics":["chatgpt-api","fcm-messaging","java","jpa-hibernate","junit5","mockito","mockmvc","querydsl-jpa","rabbitmq-consumer","rabbitmq-producer","security","spring-boot","spring-boot-quartz"],"latest_commit_sha":null,"homepage":"https://adjh54.tistory.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adjh54ir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-09T13:51:44.000Z","updated_at":"2024-10-26T15:19:59.000Z","dependencies_parsed_at":"2024-05-21T08:52:12.182Z","dependency_job_id":"8af35d0f-d739-45d7-a1ef-d1b917353c65","html_url":"https://github.com/adjh54ir/blog-codes","commit_stats":null,"previous_names":["adjh54ir/blog-codes"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adjh54ir%2Fblog-codes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adjh54ir%2Fblog-codes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adjh54ir%2Fblog-codes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adjh54ir%2Fblog-codes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adjh54ir","download_url":"https://codeload.github.com/adjh54ir/blog-codes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225411907,"owners_count":17470315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt-api","fcm-messaging","java","jpa-hibernate","junit5","mockito","mockmvc","querydsl-jpa","rabbitmq-consumer","rabbitmq-producer","security","spring-boot","spring-boot-quartz"],"created_at":"2024-11-19T19:19:45.879Z","updated_at":"2025-05-16T06:31:40.943Z","avatar_url":"https://github.com/adjh54ir.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blog-codes\n\n    ⭕️ 티스토리 블로그에 게시한 내용들을 담은 Repository입니다.\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n# Repository 설명\n\n    ⭕️ 하위 디렉토리내의 레포지토리들에 대해 설명합니다.\n    ⭕️ 해당 페이지 마다 각각 레포지토리 설명들이 포함되어 있습니다.\n\n\u003cbr/\u003e\n\n## 1. 요약\n\n| Repository 명                 | 설명                                                                                                                                 |\n| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |\n| gitignore                     | 자주 사용되는 gitignore 파일들을 관리하는 디렉토리입니다.                                                                            |\n| java-algorithm                | Java 기반의 알고리즘 별 문제들을 관리하는 프로젝트입니다.                                                                            |\n| spring-boot-common            | 공통적으로 사용되는 정규식, 유틸등을 관리하는 프로젝트입니다.                                                                        |\n| spring-boot-short             | 간단한 문제 처리를 위한 모듈을 구성한 프로젝트입니다.                                                                                |\n| spring-boot-3tier-form        | 3-Tier 형태의 아키텍처 기반으로 구성한 form 프로젝트입니다.                                                                          |\n| spring-boot-jpa               | spring-boot-jpa 라이브러리를 활용하여 JpaRepository, JPQL, Criteria API를 구성하고 사용하는 API 서버를 구성한 프로젝트입니다.        |\n| spring-boot-querydsl          | spring-boot-jpa와 querydsl-jap 라이브러리를 활용한 JPA, QueryDSL을 구성하고 사용하는 API 서버를 구성한 프로젝트입니다.               |\n| spring-boot-chatgpt           | spring-boot-web 라이브러리를 활용하여 외부 OpenAI의 ChatGPT와의 통신을 통해 프롬프트를 수행하는 API 서버를 구성한 프로젝트입니다.    |\n| spring-boot-fcm               | spring-boot-web과 firebase-admin 라이브러리를 활용한 디바이스를 대상으로 FCM 메시지를 전송하는 API 서버를 구성한 프로젝트입니다.     |\n| spring-boot-scheduler         | spring-boot-quartz와 firebase-admin 라이브러리를 활용한 일정 시간마다 FCM 메시지를 전송하는 ‘스케줄러 서버’를 구성한 프로젝트입니다. |\n| spring-boot-test              | spring-boot-test와 mockito-core 라이브러리를 활용한 JUnit, MockMVC, Mokito를 활용하여 구성한 프로젝트입니다.                         |\n| spring-boot-rabbitmq          | spring-boot-amqp 라이브러리를 활용한 RabbitMQ의 메시지 큐를 생성하는 ‘이벤트 생성자’를 구성한 프로젝트입니다.                        |\n| spring-boot-rabbitmq-consumer | spring-boot-amqp 라이브러리를 활용한 RabbitMQ의 메시지 큐를 수신하는 ‘이벤트 소비자’를 구성한 프로젝트입니다.                        |\n| spring-boot-async             | spring-boot-web과 spring-boot-quartz 라이브러리를 활용하여 ‘일반 비동기’ 및 ‘배치 비동기’를 구현한 API 서버 프로젝트입니다.          |\n| spring-boot-slack             | spring-boot-web와 slack-api-client 라이브러리를 활용하여 ‘Slack WebHook’ 전송 예시를 구현한 API 서버 프로젝트입니다.                 |\n| spring-boot-websocket         | spring-boot-websocket 라이브러리를 활용하여 STOMP 프로토콜을 이용한 ‘웹 소켓 서버’ 프로젝트입니다.                                   |\n| spring-boot-cors              | spring-boot-web 라이브러리를 활용한 ‘CORS 관리’를 구성한 API 서버 프로젝트입니다.                                                    |\n| spring-boot2-security         | spring-boot-security 2.x + jjwt 라이브러리를 활용하여 ‘jwt 기반 로그인 수행 및 리소스 접근’을 구현한 API 서버 프로젝트입니다.        |\n| spring-boot3-security         | spring-boot-security 3.x + jjwt 라이브러리를 활용하여 ‘jwt 기반 로그인 수행 및 리소스 접근’을 구현한 API 서버 프로젝트입니다.        |\n| spring-boot-mail              | spring-boot-mail 라이브러리를 활용하여 SMPT를 활용하여 메일을 전송하는 API 서버 프로젝트입니다.                                      |\n| spring-boot-swagger           | spring-boot 환경에서 Swagger 라이브러리를 활용하여 RESTful 웹 서비스를 설계, 구축, 문서화를 관리하는 API 서버 프로젝트입니다.        |\n|                               |                                                                                                                                      |\n| node-wss-server               | Node 기반의 PM2 + Redis + Socket.io 라이브러리를 이용한 ‘소켓 서버’를 구성한 프로젝트입니다.                                         |\n| react-chatting                | Node + React 기반의 Socket.io-client, Stomp 라이브러리를 이용한 ‘채팅 시스템’을 구성한 프로젝트입니다.                               |\n| react-login                   | Node + React 기반의 Spring Boot Security + JWT 기반의 ‘로그인’ 클라이언트를 구성한 프로젝트입니다.                                   |\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## 2. Java + Spring Boot 기반 상세 설명\n\n### 목차\n\n[1. java-algorithm](#1-java-algorithm)  \n[2. spring-boot-common](#2-spring-boot-common)  \n[3. spring-boot-3tier-form](#3-spring-boot-3tier-form)  \n[4. spring-boot-jpa](#4-spring-boot-jpa)  \n[5. spring-boot-querydsl](#5-spring-boot-querydsl)  \n[6. spring-boot-chatgpt](#6-spring-boot-chatgpt)  \n[7. spring-boot-fcm](#7-spring-boot-fcm)  \n[8. spring-boot-scheduler](#8-spring-boot-scheduler)  \n[9. spring-boot-test](#9-spring-boot-test)  \n[10. spring-boot-rabbitmq](#10-spring-boot-rabbitmq)  \n[11. spring-boot-rabbitmq-consumer](#11-spring-boot-rabbitmq-consumer)  \n[12. spring-boot-async](#12-spring-boot-async)  \n[13. spring-boot-slack](#13-spring-boot-slack)  \n[14. spring-boot-websocket](#14-spring-boot-websocket)  \n[15. spring-boot2-security](#15-spring-boot2-security)  \n[16. spring-boot3-security](#16-spring-boot3-security)  \n[17. spring-boot-cors](#17-spring-boot-cors)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 1. java-algorithm\n\n    ⭕️ 알고리즘 \u0026 자료구조를 응용한 문제에 대한 풀이들을 가지고 있습니다.\n\n1. 알고리즘\n\n- 탐색 알고리즘 \u003e 해시\n- 탐색 알고리즘 \u003e 동적계획법\n- 탐색 알고리즘 \u003e 이진탐색\n- 탐색 알고리즘 \u003e 그리디 알고리즘\n- 탐색 알고리즘 \u003e 투포인터 알고리즘\n- 탐색 알고리즘 \u003e 완전 탐색: 비트 마스크, 브루트포스\n\n\u003cbr/\u003e\n\n2. 자료구조\n\n- 스택\n- 큐\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Java 알고리즘 \u0026 자료구조](https://adjh54.tistory.com/category/Java/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%20%26%20%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 2. spring-boot-common\n\n    ⭕️ Java 언어에 대한 공통 기능들을 가지고 있는 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- 정규식\n- 형 변환 유틸\n- 암호화/복호화 유틸\n- Network 유틸\n- 숫자 유틸\n- 문자열 유틸\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [정규표현식(RegExp) 이해하기 : 패턴, 문자 클래스, 자주 사용 패턴](https://adjh54.tistory.com/104)\n- [IP 주소 반환받는 방법 : 클라이언트 IP, 외부 IP, 내부 IP, 호스트 IP](https://adjh54.tistory.com/443)\n- [SecureRandom을 이용한 랜덤 문자열 생성 방법: 숫자, 문자, 특수문자 조합, 임시 비밀번호](https://adjh54.tistory.com/426)\n- [Spring Boot 환경에서 Jackson 모듈 활용하기 : JSON 파싱, 직렬화, 역 직렬화, JSON 파일 읽어오기/생성](https://adjh54.tistory.com/375)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 3. spring-boot-3tier-form\n\n    ⭕️ Spring Boot \u0026 Java 기반의 N-Tier 아키텍처를 기반으로 구성한 3-tier 아키텍처 format입니다.\n    ⭕️ 해당 환경은 API Server 용도로 구성이 되어 있습니다.\n\n🔗 Repository 주요 키워드\n\n- 응용 계층(Application Layer) : Controller\n- 비즈니스 계층(Business Layer) : Service\n- 데이터 계층(Data Layer : Data Access, Database) : DAO, Database\n\n\u003cbr/\u003e\n\n🔗 참고 URL  \n[1. 계층화된 아키텍처(Layered Architecture) : N Tier Architecture](https://adjh54.tistory.com/105)  \n[2. 개발 환경에 따라 각각 환경 파일 구성 방법: application.properties](https://adjh54.tistory.com/200)  \n[3. 소프트웨어 아키텍처 10가지 패턴 -1 : 정의, 사용 사례](https://adjh54.tistory.com/453)  \n[4. 소프트웨어 아키텍처 10가지 패턴 -2 : 정의, 사용 사례](https://adjh54.tistory.com/454)  \n[6. 생성자 패턴 이해하기 : 점층적 생성자, 자바 빈즈, Builder 패턴)](https://adjh54.tistory.com/78)  \n[7. 메서드 체이닝(Method Chaining) , 플루언트 인터페이스(Fluent Interface), 빌더 패턴(Builder Pattern)](https://adjh54.tistory.com/440)  \n[8. RESTful API 설계 방법 -1 : 이해하기](https://adjh54.tistory.com/150)  \n[9. RESTful API 설계 방법 -2 : 구성하기](https://adjh54.tistory.com/151)  \n[10. Spring Web Annotation 이해하고 사용하기 -1 : 환경 구성](https://adjh54.tistory.com/311)  \n[11. Spring Web Annotation 이해하고 사용하기 -2 : 요청 및 응답](https://adjh54.tistory.com/312)  \n[12. Spring Web Annotation 이해하고 사용하기 -3 : 예외 처리 및 주입](https://adjh54.tistory.com/313)  \n[13. MacOS 환경에서 Java JDK 설정 및 변경하기 : homebrew, 다운로드 파일](https://adjh54.tistory.com/216)  \n[14. MacOS에서 PostgreSQL 로컬 데이터베이스 구성 방법](https://adjh54.tistory.com/80)  \n[15. Global Exception 이해하고 구성하기 : Controller Exception](https://adjh54.tistory.com/79)  \n[16. Business Exception 이해하고 구성하기 : Service Exception](https://adjh54.tistory.com/89)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 4. spring-boot-jpa\n\n    ⭕️ Spring Boot \u0026 Java 기반의 Spring Data JPA 라이브러리를 활용하여 구성된 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- JpaRepository\n- JPQL\n- Criteria API\n- Name Method\n- @Query\n- NamedQuery\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Data JPA 이해하기 -1: ORM, JPA, Hibernate, QueryDSL 이론](https://adjh54.tistory.com/421)\n- [Spring Boot Data JPA 이해하기 -2 : 초기 환경 구성 + JpaRepository 활용 방법](https://adjh54.tistory.com/422)\n- [Spring Boot Data JPA 이해하기 -3 : JpaRepository 활용 방법 - Query Method, @Query, NamedQuery](https://adjh54.tistory.com/481)\n- [Spring Boot Data JPA + JPQL 이해하기 -1 : 정의 및 기본동작](https://adjh54.tistory.com/479)\n- [Spring Boot Data JPA + Criteria API 이해하기 -1 : 정의 및 기본동작](https://adjh54.tistory.com/483)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 5. spring-boot-querydsl\n\n    ⭕️ Spring Boot \u0026 Java 기반의 Spring Data JPA 라이브러리와 QueryDSL을 활용하여 구성된 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- QueryDSL 개발 환경 구축\n- QueryDSL JOIN\n- QueryDSL SubQuery\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Data JPA + QueryDSL 이해하기 -1 : 정의 및 구성요소](https://adjh54.tistory.com/484)\n- [Spring Boot Data JPA + QueryDSL 이해하기 -2 : 초기 환경설정 및 사용예시](https://adjh54.tistory.com/485)\n- [Spring Boot Data JPA + QueryDSL 이해하기 -3: Join 활용(내부, 외부, 패치, 세타)](https://adjh54.tistory.com/488)\n- [Spring Boot Data JPA + QueryDSL 이해하기 -4 : 서브쿼리](https://adjh54.tistory.com/489)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 6. spring-boot-chatgpt\n\n    ⭕️ Spring Boot \u0026 Java 기반의 OpenAI의 ChatGPT와의 통신을 통해 프롬프트를 수행하는 기능으로 구성된 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- Open AI : ChatGPT 3.5 활용\n- RESTTemplate\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot 환경에서 ChatGPT API 활용하기 -1 : 정의, 환경구성, 간단한 활용방법](https://adjh54.tistory.com/372)\n- [Spring Boot 환경에서 ChatGPT API 활용하기 -2 : 생태계, 레거시, 새로운 모델](https://adjh54.tistory.com/397)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 7. spring-boot-fcm\n\n    ⭕️ Spring Boot \u0026 Java 언어를 이용한 환경에서 디바이스를 대상으로 FCM 메시지를 전송하는 예시를 관리하는 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- Google Firebase Admin\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Firebase Cloud Message(FCM) 푸시 메시지 API 구축 -1 : firebase-admin](https://adjh54.tistory.com/432)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 8. spring-boot-scheduler\n\n    ⭕️ Spring Boot \u0026 Java 언어와 Spring Boot Queartz 라이브러리르 활용하여 스케줄러 서버로 이용되는 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- Spring Boot Queartz\n- Google Firebase Admin\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Firebase Cloud Message(FCM) 푸시 메시지 API 구축 -1 : firebase-admin](https://adjh54.tistory.com/432)\n- [Spring Boot Firebase Cloud Message(FCM) 구축 -2 : 예약 발송](https://adjh54.tistory.com/438)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 9. spring-boot-test\n\n    ⭕️ Spring Boot \u0026 Java 언어를 이용하며 JUnit5, MockMVC, Mokito를 활용한 예시를 관리하는 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- Spring Boot Test(Junit5)\n- mockito-core\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n1. [Spring Boot JUnit5 이해하기 -1 : 이론 및 구조](https://adjh54.tistory.com/341)\n2. [Spring Boot JUnit5 이해하기 -2 : 환경구성 및 활용 예제](https://adjh54.tistory.com/342)\n3. [Spring Boot Mockito 이해하기 : 테스트 흐름 및 사용예시](https://adjh54.tistory.com/346)\n4. [Spring Boot MockMvc 이해하기 : 테스트 흐름 및 사용예제](https://adjh54.tistory.com/347)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 10. spring-boot-rabbitmq\n\n    ⭕️ Spring Boot 기반의 Java 언어를 이용하여 RabbitMQ의 메시지 큐를 구성하는 Repository입니다. : 이벤트 생성자\n\n🔗 Repository 주요 키워드\n\n- Event Proceducers\n- spring-boot-starter-amqp\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot AMQP RabbitMQ 이해하기 -1 : 구조 및 종류](https://adjh54.tistory.com/284)\n- [Spring Boot AMQP RabbitMQ 이해하기 -2 : 로컬 환경 구성](https://adjh54.tistory.com/285)\n- [Spring Boot AMQP RabbitMQ 이해하기 -3 : Java 구축 및 간단 예제](https://adjh54.tistory.com/292)\n- [Spring Boot AMQP RabbitMQ 이해하기 -4 : RabbitMQ Exchange 유형 별 이해 및 사용 예시](https://adjh54.tistory.com/497)\n- [Spring Boot AMQL RabbitMQ 이해하기 -5 : TTL 및 데드 레터링 사용예시](https://adjh54.tistory.com/501)\n- [Dockerfile을 이용한 RabbitMQ 환경 구성 및 실행방법](https://adjh54.tistory.com/496)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 11. spring-boot-rabbitmq-consumer\n\n    ⭕️ Spring Boot 기반의 Java 언어를 이용하여 RabbitMQ의 메시지 큐를 수신하는 이벤트 소비자를 구성한 Repository입니다 : 이벤트 소비자\n\n🔗 Repository 주요 키워드\n\n- Event Consumers\n- spring-boot-starter-amqp\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot AMQP RabbitMQ 이해하기 -1 : 구조 및 종류](https://adjh54.tistory.com/284)\n- [Spring Boot AMQP RabbitMQ 이해하기 -2 : 로컬 환경 구성](https://adjh54.tistory.com/285)\n- [Spring Boot AMQP RabbitMQ 이해하기 -3 : Java 구축 및 간단 예제](https://adjh54.tistory.com/292)\n- [Spring Boot AMQP RabbitMQ 이해하기 -4 : RabbitMQ Exchange 유형 별 이해 및 사용 예시](https://adjh54.tistory.com/497)\n- [Spring Boot AMQL RabbitMQ 이해하기 -5 : TTL 및 데드 레터링 사용예시](https://adjh54.tistory.com/501)\n- [Dockerfile을 이용한 RabbitMQ 환경 구성 및 실행방법](https://adjh54.tistory.com/496)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 12. spring-boot-async\n\n    ⭕️ Spring Boot 기반의 Java 언어를 이용하여 비동기 처리를 위한 방법에 대한 예시들을 구성한 Repository입니다.\n\n🔗 Repository 주요 키워드\n\n- @Async, @AsyncConfig, Thread Pool, 비동기 반환 유형, Executor\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Async 비동기 처리 이해하기 -1 : 주요 어노테이션 및 비동기 반환 유형](https://adjh54.tistory.com/544)\n- [Spring Boot Async 비동기 처리 이해하기 -2 : Executor](https://adjh54.tistory.com/547)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 13. spring-boot-slack\n\n    ⭕️ spring-boot-web와 slack-api-client 라이브러리를 활용하여 ‘Slack WebHook’ 전송 예시를 구현한 API 서버 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- slack, slack webhook, 모니터링\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot 환경에서 Slack Incoming Webhook 이해하고 구성하기 -1 : 초기 구성 및 간단 메시지 전송](https://adjh54.tistory.com/568)\n- [Spring Boot 환경에서 Slack Incoming Webhook 이해하고 구성하기 -2 : 다양한 메시지 전송 방법](https://adjh54.tistory.com/569)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 14. spring-boot-websocket\n\n    ⭕️ spring-boot-websocket 라이브러리를 활용하여 STOMP 프로토콜을 이용한 ‘웹 소켓 서버’ 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- STMOP, websocket server\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot WebSocket + STOMP 이해하고 구성하기 -1: 초기 구성 및 간단 소켓 연결](https://adjh54.tistory.com/573)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 15. spring-boot2-security\n\n    ⭕️ Spring Boot 2.x 환경에서 spring-boot-security 2.x + jjwt 라이브러리를 활용하여 ‘jwt 기반 로그인 수행 및 리소스 접근’을 구현한 API 서버 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- spring boot security, JWT, Access Token, Refresh Token\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Security 이해하기 -1 : 2.7.x 버전 구조 및 파일 이해](https://adjh54.tistory.com/91)\n- [Spring Boot Security 이해하기 -2 : Spring Boot 2.x 버전 환경 구성하기](https://adjh54.tistory.com/92)\n- [Spring Boot Security 이해하기 -3: JWT(JSON Web Token) 이해하기](https://adjh54.tistory.com/93)\n- [Spring Boot Security 이해하기 -4: JWT 환경 설정 및 구성 하기](https://adjh54.tistory.com/94)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 16. spring-boot3-security\n\n    ⭕️ Spring Boot 3.x 환경에서 spring-boot-security 3.x + jjwt 라이브러리를 활용하여 ‘jwt 기반 로그인 수행 및 리소스 접근’을 구현한 API 서버 프로젝트입니다.\n\n\u003cbr/\u003e\n\n🔗 Repository 주요 키워드\n\n- spring boot security, JWT, Access Token, Refresh Token\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Spring Boot Security 3.x + JWT 이해하기 -1 : 구조 및 Client / Server 처리과정](https://adjh54.tistory.com/576)\n- [Spring Boot Security 3.x + JWT 이해하기 -2 : 환경설정 및 구성](https://adjh54.tistory.com/577)\n- [Spring Boot Security 3.x + JWT 이해하기 -3 : Refresh Token 활용한 자동 갱신 방법](https://adjh54.tistory.com/583)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 17. spring-boot-cors\n\n    ⭕️ spring-boot-web 라이브러리를 활용한 ‘CORS 관리’를 구성한 API 서버 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- spring boot web, cors\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [교차 출처 리소스 공유 : CORS(Cross Origin Resource Sharing) 이해하기](https://adjh54.tistory.com/586)\n- [Spring Boot 환경에서 CORS(Cross Origin Resource Sharing) 이해하고 활용하기 -1](https://adjh54.tistory.com/587)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## 3. 기타 상세 설명\n\n### 0. 목차\n\n[1. node-wss-server](#1-node-wss-server)  \n[2. react-chatting](#2-react-chatting)  \n[3. react-login](#3-react-login)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 1. node-wss-server\n\n    ⭕️ Node 기반의 PM2 + Redis + Socket.io 라이브러리를 이용한 ‘소켓 서버’를 구성한 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- Node, PM2, Redis, Socket.io, Socket Server\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [Socket.io 기반 소켓 서버 구축 방법 -3: PM2 클러스터링 + Redis 기반 분산 처리](https://adjh54.tistory.com/567)\n- [Socket.io 기반 소켓 서버 구축 방법 -1 : 구성 요소 및 흐름 + React 기반 채팅 화면 구성](https://adjh54.tistory.com/548)\n- [Socket.io 기반 소켓 서버 구축 방법 -2 : Room, Namespace 별 소켓 통신 방법](https://adjh54.tistory.com/549)\n- [PM2(Process Manager 2) 이해하고 주요 특징 알아보기](https://adjh54.tistory.com/551)\n\n### 2. react-chatting\n\n    ⭕️ Node + React 기반의 Socket.io-client, Stomp 라이브러리를 이용한 ‘채팅 시스템’을 구성한 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- Node, Socket.io-client, STOMP\n\n\u003cbr/\u003e\n\n🔗 참고 URL\n\n- [STOMP 기반 소켓 서버 활용하기 : @stomp/stompjs, sockjs-client](https://adjh54.tistory.com/574)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n### 3. react-login\n\n    ⭕️ Node + React 기반의 Spring Boot Security + JWT 기반의 ‘로그인’ 클라이언트를 구성한 프로젝트입니다.\n\n🔗 Repository 주요 키워드\n\n- Node, React, Spring Boot Security + JWT\n\n🔗 참고 URL\n\n- [Spring Boot Security 3.x + JWT 이해하기 -1 : 구조 및 Client / Server 처리과정](https://adjh54.tistory.com/576)\n- [Spring Boot Security 3.x + JWT 이해하기 -2 : 환경설정 및 구성](https://adjh54.tistory.com/577)\n- [Spring Boot Security 3.x + JWT 이해하기 -3 : Refresh Token 활용한 자동 갱신 방법](https://adjh54.tistory.com/583)\n- [Axios Interceptor 동작 방법 이해하고 활용하기: JWT, 특정 URL 제외](https://adjh54.tistory.com/582)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadjh54ir%2Fblog-codes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadjh54ir%2Fblog-codes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadjh54ir%2Fblog-codes/lists"}