전체 글 81

당신의 프로덕트는 PMF 를 찾았나요? (PMF 뜻, PMF 지표)

| PMF 뜻, PMF 정의, PMF 를 찾았는지 확인하는 방법 PMF first 린 스타트업이라는 책을 다들 들어보셨을 것 같아요. 린 스타트업에 따르면, 스타트업에 실패하는 가장 큰 이유는 “실제로 아무도 원하지 않는 제품을 시장에 출시하기 때문” 입니다. 시장이 원하지 않는 제품을 만든다면, 제품 개발과 마케팅에 투자한 모든 돈은 기본적으로 낭비입니다. 세계적인 광고 대행사 오길리 앤 매더(Ogilvy & Mather)의 창업가 David Ogilvy 는 “훌륭한 마케팅은 나쁜 제품의 실패를 빠르게 만든다” 라고 말했죠.  결국 망할 제품은 망한다는 결과론적인 이야기일까요? 아닙니다. 오늘 글은 망해가는 회사를 진단하고, 기사회생할 수 있는 과정을 담은 글입니다.  오늘 글은 3단계로 이루어 집니다..

CAREER/스타트업 2024.07.01

[Spring Boot] Not enough space 메모리 부족

문제 상황commit_memory(0x00007f6dc18f1000, 16384, 0) failed; error='Not enough space' (errno=12)메모리 사용량 99% 찍더니 뻗어버림문제 원인prod 서버 힙사이즈 늘린게 데브에도 배포됨dev는 ec2 micro를 사용하고 있는데 힙 사이즈가 그만큼 없었음처리자바 최대 힙사이즈를 512로 줄임 swap 메모리를 이용하는 방법도 있다지만, 나는 불필요한 메모리를 할당한 것이기 때문에 데브에서만 할당 해제를 해줌[Troubleshooting] AWS EC2 스프링 부트 빌드시 용량 부족 문제 (Not enough space) 해결

WEB/Backend 2024.06.21

[쿼리 튜닝] DB CPU가 99% - 쿼리 중 일부 컬럼만 가지고 오기

문제 상황DB CPU가 99%로 뻗음한번 뻗으면 트래픽 줄어들때까지 복구 안됨문제 원인쿼리에서 member 객체를 찾아오는게 너무 너무 부하가 큼member 객체 너무 큼 -> 객체에서 불필요한 필드 모두 삭제처리24.02.01쿼리 튜닝 : member 를 객체 그대로 찾는 것들을 모두 member Id 만 받아오도록 변경함DB 사이즈 업 : t3.xlargeAWS Performance Insight 설정 후 비효율 쿼리 탐지24.04.01DB 사이즈 스케일 다운 : t3.medium

WEB/Backend 2024.06.21

[Spring Boot] HeapDumpOnOutOfMemoryError : java heap size 에러 해결 과정

문제 상황HeapDumpOnOutOfMemoryError : java heap size이 뜨면서 cpu 사용량은 그대론데 한순간에 뻗어버림 → scaling 도 안되고 그냥 죽음.. 최악문제 원인지난 배포 이후로 생긴 오류로 추정 됨지난 배포 : 성별을 List 에 담는 로직으로 변경했었음List 에 때려 박는 로직은 heap size 오류가 생기는 듯처리2024.03.13리스트에 성별 담는 것에서 쿼리 자체에 성별 필터링 / 주선자 필터링을 넣는 것으로 변경Heap size 오류 나면 힙 덤프 찍히도록 /var/log에 찍히도록 추가함[JAVA] Heap 모니터링 & Heap Dump 분석하기2024.03.18저녁에 다시 카드 보여주는 로직에 반복문 내부에 디비 연결하는 로직 포문 밖으로 뺌2024.0..

WEB/Backend 2024.06.21

[Spring Boot] Thread starvation or clock leap detected : 문제 해결

문제 상황Thread starvation or clock leap detected이 뜨면서 cpu 상태 99%로 오르다가 뻗어버림문제 원인카드 발급 로직을 Async 로 사용하는데, 사용하며 쓰레드 풀의 커넥션이 부족하여 데드락이 걸렸던 것으로 추정https://velog.io/@mbsik6082/Spring-Data-JPA-Transaction-Propagation-EntityManager-PersistContext%EC%97%90-%EA%B4%80%ED%95%9C-%EA%B3%A0%EC%B0%B0 Spring Data JPA Transaction Propagation, EntityManager, PersistContext에 관한 고찰https://velog.io/@mbsik6082/Thread-sta..

WEB/Backend 2024.06.21

[Python] 광고 삽입

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 2. 풀이 예전에 풀었던 문제에서 나왔던 누적합 개념을 써먹어서 너무 기쁨!!!!취준 코테에도 나오면 좋겠다^^* 누적합을 써도 시간 초과가 나와서 adv(광고 길이) 단위로 계속 합치는 것이기 때문에 dp로 더해주었더니 풀림 누적합으로 시간복잡도가 n^2 -> n*4 로 바뀜 중..

ALGORITHM/Kakao 2022.03.31

[Python] 합승 택시 요금

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 2. 풀이 이상한 부분으로 한참을 헤맸던 문제 풀고나니 생각보다 간단해서..

ALGORITHM/Kakao 2022.03.31

[Python] 다단계 칫솔 판매

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 2. 풀이 계속 시간 초과가 나서 찾아보니 share가 0이 되면 멈추라고 하던데.. 나는 멈추는데도 계속 시간초과가 났다. 그래서, list.index(name)함수로 인덱스 번호 찾던걸, dictionary로 변경하니 시간 초과가 안걸렸다. dictionary가 확실히 빠르고 효율성이 좋은 듯.. 애용하자 ..ㅎㅋ 내가 푼 방법 seller ..

ALGORITHM/Kakao 2022.03.24