글또
-
도커가 계속 죽어요.. OOM killer글또 2022. 1. 23. 18:07
문제 발생 서비스 오픈 전에는 리퀘스트가 없으니 서버 스펙을 굉장히 낮춰서 만들었다. 비용 문제.. 1 코어 2메모리로 잡아서 시작을 했다. 프론트도 띄우고.. 젠킨스도 띄우고.. 도커로 spring까지 띄우니 한 60% 정도 사용량이 나왔다. 근데 몇 번의 리퀘스트만 받으면 도커가 뻗어버리는 일이 발생했다. log를 뒤져보면 다음과 같이 나온다. /var/log 밑의 syslog를 열어보면 oom killer가 도커를 죽이는 듯하다. oom killer [LINUX] OOM Killer 란? OOM Killer 순위 설정하기 OOM Killer 란 Out Of Memory Killer 의 약자로 메모리가 부족할 경우 특정 프로세스를 강제로 종료시킵니다. OOM 이 발생하는 경우 /var/log/mess..
-
사이드 프로젝트 - Enum converter글또 2022. 1. 23. 00:04
사이드 프로젝트 오류 발생 현재 DB에 있는 한 칼럼은 역정규화를 통해 ", "를 찍어서 보관 중인 것이 있다. ex) A, B, C request로 들어올 때는 string list로 들어오는데 이는 코드 상에서 enum으로 관리한다. 즉 DB I/O 작업이 있을 때만 변경을 해주면 된다는 것. jpa에는 converter를 아주 쉽게 사용할 수 있다. 우리가 구현해야 하는 로직은 List -> string, string string,string -> List 변환 로직이다. 근데 하나의 enum에만 사용되는 것이 아니니 genric 하게 코드를 구현해야 한다. 변경 전 enum List로 코드상에서 관리되고 있다. String으로 반환을 했었는데 아뿔싸 우리의 코드에서는 enum으로 관리가 되고 있다..
-
Atdd [인수 테스트 -1 ]피드백글또 2022. 1. 22. 15:25
이번에는 step1에 대한 피드백 부분이다. 일단 이번 과정을 진행하면서 BDD의 given, when, then 구절을 코드로 표현한 RestAssured 라이브러리를 새롭게 알게 되었다. 반환 값으로 ExtractableResponse 가 반환되면 아래와 같이 사용 가능하다. jsonPath를 통해 쉽게 내용들을 비교할 수 있다. test 기본 세팅으로 웹서버도 띄운다. 랜덤 포트를 사용해 병렬로 test가 돌아갈 시 충돌 방지, 이미 떠 있는 프로젝트와의 충돌을 방지한다. db를 지우는 부분이다. 단순히 @transactional을 사용하면 안 되나?라고 생각했는데 웹서버까지 띄울 경우 먹지 않는다고 한다. Transactions in spring boot testing not rolled back..
-
-
2021.11.25 기록장글또 2021. 11. 24. 20:52
ToDo cs 50 https://www.edwith.org/cs50/lecture/22797/?isDesc=false 책 읽기 콰츠 공부 Done cors Weekly goal 책 읽기 영어 레퍼런스 읽기 북마크 읽기, 정리 CORS 과거 프로젝트할 때도 만났던 문제를 회사에서 만나게 되었다. 일단 cors를 간단하게 설명하자면 다른 도메인으로 요청을 보낼 때 발생한다. 요청에도 여러 종류가 있는데 단순 요청과 프리플라이트 요청이 있다. 프리 플라이트 요청은 단순 요청에 위배될 경우 발생하는데 진짜 요청 전에 OPTIONS 메서드를 통한 요청이 한 번 더 가는 것이다. 프리플라이트를 통해 어느 오리진을 허용하는지, 어느 메서드를 허용하는지 등을 알 수 있다. 자 여기까지가 기본 지식이라면 서버 입장인 ..
-
-
-