본문 바로가기
반응형

전체 글12

[회고] 2023 잘가라 👋 벌써 2024년 입니다. (벌써라고 하기엔 2월...) 매우 다이나믹 했던 탓인지 2023년이 빛처럼 지나가버린 것 같습니다. 정말 당황스러웠던 구조조정과 계획에 전혀 없던 이직까지 정신없이 지내다보니 12월, 그렇게 새해가 되어버렸네요 🥲 3년 전 쯤에 회고 글을 남기고 오랜만에 신년다짐도 할겸 글을 남겨보려고 합니다. 갑작스런 이직 전 회사는 IT가 주 먹거리가 아닌 회사이긴 했지만 나름 비즈니스 모델도 괜찮았고, 복지도 아주 좋다고 할 순 없었지만 나쁘지도 않았습니다. 당시 개발팀 동료들이 너무 잘 맞았고, 이렇게 재미있게 일할 수 있을까 싶을 정도로 만족했기 때문에 더더욱 이직 생각을 하지 않았습니다. 하지만 22년 말 쯤부터 서서히 이야기 나오던 경기불황이 더 심해지고 있는게 느껴졌고, 신사업 .. 2024. 2. 7.
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.
AWS S3 이미지 업로드 Spring으로 사용해보기 대부분의 이미지 서버를 구축할 때는 AWS S3를 보편적으로 사용합니다. 저희 또한, S3를 애플리케이션 이미지 업로드 및 다운로드 서버로 선택하게 되었습니다. 큰 이유가 있기 보다는.. 서버를 사용하는데는 항상 비용문제가 따라오기 마련인데 마침 공짜 크레딧이 생겨(!!) 무리 없이 이용할 수 있게 되었습니다. 스프링으로 사용하지 않는 경우에는 보통 API Gateway - AWS Lambda - S3 식의 구조로도 많이 발견이 됩니다. 이는 트래픽이 많이 몰릴 수 있는 상황이거나 앞으로의 확장성을 많이 고려해야 할 때 사용하는 방식입니다. 하지만 어드민 페이지를 구축하거나(보통 사진업로드가 많지않음) 저희처럼 MVP한 모델로 신규 서비스를 런칭하는 것이라면 크게 트래픽이 몰리지 않기 때문에 오히려 서버.. 2021. 11. 14.
반응형