왜 테스트를 해야 하는가?
https://kscodebase.tistory.com/685 왜 테스트를 해야 하는가?- 모든 것을 테스트한다는 오해 카카수 : 테스트 코드를 도입하려고 해요. 개발자1 : 좋아요. 하죠. 근데, 그걸 한다고 모든 문제가 사라질 건 아니에요. - 작업 방식에 대한 오해 카카수 : 테스트kscodebase.tistory.com 좋은 글 잘 읽었습니다
2025.01.24
no image
로드 테스팅 툴 '신기전' 개발 후기
지난 2024년 10월 말, 회사를 다니는 내내 생각만 했던 CLI 기반 API 로드 테스팅 툴 '신기전' 프로젝트 개발을 마쳤습니다. 신기전 홈페이지신기전 깃허브1. 신기전을 만들게 된 이유당시 한 프로젝트를 진행하며 DB에서 많은 양의 데이터를 조회하고 가공하여 리턴하는 REST API 를 만들었었는데 이때 API의 속도가 조금 느려 클라이언트 화면에서 조금 버벅거렸던 일이 있었습니다. 이때 API 성능 테스트에 필요성을 느꼈고 찾아보기 시작했습니다. 성능 테스트를 해야겠다는 생각을 한 후엔 node 진영에서 가장 메이저한 Artillery 와 Postman 을 사용해봤습니다. 둘 다 만족스럽게 사용했습니다.  두 툴을 만족스럽게 쓰긴했지만 한편으로는 조금 더 빠르고 간편하게 테스트를 하고 싶다는 생..
2025.01.16
pypy가 python3 보다 느린 경우
백준 풀다가 pypy로 시간초과가 나길래 python으로 컴파일했더니 통과되는 현상이 발생했습니다.제 머릿속엔 대부분 pypy -> 시간↓ 메모리사용량↑ python3 -> 시간↑ 메모리사용량↓↑ 인데 왜일까 했는데 이 현상에 대해 질문을 하신 분이 계셨고 어느분께서 친절하게도 해당 현상에 대한 링크를 걸어주셨습니다.https://codeforces.com/blog/entry/82989https://codeforces.com/blog/entry/133247결론은, 보통 문자열에 대한 I/O 혹은 문자열 이어 붙이기 등문자열 관련 작업을 할 때 pypy가 python3 보다 느린 경우가 발생한다고 하네요. (정확한 패턴은 아직 확인되지 않은 듯 합니다)python은 C++과 다르게 기본적으로 문자열이 불변..
2024.11.13
NginX + Docker + Github actions 무중단 배포
2024년 8월 6일 작성한 글입니다. 서비스를 개발하며 벼르고 있던 작업 중 하나였습니다. 구현 작업이 느슨해질 때 쯤 작업했었네요. 이 작업은 개발/배포 환경에 영향을 많이 받다보니 외부 코드를 차용하지 못하고 직접 코드를 많이 타이핑했었던 기억이 남아있습니다..1. 문제 인식 | “어? 서버 오류났어요”사실 ‘무중단 배포’ 구축 작업 자체는 워낙 유명한 CD 작업이기 때문에, 문제가 발생하기 전에도 ‘이건 나중에 꼭 작업해야지’ 라고 인식하고 있던 작업이였습니다.직접적으로 해당 작업 필요성에 대해 필요성을 느끼게 된 건 배포 작업이 잦아지면서부터였습니다. 기능 개발과 버그 픽스가 빠르게 이루어지며 배포 주기가 짧아지고, 특히 테스트를 위해 개발 서버에 변경 사항을 반영할 때 문제가 두드러졌습니다.2..
2024.11.13
Docker Image 경량화
2024년 7월 24일 작성한 글입니다.2024년 2월 경 도커 파일 크기가 생각보다 많이 큰 것에 대해 의구심을 가지게 되었고 이를 해결한 일지입니다.1. 도커 파일은 원래 이렇게 큰가2024년 2월 초, Github actions 배포 자동화 라인을 통해 개발 서버에 배포를 하던 중 오류가 발생했습니다. 원인은 서버에 EBS 볼륨 용량이 부족하다는 것이였습니다. EC2 생성 시 자동 할당되는 EBS 볼륨의 크기는 8GB이며, 도커 파일을 저장하는 것 외에 디스크 사용을 하지 않는 서버다보니 용량 부족은 제겐 좀 의문이 드는 상황이였습니다. 서버에 들어가서 용량을 확인해보니 정말 디스크 용량 사용률이 100% 였습니다. 아니 이게 무슨 황당한 경우인가. 리눅스에 깔려있는 것이라곤 도커와 도커 이미지 ..
2024.11.13
YYYYMMDDHHMMSS - JS Date format library
2023년 5월 11일에 작성한 글입니다.날짜 포맷을 패키지로 만들었습니다.서론개발하다보면 YYYYMMDDhhmmss 와 같은 날짜 포맷이 필요한데, 항상 구글에서 javascript date format .. 을 검색해서 이 코드 저 코드 살펴보고 찾아보는게 귀찮아서 그냥 만들었습니다.패키지 설명YYYYMMDDhhmmss, YYYYMMDD, hhmmss, YYYY, MM, DD, hh, mm, ss 로 포맷된 날짜를 반환하는 함수를 제공합니다.(string 타입으로 반환합니다.)npm 링크https://www.npmjs.com/package/@kimjunseoo/yyyymmddhhmmss사용법1. 패키지 다운로드npm npm i @kimjunseoo/yyyymmddhhmmssyarnyarn add @k..
2024.11.13
fly.io 서버 배포 및 API 테스트 방법
2023년 3월 15일에 작성한 글 입니다.1. 배경2023년 2월동안 팀 프로젝트로 스터디에 도움을 주는 웹 앱을 만들게 되었습니다. 마지막 배포를 위해 여러 플랫폼을 찾던 중 무료 플랫폼인 fly.io를 통해 배포를 하기로 하였고 성공적으로 서버 배포를 하였습니다.첫 배포이다보니 크고 작은 시행착오들이 있었어서 시행착오들 해결을 포함한 배포 방법과 배포 이후 API 테스트까지의 내용을 정리하겠습니다.준비물은 개발 완료된 소스코드(빌드된)만 있으면 됩니다.2. fly.io 배포우선, powershell 로 진행했습니다.2-1. flyctl 다운로드powershell 에서 아래 명령어를 입력하여 flyio ctl을 다운로드합니다.ctl은 커맨드라인 유틸리티입니다.iwr https://fly.io/inst..
2024.11.13