본문 바로가기
반응형

개발이야기10

mac M1에서 메모리 힙 덤프 떠서 분석하기 이전 회사에 다닐 때 카테고리 구조를 바꾼 큰 프로젝트가 배포가 나갔는데요, 그 때 같이 변경 되었던 부분이 실시간 polling 기능이었습니다. 전 회사는 미술품 경매가 주 사업이었는데요, 응찰 할 때마다 가격 갱신이 즉시반영이 되지 않아 고민 끝에 socket에서 1초 polling 방식으로 변경했습니다. 이 기능은 목록 조회, 상세페이지 조회 시 자동으로 1초마다 현재 최고가 데이터를 갱신합니다. 그런데 그 이후, 서버 어플리케이션이 이틀에 한번씩 갑자기 OOM이 발생하여 다운되는 현상이 지속됩니다. 개발자 전원이 다 붙어서 확인을 해보지만 별다른 성과가 없자, 메모리 덤프를 떠서 분석을 해보자는 의견이 나오게 됩니다! 서비스 환경 저희 서비스를 아래 환경이었기 때문에 참고 부탁드립니다 :) Mac.. 2023. 12. 10.
Git flow 이해하기 Intro 회사에서는 Git과 Git-flow를 매우 익숙하게 사용하고 있지만.. 버튼 몇 번만 누르면 다 해주는 방식을 계속 써왔다 보니(fork 사랑해요) 또 아무 생각 없이 사용하는 나 자신을 발견하게 되어 팀장님에게 말로 맞은 겸 정리할 겸 오랜만에 글을 작성해보았습니다. git flow의 시작, git flow init 우리가 처음 깃허브에 레파지토리를 만들 때 맨 처음 git init 명령어를 사용하는 것을 보았을 겁니다. git flow init은 이 보다 확장 된 명령어 이며, develop브랜치를 생성하여 분기처리를 하는 것 이외에는 아무런 영향을 주지 않습니다. git init은 새로운 깃 레파지토리를 생성을 하게 됩니다. 프로젝트 root directory에서 숨겨진 파일목록 보기를 .. 2022. 5. 10.
Codecov로 code coverage 확인해보기 매번 단위테스트가 현재 프로젝트에 대해 얼마나 커버를 하는지 메서드 line 단위로 확인을 하고 싶어 code coverage에 대해 알아보게 되었습니다. 그 중에서도 다른 레퍼런스에 비해 많이 검색되고, 자체 docs를 잘 관리하고 있는 Codecov 를 최종적으로 선택하게 되었습니다. PR에 보기 편하게 report를 해주고, Github Actions와 쉽게 연동할 수 있도록 기능을 제공하고 있었기 때문입니다. Codecov 회원가입 깃허브 레파지토리와 연동이 필요하다면 반드시 깃허브 계정으로 로그인이 되어야 합니다. 깃허브 계정으로 소셜로그인을 했다면, 다음 창으로 현재 내 깃허브 레파지토리에 접근하겠다는 Access Authorize 관련 창이 뜨게 됩니다. 혹시 슬랙과 깃허브를 연동해보셨다면 .. 2021. 12. 15.
Funtional Programming은 어떻게 가능하게 되었을까? Overview Java 8 버전 이상을 사용하는 분들이라면 아마 Functional Programming 을 적극적으로 이용하시는 분들이 많을 거라 생각합니다. 자바 8버전 부터 Stream API와 함께 추가 된 대표적인 기능 중 하나이죠. 저 또한 개발 중에 함수형 프로그래밍으로 코드를 많이 짜고 있는데요, 처음 사용했을 때 가장 신기했던 것은 -> (람다식)을 사용하여 추가적인 메서드를 생성하지 않아도 익명함수를 활용하여 내부 값을 불러올 수 있다는 점이었습니다. 그러다보니 자연스럽게 코드도 간결해지게 되었죠. 그러다 하나 의문점이 생겨나게 되었는데 그 점은 바로 아무거나 함수형 프로그래밍으로 사용할 수 있는걸까? 하는 궁금증이었습니다. 만약 아무거나 함수형으로 쓸 수 없다면 내부 구현은 어떻게 .. 2021. 11. 15.
반응형