실시간 웹 기능을 추가하는 데 있어 SignalR은 매우 유용한 라이브러리입니다. 이 글에서는 SignalR의 개요와 작동 방식, 그리고 이를 활용한 애플리케이션 예시를 자세히 살펴보겠습니다.SignalR?SignalR은 Microsoft에서 개발한 라이브러리로, .NET 애플리케이션에 실시간 웹 기능을 추가하는 데 필요한 도구입니다. 이 라이브러리는 클라이언트와 서버 간의 실시간 통신을 가능하게 하여, 사용자가 새 데이터를 요청할 때까지 기다리지 않고 서버가 클라이언트에 즉시 콘텐츠를 푸시할 수 있도록 합니다. 이러한 기능은 채팅 애플리케이션, 실시간 게임, 주식 거래 시스템 등 다양한 분야에서 활용됩니다. 실시간 웹 기능의 필요성현대의 웹 애플리케이션은 사용자 경험을 극대화하기 위해 실시간 데이터 처..
전체 글
IT, 인프라, Java, C# 개념정리 블로그입니다.가상화란?가상화는 서버, 스토리지, 네트워크 및 기타 물리적 시스템에 대한 가상 표현을 생성하는 데 사용할 수 있는 기술입니다.다시말하자면 이런 뜻입니다. 물리적 하드웨어 기능을 모방하여 하나의 물리적 머신에서 여러 가상 시스템을 동시에 실행하는 것 왜 가상화를 사용해야 하나요?일반적으로 OS를 사용하려면 각 OS를 각각의 물리서버에서 실행해야 합니다.즉, 아래의 그림처럼 한대의 PC에 하나의 OS를 설치하고 그것을 관리하는 물리서버가 또 필요한 것입니다.이렇게, 여러 운영체제를 실행하는 것은 비용이 많이 드는 작업이라, 서버 구입 비용 뿐만 아니라 구입한 서버의 운영 및 유지보수 비용도 증가하게 됩니다. 그래서 사용해야 하는 것이 가상화 입니다. 가상화를 이용하면 운영체제를 기반 하등웨어로부터 분리가..
도커란 무엇일까요? 도커는 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼입니다. ❓컨테이너 기술 컨테이너 기술이란 리눅스에서 기본적으로 기존 시스템에서 독자적인 시스템의 환경을 분리, 구축하는 기술입니다. ❓ 가상화 가상화란 하드웨어를 효율적으로 활용하기 위해서 사용중인 운영체제 위에 가상의 머신을 만드는 기술이고, 컨테이너란 컨테이너가 실행되고 있는 호스트 운영체제 즉, 실행되고 있는 운영체제의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술을 뜻합니다. 도커의 예시 예를들어 보자면 도커는 도시락이랑 비슷합니다. 우리가 도시락을 싸서 소풍을 가게 되었다고 가정해봅시다. 만약, 도시락을 먹을 시간이 되어서 도시락을 먹게 되었을 때 도시락을 열어서 문제될게 있을까요? 거의 없을 겁..
[이전글] https://yooseong12.tistory.com/47 SpringBoot+Redis 를 사용해서 조회수 중복방지 구현해보기 -1 최근에 개인 프로젝트를 진행하면서 조회수 증가 로직을 해당 게시글을 작성한 유저만 조회수 가 증가하지 않게 설정하였습니다. 하지만 위의 사진에 보이듯이 NullPointException 문제가 발생하였 yooseong12.tistory.com 이전의 글에서는 왜 Redis를 사용해서 중복방지를 해야하는지와 Redis 가 무엇인지 간단하게 설명드렸습니다. 이 포스팅에서는 실제로 Redis를 통해 중복방지를 구현해보려고합니다. 우선 Redis-server 가 설치 되어 있어야 합니다. Reids-server 설치 [Window] https://inpa.tistor..
기존에 잘 사용하던 EnableGlobalMethodSecurity 가 Spring Boot 3.x, Spring security 6.x 로 버전을 올리면서 Deprecated가 되었습니다... 이에 따라 값들을 수정해주어야 하는데, 아직 전부 파악하지는 않았고, 어떻게 해결해야하는지 까지는 파악했습니다. 우선, @EnabelGlobalMethodSecurity 는 @EnableMethodSecurity 를 쓰라고 해당 페이지에서 알려줬습니다. https://docs.spring.io/spring-security/site/docs/current/api/deprecated-list.html 또한, 지금까지 옵션으로 설정해주던 prePostEnabled의 값이 ture가 defalut 값이 되면서 설정을 안..
최근에 Jenkins를 통해 CI/CD를 구현했는데, 자꾸 Jenkins가 Git Repository의 모든 branch를 감지하는 문제가 있었습니다. 물론, 모든 branch를 사용해도 되지만 제가 원했던건 Main 브랜치에 변경이 일어나면 그 때만 서버에 반영하는 설정을 진행하고 싶어서 찾아보니 못찾았습니다. 하지만 제가 알아내서 공유드립니다. 우선 지금 사용중인 Jenkins Dashboard에 들어가면 설정 버튼이 존재합니다. 이 버튼을 클릭하고 - Build Configuration 에 가기 바로 전에 보시면 Add 항목이 있습니다. 저 위에 항목을 클릭하고 위로 스크롤하시면 아래 사진처럼 칸이 생성되는데 저 Include라는 input에 main을 입력하시고 save하시면 main 브랜치의 변..
AWS에 EB를 통해 jar 를 배포할 때 발생한 문제입니다. nginx 까지 설정이 잘 되었는데, 갑자기 Application이 돌기 전에 Fail fast is set and there was an error reading configuration from AWS Secrets Manager 해당 오류가 발생했습니다. 거두절미하고 말씀드리겠습니다. 우선 AWS의 CLI 설정을 하지 않아서 문제가 발생했습니다, aws configure따라서 해당 설정을 진행했는데도 문제가 계속 발생했습니다. 해결 처음 EB 배포를 진행 했을 때 사용했던 사용자의 권한이 없어서 문제가 발생했던 것이었습니다. 위에 보이는 SecretsManagerReadWrite 권한을 추가하고 나서야 문제를 해결했습니다.
이 글은 제가 SpringBoot Application 을 AWS의 EB 배포시 만났던 문제와 해결했던 방법입니다. 우선 IAM을 생성해 두어야합니다. IAM은 아래의 블로그를 참고 부탁드립니다. https://velog.io/@_gyullbb/Elastic-Beanstalk-%EB%B0%B0%ED%8F%AC 그 후 보안그룹을 미리 만들어 두어야합니다. (보안그룹 때문에 삽질을 엄청 했습니다....ㅠ) 저희는 Java 웹 서버를 배포할 예정이니 웹 서버 환경으로 시작하시면 됩니다. 해당 화면 위에 있는 환경정보는 알아서 기입하시면 되고 밑의 설정은 사용하시려는 Java version에 맞춰서 기입하시면 됩니다. 저는 Java17 환경에서 환경설정을 하고 있어서 Corretto 17 를 설정했습니다. 이 ..