업무..하면서6 요즘 일하면서 느끼는 거 내 연차 어느덧 4년차.. 미들을 바라보고 있다마음가짐이 많이 바뀌었는데먼저 나는 백엔드 엔지니어로 커리어를 시작했 지만.. 첫 회사에서 리액트를 함께 맡음에 따라 엥저는백엔드하고싶은데요? 다음 회사에서는 php를 하게 되었는데(공고+면접때 java로 마이그레이션한다는 이야기로 입사를 하였지만 메인서비스 유지보수하기 바빴음) 뭔가 도태되는 느낌도 많이 들었었고.. 스타트업 분위기가 좀 적응하기 힘들었음.. 다시 회사를 옮기게 되었다 사실 이 회사가 맘에 안들었다기보다는 여러가지 사정이 있었고.. 내가 부족했다고 생각함.. 이 과정 중에 헤드헌터한테 대기업 계열사 제안을 받게 되어서 도메인/커리어 상관없이 대기업의 맛을 맛보고싶다는 생각에 별 생각 없이 이직하게 됨...그리고 레전드 역마살으로 다음 회사... 업무..하면서 2024. 7. 29. 다중 로그인 제어 적용하기 신규 서비스 개발 중... 회사 내규 보안 규칙을 적용해야 한다는 사항을 전달 받았다..1. 어드민 서비스에 sms 2차 인증 추가 -> sms api는 이미 구현 되어있었고, redis에 2차 인증이 되었는지 여부만 저장하여 최초 로그인 filter에 해당 로직만 추가함으로써 간단하게 구현할 수 있었다..2. 비밀번호 n회 이상 틀렸을 때 락걸기 -> redis로 할까 했는데.. db에 로그인 실패 카운트 횟수, 락 여부 컬럼 추가해서 구현 함3. 다중 로그인 제어 -> 이게 좀? 머리를 써야할 것 같았는데A PC로 접근 중, B PC로 접근했을 때 A PC의 로그인을 풀리게 하는 것이 요구사항이였고단순하게 아~ 토큰에 ip주소를 저장하고 접근할 때 이 ip주소가 다르다면 토큰 만료시키면 되겠다~~~라.. 업무..하면서 2024. 6. 29. spring event로 이벤트 아키텍처 적용하기 담당하게 된 회사 프로젝트의 코드를 살펴보면서, 결제 기능과 이메일 발송 로직에서 개선할 수 있는 부분이.... 보였다. (웬만한 실무 코드가 그렇듯이) 하나의 비즈니스 로직이 nn줄로 거대하게 존재하고 있는 상태였다...... 이런 중요한 기능들을 더 효율적이고 확장 가능하게 만들 수 있는 방법을 모색하는 과정에서, 몇 가지 중요한 개선 포인트를 발견했다.. 결제 기능의 확장성을 높이고, 공통 로직을 더 잘 관리하며, 이메일 발송을 비동기로 처리하는 방법을 고민하다 보니, 이벤트 아키텍처 도입입을 통해 시스템의 전반적인 성능도 개선할수 있어 좋은 해결책이 될 거라고 생각했다. 프로젝트의 현재 규모와 팀의 상황을 고려했을 때, RabbitMQ, Kafka와 같은 메시징 시스템을 도입하기보다는 Spring.. 업무..하면서 2024. 2. 2. 클린 아키텍처 적용하기 백엔드 개발에서 아키텍처는 마치 큰 건물의 기초와 같다. 잘 짜여진 아키텍처는 개발의 효율성을 높이고, 유지보수를 쉽게 해준다. 특히 Java Spring 프로젝트에서 클린 아키텍처를 적용하면 더욱 강력한 구조를 만들 수 있다. 이번 글에서는 내가 직접 경험한 클린 아키텍처의 적용 과정과 그 이점에 대해 소개하려 한다. 문제점: 컨벤션이 없는 아키텍처의 혼란 내가 처음 입사하여 프로젝트를 시작했을 때, 맡게 된 프로젝트를 포함하여 백엔드 파트 내부에선 아키텍처에 대한 명확한 컨벤션이 없었다. 이런 상태에서 개발을 진행하다 보니 코드의 일관성이 떨어지고, 새로운 기능을 추가하거나 수정하는 데 시간이 많이 걸렸다. 또한, 다른 개발자가 작성한 코드를 이해하기 어려워 협업에도 문제가 있었다. 접근 방식: 클린.. 업무..하면서 2024. 1. 16. Spring 로그 관리하기 입사 후 눈에 띄었던 첫 번째 문제는 로그에 대한 명확한 포맷과 관리 체계의 부재였다. 로그는 시스템의 건강 상태를 진단하고, 문제 발생 시 신속하게 대응하는 데 필수적인 역할을 한다. 로그가 잘 관리되지 않으면, 중요한 데이터의 누락이나 잘못된 기록으로 인해 성과 측정이나 문제 해결에 큰 어려움을 겪을 수 있다. 이에 로그 포맷을 정해보자는 의견을 제시하였고, 팀에서도 긍정적으로 받아들여줘 작업을 하게 되었다. (이는 후에 EFK 구축으로 넘어가게 된다..) 로그 분류와 기록의 필요성 데이터를 정확히 보기 위해, 데이터를 올바르게 기록해야 한다는 기본 원칙 로깅을 신경쓰지 않고 진행 ⇒ 특정 기능 배포 ⇒ 성과를 확인하려고 하니, 데이터에 누락이 있음을 발견(혹은 잘못된 로깅) ⇒ 다시 로깅을 한 후,.. 업무..하면서 2023. 12. 12. 현업에서 Spring Framework -> Spring Boot로 마이그레이션 하기 - 1 ✔ 발단 사내에서 프로젝트가 끝나고, 빈 시간이 남음에 따라 기존 Spring Framework로 구현된 레거시 프로젝트를 Spring Boot로 전환하는 작업을 시작하게 되었다. 전환하게 된 사유는 다음과 같다. 로컬 구동시간, 빌드 시간이 너무 길었다.. + 셋팅이 번거로웠음 로컬에서 프로젝트를 구동하는데 걸리는 시간은 7~8분 가량이였고, '이거.. .맞는건가?' 라는 생각이 들어 이전 직장에서 레거시 프로젝트를 전환해본 것을 경험삼아 리팩토링을 시작하게 되었다.. 빌드 시간 역시.. 5분은 거뜬하게 넘었고 Apache Tomcat 서버를 사용하고, 개발 환경에 DB DNS세팅까지 해야하는 번거로움이 존재했다. 입사하자마자 내가 담당하게 된 서비스임에도 어떻게 구성되어있는지 제대로 이.. 업무..하면서 2023. 9. 27. 이전 1 다음