일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JMeter
- JWT
- Spring Security
- N+1 문제
- 스프링부트
- 동시성 문제
- 트러블 슈팅
- EC2
- Spring
- RDS
- TCP/IP
- 형상관리
- 코딩테스트
- AWS
- 알고리즘
- 네트워크
- 3-way-handshake
- docker
- 프로토콜
- 4-way-handshake
- OOP
- OSI 7계층
- 로그인
- redis
- 객체지향
- 인메모리
- 성능 개선
- Java
- 백준
- Today
- Total
목록전체 글 (13)
열공스토리
이번 포스팅은 최근 게시판 프로젝트를 진행하면서 발생한 좋아요 기능 동시성 문제 해결과정에 대한 회고입니다. 트러블 슈팅 과정을 보기에 앞서, 동시성 문제란 무엇인지 간단하게 짚고 넘어가겠습니다. 동시성 문제란? 동시성 문제란 여러 스레드가 한 공유 자원에 대해 동시에 읽기(Read)와 쓰기(Write) 작업을 처리할 때 발생하는 문제입니다. 예를 들어, Thread A와 Thread B가 우리가 흔히 알고있는 게시글의 좋아요 기능을 동시에 서버에 요청한다고 생각해 봅시다. 이런 상황에서 우리는 게시글의 좋아요 수가 기존의 좋아요 수에서 2가 증가된 값을 기대할 것입니다. 하지만 동시성 문제가 발생하면 예상과는 달리 좋아요 수가 1밖에 증가하지 않게 됩니다. 이러한 현상이 발생하는 이유를 다음 그림에서 ..
이번 포스팅은 최근 게시판 프로젝트를 진행하면서 발생한 N+1 문제 해결과정에 대한 회고입니다. 트러블 슈팅 과정을 보기에 앞서, N+1 문제란 무엇인지 간단하게 짚고 넘어가겠습니다. N+1 문제란? N+1 문제란 1:N 또는 N:1로 연관관계가 설정되어 있는 엔티티를 한 번 조회 시, 조회 쿼리 1개가 수행되는 것이 아닌 연관 되어있는 N개의 엔티티를 조회하기 위해 N만큼의 추가 조회 쿼리가 수행되는 일 때문에 발생하는 문제를 말합니다. 이게 왜 문제가 되냐 하면 예를 들어, 한 엔티티의 연관관계 엔티티가 100개라고 가정한다면 해당 엔티티를 한 번 조회한다고 했을 때, 추가적으로 조회 쿼리 100개가 더 수행되어 조회 쿼리만 총 101번 수행되어 불필요한 조회 쿼리가 수행되는 현상이 발생합니다. 그런..
이번 포스팅에서는 최근 Security+JWT를 이용한 로그인 인증을 구현한 프로젝트에서 로그아웃 기능과 refresh token 기능을 도입할 때 사용했던 Redis에 대해 글을 적어보았습니다. Redis란? Redis는 인메모리 데이터 구조(In-memory Data Structure) 형태를 가지는 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템(DBMS)입니다. 데이터는 "Key-Value" 형식의 비정형 데이터로 관리가 되고 인메모리 특성에 의해 데이터가 휘발적인 특징을 갖게 되고 빠른 데이터 접근에 용이합니다. Redis는 Cache, Database, 메시지 브로커 등으로 사용됩니다. Redis를 선택한 이유 로그아웃 기능과 refresh token 기능에 Redis를 선택한 가장 큰 ..
최근 Spring Security와 JWT를 이용한 로그인 인증 방식에 대해 좀 더 깊이 공부 해 보면서 처음 JWT 인증 방식에 대해 공부할 때 광범위한 개념들과 복잡한 동작 흐름을 이해하기 힘들어 했던 저와 같은 처지에 있는 분들이 이해하는데 도움이 되었으면 하는 바램으로 포스팅하게 되었습니다. 들어가기에 앞서, 이번 포스팅에서는 토큰 발급과 인증을 하는 과정에서 등장하는 개념들과 동작 흐름의 이해를 중점으로 다룰 예정이므로 선수 지식(JWT 구성 등)은 생략하겠습니다. 개요 저는 처음 Security와 JWT를 이용한 로그인 인증 방식에 대해 공부 할 때 서버 내부에서 어떻게 실행이 이루어지는지가 머리에 잘 안들어 오더라구요. 새로운 객체나 클래스, 메소드를 자꾸만 접하다보니 머릿 속이 혼라스러워서..
이번 포스팅에서는 OSI 모델에 대해 정리해 보았습니다. OSI 모델이란? OSI 모델이란 국제표준화기구 ISO에서 개발한 네트워크 통신 과정을 7개의 계층으로 나눠 그 과정을 표준화한 모델입니다. 이것을 계층별로 나눈 이유는 통신 과정이 일어나는 과정을 단계별로 파악하기 위해서입니다. 만약, 네트워크 통신 과정 중에 문제가 발생한다면 문제 상황을 보고 어느 단계에서 문제가 발생하였는지 파악하여 그 단계의 장비나 소프트웨어적인 문제만 해결하면 됩니다. OSI 7 계층 OSI 모델은 다음과 같이 7개의 계층으로 구성되어 있습니다. 1 계층 - 물리 계층, Pysical Layer 1 계층, Pysical Layer는 디지털 신호를 아날로그 신호로, 아날로그 신호를 디지털 신호로 변환하는 모듈입니다. 먼저,..