본문 바로가기

개발8

[개발 탐구] Redis, 실제 개발에서 어떻게 활용할 수 있을까? Redis라는 이름은 많이들 들어봤을 것이다. 하지만, Redis의 특징은 아는데 이걸 어떻게 활용해야 할지 모르겠는 사람들이 꽤 많을 것이다. 그래서, 이번에는 내가 활용해보고 조사해본 실제 개발에서 Redis의 활용 방안에 대해서 다뤄보고자 한다. 일단, Redis 활용 방안을 알아보기전에, Redis의 특징에 대해 알아야한다.key -value 형식으로 저장되는 NoSQL Datebase이다인 메모리(In-Memory) 방식으로 저장되기 때문에, 디스크에 접근해야되는 RDB에 비해 굉장히 빠르다메모리에 저장되기 때문에 종료시 데이터가 사라진다. 그래서 이를 방지하기 위해 백업을 지원한다싱글 스레드로 작동한다. (엄밀히 말하면 살짝 아니긴 하지만)TTL(Time to live)를 제공한다. 그래서 일.. 2024. 5. 10.
[ETC] Nginx 환경변수 사용 방법 기본적으로 Nginx는 환경변수를 지원하지 않는다. 그럼에도 불구하고, 환경변수를 사용하고 싶으면 어떻게 Dockerfile을 구성해야 할까? upstream spring_gateway { server spring_gateway:8081;}server { listen 80; server_name ${SERVER_NAME}; access_log off; server_tokens off; client_max_body_size 1G; location /.well-known/acme-challenge/ { allow all; root /var/www/certbot; } location / { return 301 https://.. 2024. 5. 8.
[배포] "외국민" 서비스 배포 과정 2024. 5. 4.
[Ruby on Rails] Docker로 Ruby On Rails 배포하기 FROM ruby:3.0.2-slimWORKDIR /appRUN apt-get updateRUN apt-get install -y build-essential apt-utils libpq-dev default-mysql-client default-libmysqlclient-devCOPY Gemfile Gemfile.lock ./RUN gem install bundler && RAILS_ENV=production bundle install --jobs 20 --retry 5ENV RAILS_ENV=productionCOPY . ./ENTRYPOINT ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"] Ruby on Rails 파일을 Docker.. 2024. 5. 3.
[AWS] AWS EC2 프리티어 메모리 부족 현상 해결하기 메모리 스왑, 왜 필요한가?아마 학생 레벨에서는 많이들 AWS 프리티어 계정으로 EC2를 사용할 것이다. 하지만, 프리티어를 사용하다보면 램 부족 현상을 자주 맞이하게 된다. 특히, EC2내에서 gradle build라도 하게 되면 답답하게 오래 걸린다. 또한, 서버가 다운되기도 한다. 왜냐하면, EC2 프리티어는 1GB 메모리밖에 제공하지 않기 때문이다. 반면에, 스토리지 공간은 30GB로 꽤 넉넉하게 준다. 그럼 이렇게 넉넉한 HDD 공간을 가지고 있는데, 쓸데없이 비워둘 것인가? 이걸 활용해야지 않겠는가? 그래서 쓰는 것이 메모리 Swap이다. 메모리가 부족할 경우, HDD의 일정공간을 RAM처럼 사용하는 기술이다. 실제로 AWS 공식문서에도 이와 관련된 내용이 기술되어 있다. 메모리 스왑 AWS .. 2024. 5. 2.
[ETC] Azure 발음 평가 사용시 SpeechConfig 초기화 오류 외국 유학생들이 우리 대학 적응을 돕도록 만드는 앱 개발을 진행하고 있다.해당 앱에 대해 궁금하면 외국민 Github를 참조 바란다. 우리 앱 기능 중에서, 외국인들이 한국에서 자주 쓰이는 표현, 발표 스크립트 발음을 평가해주는 기능이 존재한다. 그래서 이걸 어떻게 구현할까 찾던중, Microsoft에서 발음평가 API를 발견하였다. 그래서 Spring 서버에서 이 기능을 사용하여 구현하였다. https://learn.microsoft.com/ko-kr/azure/ai-services/speech-service/ 음성 서비스 설명서 - 자습서, API 참조 - Azure AI 서비스 - Azure AI services음성을 인식하거나, 음성을 합성하거나, 실시간 번역을 받거나, 대화를 받아쓰거나, 음성을.. 2024. 5. 1.
[개발 탐구] 채팅 구현에 대한 고찰 채팅 서버 구현 방법 채팅 구현 방법에는 크게 4가지가 있습니다.Polling 방식Long Polling 방식Streaming 방식WebSocket 방식1~3번 방법은 일반적인 RESTFUL API를 이용한 구현 방법입니다. 그래서 비교적 구현이 쉽습니다. 하지만, 이들의 특성상 클라이언트 → 서버로 데이터 전송이 가능하지만, 서버 → 클라이언트로 전송은 불가능합니다. 이를 극복하기 위해서 나온 방법이 바로 4번 WebSocket 방식입니다.1~3번은 100% 실시간성을 보장하지 않습니다. 당연히 일정시간 간격으로 채팅을 서버로부터 끌어오는 방식이기 때문에 그렇습니다. 그렇지만, 채팅이 주력 기능이 아니라서 100% 실시간성을 보장 안해도 된다던지, 아니면 유튜브 Live 채팅같이 동시다발적으로 여러명이.. 2024. 4. 30.