본문 바로가기

전체 글155

[Java] 유데미(Udemy) Java 멀티스레딩, 병행성 및 성능 최적화(feat. 유데미 X 글또) 강의 링크: https://www.udemy.com/course/java-multi-threading/?couponCode=GENAISALE24 0. 서론 애플리케이션 서비스에서 멀티스레드를 사용하곤 하는데, 멀티스레드를 이용하면서 사용방법은 익혔지만, 좀 더 세밀하게 분석해봐야겠다 생각하였고 이를 위해 글또를 통해 유데미 강의를 신청하였습니다. 1. 강의 내용 정리 컨텍스트 스위치 하나의 스레드 실행을 멈추고 다른 스레드를 스케줄링한 다음 다시 실행하는 것이 컨텍스트 스위치입니다. 스레드 스케줄링 정적 우선순위 + 보너스 정적 우선순위는 개발자가 미리 설정 보너스는 운영 체제가 각각의 에포크마다 조절 멀티 스레드 하나의 프로세스가 여러 개의 스레드를 사용하도록 프로그램을 작성하는 방법 스레드 스레드 그.. 2024. 3. 27.
[Git] 유데미(Udemy) Git & Github 실무 활용 수강후기 / Git 총정리(feat. 유데미 X 글또) 강의 링크: https://www.udemy.com/home/my-courses/learning/ 0. Git Git은 정말 많이 사용합니다. 그러나 가끔씩 git의 원리라던지, 급하게 필요할 때 확신이 서지 않는 경우가 종종 있었습니다. 이 강의를 통해 "이것 아는건데?" 하고 넘어갈 수도 있겠지만, "아, 이건 내가 놓치고 있었구나" 하고 스스로를 점검할 수 있는 계기가 될 것 같아서 강의를 신청해보았습니다. 1. Git의 기초 Git은 가장 유명한 Version Control 시스템입니다. Version Control이란? 버전관리는 파일의 변화를 시간에 따라 추적하고 관리하는데 도움을 주는 소프트웨어 대부분의 버전관리시스템은 이전 버전의 파일을 다시 볼 수 있게 해주고 버전들 간의 또는 파일들 간.. 2024. 3. 3.
[Spring] Spring 캐시 사용하기 0. 서론 각 비즈니스 로직에서 콘텐츠를 더 빠르게 제공하기 위해 캐싱을 이용하게 되는데요. 이번 글에서는 Spring 캐시 관련 기능을 살펴보고 스프링이 캐시를 AOP로 추상화하여 편리하게 개발할 수 있도록 지원하는지 살펴보겠습니다. 1. Spring 캐시와 Web 캐시 우선 캐싱에 대해 간단히 살펴보겠습니다. 캐싱(Caching) 캐싱은 데이터를 빠르게 읽고 처리하기 위해 속도가 빠른 메모리를 활용하여 임시로 데이터를 저장하는 기술입니다. 계산된 값을 임시로 저장해 동일한 계산이나 요청이 필요할 때 다시 계산하지 않고 빠르게 결과값을 사용하기 위해 사용됩니다. 캐시(Cache): 캐싱 기술을 사용할 때 사용되는 임시저장소 입니다. 저희가 이번 글에서 살펴볼 캐싱은 Spring 캐싱입니다. Spring.. 2024. 2. 18.
[Spring] AWS SES 이메일 반송률 관리하기 0. 서론 저희 서비스에서는 이메일을 다양한 결제 완료, 배송, 공지 등의 이벤트 등 여러 이벤트가 일어났을 때 보내게 됩니다. 현실세계에선 우체국이 있는 것처럼 이메일 서비스에는 SES가 존재합니다. 이메일을 보내기 위해 많이 사용하는 SES에서는 현실세계의 발송 처럼 수신관리 개념도 필요합니다. SES에서는 반송률이라는 개념이 있는데 반송률이란 실제 우편으로 예를 들어보면 실제 우편을 발송했을 때 주소가 다르거나, 수신자가 잘못왔을 경우 우체국으로 반송 요청을 하게 되는데 실제 SES에서도 이와 같은 개념이 존재합니다. 지속적으로 유저가 늘어남에 따라 수치가 올라갔을 것이고, 해당 이벤트 처리를 하지 않을 경우 속도저하, 제일 최악의 케이스는 메일을 전송하는 이메일 도메인이 블락됩니다. AWS 권장 .. 2024. 2. 4.