전체 글(118)
-
WIL (Weekly I Learned) 4월 1째주
실전 프로젝트 실제 배포, 마케팅, 피드백 수렴 후 개선, 서비스 성능개선, 스프링을 스프링답게 사용하기 위해 코드 개선, 내 서비스가 언제 뻗을지 스트레스테스트 저번주는 Github Actions + CodeDeploy + Nginx 를 이용하여 배포자동화, 무중단배포 하기를 구현했었다. 그렇게 이제 평화가 오나 했으나... 문제가 하나 둘씩 빵빵 터졌다. Nginx를 이용해 EC2 인스턴스 한개에서 두개의 포트를 돌려서 스위치를 하는 식으로 가동되어 있었다. 그런데 가동된지 20시간 정도가 되면 갑자기 EC2가 멈추는게 아닌가... 다시 중지 후 시작을 하여 다시 돌려놓았지만 다음날이 되자 또 이런 일이 발생하였다... 그래서 swab을 통해 메모리를 EC2 기본 1기가 메모리에서 2기가를 추가하여 ..
2022.04.03 -
Q) 과연 내 서비스는 언제 죽을까? 한계를 알아보자
서비스를 실제로 배포해 오픈한 날 발생한 일 2022-03-31 오전01:28 오픈빨로 대기방에 40명이 동시접속을 하였는데... 글세... cpu 90찍음 !!!!! ubuntu 에서 free를 쳐서 나오는 메모리에는 전혀 지장이 없이 평범했다. 메모리는 Swap을 해서 3G가 되어서 괜찮을 것 같고... 그 후 40명 정도의 사람이 플레이를 하고있지만 동시접속이 아니여서 그런지 cpu는 20~30%로 떨어졌다. 그말은 즉 동시접속만 아니라면 분산 플레이로 인해 cpu%에 무리는 없는 걸로 생각된다. 하지만 추후 cpu 부족으로 서버가 터진다면 EC2에서 구매를 해보던지 해야할 것 같다. t2.medium cpu: 2기가 , memory 4기가 이걸로 사버려? 동접 80명은 받아도 가능하게 EC2 프리..
2022.03.31 -
하드코딩을 피하기! (상수 사용, StringBuilder 사용)
하드코딩이란? 프로그램의 소스코드에 데이터를 직접 입력해서 저장하는 것. 주로 파일 경로, URL 또는 IP 주소, 비밀번호, 화면에 출력될 문자열 등이 대상이 된다. 하드코딩의 문제점 의미를 파악하기 어렵다. public Car(int position) { this("orange", position); } public Car(String name) { this(name, 0); } 2. 유지 보수하기 어렵다. /* 월 원금을 구하는 메서드 */ public static double calculateMonthlyPrincipal(int principal) { return principal / 12; } /* 월 이자를 구하는 메서드 */ public static double calculateMonthly..
2022.03.30 -
[ubuntu] nginx let's encrypt로 https 적용시키기
https://happylulurara.tistory.com/146 가비아 도메인 적용 EC2 ubuntu 가비아나 다른 사이트를 통해 도메인을 적용하도록 한다. 일단 '가비아'를 검색해서 사이트로 들어갔다. 가비아로 들어가서 원하는 도메인 이름을 넣고, 아래 선택지 중 원하는 것으로 '선택'을 happylulurara.tistory.com 가비아 도메인 사서 적용시키기 https://happylulurara.tistory.com/147 [ubuntu]nginx let's encrypt로 https적용 happylulurara.tistory.com/146 가비아 도메인 적용 EC2 ubuntu 가비아나 다른 사이트를 통해 도메인을 적용하도록 한다. 일단 '가비아'를 검색해서 사이트로 들어갔다. 가비아로 ..
2022.03.30 -
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root causejava.lang.NullPointerException: null
퀴즈쪽 값을 불러오려고 했더니 안된다... nohup log를 봤더니... NullPointerException이 발생했다. null 값이 들어온다고? why!!! 문제가 발생한 퀴즈쪽 Service를 봤더니 final이 없다? @Service @AllArgsConstructor @NoArgsConstructor public class QuizService { private RoomRepository roomRepository; private QuizRepository quizRepository; private ClueRepository clueRepository; 다른 service에는 @RequiredArgsConstructior 와 final 조합으로 되어있었는데 퀴즈쪽에는 다른 작업 때문에 살짝 ..
2022.03.29 -
AWS EC2 서버가 갑자기 꺼졌다! 혹은 느려졌다?
요즘 항해99 실전프로젝트 기간이라 많은 삽질을 경험하느라 새벽 6~7에 자는게 습관이 되었다. 그래서 최소 12시까지는 자다가 깨는데, 그전에 카톡의 알람을 살짝 확인만 하고 다시 자려고 했었는데.... 그런데!!! 백앤드 서버가 꺼졌다는 카톡이였다!!!! 울조 세명중 현재 스프링 서버를 맡고있는 건 나 아닌가!!! (배포자동화와 무중단배포를 전담하여서...ㅜㅜ) 그말은 즉 잠자리에서 바로 일어나야한다는 말이다! nginx 로 8081, 8082 두 포트가 nohup으로 돌려져 있었는데 무슨상황인지 ubuntu로 접속해보았더니 ec2에 접속이 되지 않는다... 이런 상황은 처음이라 당황스럽다;;; AWS에 접속하여 ec2 인스턴스를 확인해보니 인스턴스의 상태는 실행중이지만... 상태검사에 2/2개 검사..
2022.03.29