본문 바로가기

전체 글15

[Network] TCP, UDP의 특징과 비교 TCP와 UDP는 OSI 7 계층들 중 TCP/IP의 전송 계층에서 사용되는 프로토콜이다. TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용되는 프로토콜이며, UDP는 TCP보다 빠르고 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지는 않는다. 때문에 신뢰성보다는 연속성이 중요한 실시간 스트리밍과 같은 서비스에 자주 사용된다. TCP의 특징 1. 연결형 서비스로 가상 회선 방식을 제공 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking 과정을 통해 연결을 해제한다. 2. 흐름 제어(Flow control) 수신 측이 송신 측보다 데이터 처리 속도가 느릴 경우 데이터를 손실할 위험이 존재 데이터 처리 속도를 조절하여 수신자의 버퍼 .. 2023. 6. 8.
[Network] OSI 7 계층과 TCP/IP 4 계층 OSI 7 Layer 네트워크 시스템은 소프트웨어 아키텍처 중 Layered Architecture를 따름. 즉 네트워크 시스템은 하나의 커다란 소프트웨어 OSI 7 Layer는 거대한 네트워크 소프트웨어 구조를 설명하는 것 Application(응용) 계층 : 최종 목적지로 응용 프로그램과 연관하여 서비스를 수행하는 계층 ex) HTTP, FTP, DNS Presentation(표현) 계층 : 데이터 압축, 변환이 이뤄지는 계층 ex) JPEG, MPEG Session(세션) 계층 : 데이터가 통신하기 위한 논리적 연결을 담당하는 계층 ex) API, Socket Transport(전송) 계층 : 종단 간의 사용자들에게 신뢰성 있는 데이터를 전달하는 계층 Port 번호를 사용하여 컴퓨터의 특정 프로세스.. 2023. 6. 6.
[Docker] MySQL에 LocalDateTime을 UTC가 아닌 KST로 적용하기 - Spring 프로젝트에 created, modified time을 LocalDateTime 형식으로 관리했다. - Mysql에 insert 되면 created에 배포된 서버의 현재시간이 저장되는데 UTC로 적용이돼서 KST로 바꿔야 했다. sol 1. EC2 서버시간 한국시간으로 설정하는 방법 rm /etc/localtime ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime - EC2 서버시간을 한국시간으로 설정해도 Spring은 LocalTime을 UTC로 인식했다. sol 2. dockerfile로 도커 컨테이너를 실행할 때 도커 timezone을 변경하는 방법 dockerfile에 아래 코드 추가 RUN ln -snf /usr/share/zoneinfo.. 2023. 5. 24.
[Springboot] nGrinder 부하테스트 성능 높이기 (feat. passwordEncoder) - nGrinder 부하테스트 중 간단한 login API를 테스트하는데 TPS가 정말 정말 낮게 나왔다. Vuser를 올려도 TPS는 30에서 멈추고 MTT만 증가하는 상황이었다. (200명 이상에선 테스트 중지까지..) 부하테스트에 대해 정확히 알지는 못하지만 TPS 30은 뭔가 문제가 있어 보였다. - nginx 웹서버 설정도 바꿔보고, Springboot WAS도 이것저것 손대보고, 페치 조인으로 쿼리 최적화도 적용했지만 결과는 다르지 않았다. - 구글링 (https://yunb2.tistory.com/8)을 통해 passwordEncoder에 문제가 있을 수 있다는 걸 접했다. - 확인해보니 passwordEncoder에 passwordFactories가 적용되어있었고 이를 BCryptPassw.. 2023. 5. 15.