본문 바로가기

분류 전체보기68

[프로젝트 진행하기 #1] 프로젝트 시작 준비 프로젝트 진행과정 1탄이다. 이번 포스팅에서는 본격적으로 서비스 기획 및 개발에 들어가기전에 프로젝트 시작 준비를 하는 과정에 대해서 간단히 다뤄보고자 한다. 초반 단계라서 내용은 별로 없지만, 나는 이 1단계가 잘못되면 결국 뒤에선 다 꼬인다고 생각한다. 따라서, 가볍게 생각하지말고 초반에는 좀 빡세게 준비하는 편이 좋다. 또한, 0번 글에서도 언급했다 싶이, 백엔드 개발자 + 팀장의 관점에서 작성한 글이다. 📝  초기 팀원 모집하기일단 혼자하는 토이 프로젝트가 아닌 이상, 처음부터 혼자 시작하기에는 무리가 있다. 그래서 주변 지인 중에 아는 사람을 설득해서 진짜 아이디어를 같이 구상하고, 끝까지 갈 팀원을 골라야 한다. 그런데 여기서 중요한 점이 있다. 단지 나랑 친하다고 아무나 데려와서는 절대 안.. 2024. 5. 10.
[회고] 우아한테크캠프 7기 테스트 회고 이번에 우아한 테크캠프 테스트 참여했었습니다. 결론부터 말하자면, 1차는 합격했으나.... 2차 과제 테스트에서 결국 떨어졌습니다. 제 실력의 부족이겠죠... 그래서 간단하게 회고록을 작성해보고자 합니다. 🔒  1차 코딩 테스트언어 : Java만 가능문제수 : 알고리즘 3문제 + CS 5문제시간 : 3시간 (13:00 ~ 16:00)제약조건:인터넷 검색 및 레퍼런스 금지물 마시기, 화장실 가기 금지외부 IDE 금지A4 용지 1장까지 사용 가능웹캠과 휴대폰 감독 둘다 필수코테 문제 난이도는 굉장히 쉬웠습니다. 대충 백준으로 치자면 실버3 ~ 골드 5 정도 수준이었다고 봅니다.Java로 백준좀 어느정도 풀어봤다하면 그냥 다 풀 수 있는 정도였습니다. 알고리즘은 정렬, 백트래킹, 수학 이 정도였고, DP나 .. 2024. 5. 9.
[개발] 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.
[배포] "외국민" 서비스 배포 과정 - (1) 기존 서비스 아키텍처기존 아키텍처는 위와 같이 구성했다. 하지만, 위의 아키텍처는 여러가지 문제점이 있었다. 우선, 우리 메인 Spring 비즈니스 서버는 다른거 처리하기도 바쁘다. 게다가, 저희 서비스는 채팅을 Long Polling으로 개발하였는데, 여러 사용자가 동시 다발적으로 요청을 보낸다? 그럼 메인 비즈니스 서버의 성능을 매우 떨어질 것이며, 응답시간은 길어질 것이다. 결국 Software Quality가 떨어질 것이다. 따라서 채팅 서버를 분리할 필요가 있다.뿐만 아니라, api 요청을 보낼때 https가 아닌 http로 보내기 때문에 데이터의 Integrity를 보장할 수 없다. 그래서 요청을 https로 암호화해서 보낼 필요가 있다.마지막으로, 챗봇, 메인 비즈니스 서버, 채팅 서버 모두.. 2024. 5. 4.
[배포] 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.
[배포] 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.