일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 도커
- spring boot
- 자바
- 배포
- computer science
- 스프링 배치
- 스프링
- CI/CD
- 스프링 부트
- 스프링 시큐리티
- JPA
- mysql
- 영속성 컨텍스트
- spring cloud
- CS
- Spring Security
- 데이터베이스
- 가상화
- ORM
- spring batch
- Spring
- vm
- 백엔드
- web server
- 웹 서버
- HTTP
- Java
- Container
- virtualization
- 컨테이너
- Today
- Total
목록전체 글 (140)
개발 일기

https://github.com/TanJi-LL/Tanji-Backend해당 블로그는 위 프로젝트에서 내가 직접 구현한 Spring Boot 프로젝트에서 직접 사용한 JWT를 활용한 인가(Authorization)처리 과정을 정리해보고자 한다.지금부터 설명하고자하는 로직은 회원가입이나 로그인 과정이 아닌, 특정 API 요청을 보낸 사용자가 해당 리소스에 대한 권한이 있는지 확인하는 인가(Authorization) 과정을 처리하기 위한 로직에 대한 설명이다인가(Authorization) 처리 흐름도 및 설명우선 처음으로 JwtExceptionFilter로 들어간다. 1. JwtExceptionFilter해당 필터에서는 JWT 처리 중 발생하는 예외를 처리하며, 예외 발생 시 사용자에게 적절한 응답을 반환..
https://geminikims.medium.com/%EC%A7%80%EC%86%8D-%EC%84%B1%EC%9E%A5-%EA%B0%80%EB%8A%A5%ED%95%9C-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4%EA%B0%80%EB%8A%94-%EB%B0%A9%EB%B2%95-97844c5dab63 지속 성장 가능한 소프트웨어를 만들어가는 방법스프링은 국내에서 정말 많이 쓰이고 있습니다, 개인적으로 많은 회사를 다녀보며 주니어/시니어를 막론하고 많은 분들이 스프링에 함몰되어 개발을 하고 있다는 느낌을 받을 때가 많았고 이geminikims.medium.com위 블로그를 참고하였다.

사실 모놀로틱 단일 모듈 프로젝트에서 어떻게 모듈화를 진행할지 즉, 어떻게 하나의 모듈을 역할과 책임이 명확한 N개의 모듈로 나눌지에 대한 명확한 답을 찾기 위해 여러 래퍼런스를 찾아봤지만 사람들마다 다른 관점을 가져 하나로 모으기 힘들었고 그냥 여러 래퍼런스를 보면서 우아한 기술 블로그가 가장 납득이 갔고 이 글 작성자가 배달의 민족에서 프론트 / 주문 / 결제 시스템 등을 담당해왔고 코덕이란 개인 사이드 프로젝트도 진행 중 이신 개발자 분이기 때문에 신뢰할만하다고 판단했고 해당 게시글 및 발표 영상을 참고하여 정리하면서 다른 래퍼런스의 내용도 추가하면서 이 글을 작성해보겠다.우선 이 글에서 회원 시스템을 예시로 들었는데 아마 MSA라서 MSA의 여러 서비스 중 하나인 회원 시스템을 잡고 설명을 하신 ..

피우다 프로젝트라는 공모전의 본선에 붙게되어 실제 프로젝트에 적용시키기 전에 멀티 모듈을 왜 쓰는 것이 좋은지에 대해 알아보고자 작성하게됐다. 전에 개인적으로 멀티모듈 프로젝트를 구성해봤는데 그때 느낀점을 바탕으로 작성하고자 한다.느낀점을 가독성을 포기하고 줄글로 쭉 풀어 써보고자 한다.모듈(Module)이란?우선 모듈이 뭔지 짚고 넘어가보자. 바로 독립적으로 운영될 수 있는 의미를 가지는 구성요소 단위 왜 멀티 모듈(Multi-Module)을 도입하는지 장점 살펴보기?우선은 왜 사람들이 멀티 모듈 구조를 선택하려고 하는지 장점에 대해 고민해봤다.사실 처음에는 MSA(마이크로 서비스 아키텍처) 처럼 독립적인 배포가 가능한 것도 아니고 더 복잡해지기만 하는 것만 같고 왜 써야하는지 이해가 안갔다. 그래서 ..

채팅 기능을 구현한 것을 보면 WebSocket 그리고 STOMP와 함께 매번 등장하는 RabbitMQ와 Apache Kafka 같은 메세지 브로커에 대해서 정리해봤다.Message Broker Message Broker(메시지 브로커)는 Publisher(송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 중간 역할이며 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다.이 때 메시지가 적재되는 공간을 Message Queue(메세지 큐)라고 하며 메시지의 그룹을 Topic(토픽)이라고 한다.Publisher가 Topic에 맞게 메세지를 가져다 놓기만 하면 각각의 Subscriber는 각자 원하는 Topic의 메세지를 가져갈 수 있는 것이다.Producer와 Consumer가 서..

이전 게시글에서 WebSocket은 한계로 인해 STOMP의 필요성을 알게되었고 해당 프로토콜에 대한 추가적인 이해가 필요하다고 판단하게 되어 정리하게 됐다.STOMP(Simple/Stream Text Oriented Message Protocol)WebSocket과 같은 실시간 메시지 전송 프로토콜에서 사용하는 텍스트(문자) 기반의 메시징 프로토콜WebSocket은 기본적으로 단순히 데이터를 주고받는 통신 방식일 뿐, 그 안에 담기는 메시지의 형식에 대한 정의가 없기 때문에, 메시지를 주고받는 양측이 어떤 형식으로 통신할지를 정해야한다.➜ 이때 STOMP와 같은 서브 프로토콜을 사용하면 메시지 형식과 관련된 표준화된 규약으로 사용한다.주로 메시지 브로커와 클라이언트 간의 통신을 위한 프로토콜로 사용P..

이전 게시글에선 Socket과 Socket 통신에 대해 알아봤고 이번에는 웹소켓에 대해 정리해보겠다.웹소켓(WebSocket)초기의 인터넷 통신 방식인 HTTP를 통해 실시간 통신(Polling, Long Polling, SSE 등)을 구현하는 것에 한계점이 있어 이를 극복하기 위해 등장한 프로토콜이다.클라이언트와 서버 간의 실시간 네트워킹(Real-Time Networking) 및 전이중 통신(양방향 통신: Full-Duplex)을 지원하는 프로토콜로 지속적인 연결을 유지하며 클라이언트와 서버 간의 실시간 데이터 전송을 가능케 한다.HTTP 프로토콜을 사용하여 초기 연결을 설정HTML5에 등장 실시간 웹 애플리케이션을 위해 설계된 통신 프로토콜이며, TCP(Transmission Control Prot..

앞 게시글에서 Polling, Long Polling 그리고 SSE에 대해 정리해봤는데 채팅 기능을 구현하기 위한 웹 소켓에 대해 정리해보고자 한다.우선 소켓(Socket)에 대해 알아보자.소켓(Socket)소켓은 네트워크 상에서 데이터를 송수신하는 두 호스트의 프로세스를 연결하는 종착점➜ 한쪽 프로세스가 데이터를 소켓에 쓰면, 네트워크를 통해 반대쪽 소켓으로 전달된다.OSI 7계층 중 Application Layer에 속하는 프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 Transport Layer으로 데이터를 전달해야한다. ➜ 즉, 소켓은 전송 계층과 응용 프로그램 사이의 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결해준다.HTTP 통신도 소켓 통신이지만 반대로 소켓 통신을 HTTP 통..