비즈니스 요구사항이 빈번히 변경되는 지점에 추상화를 적용하여 클라이언트 코드 변경 전파 최소화
요약 유사한 성격의 메일을 발송하는 두 클래스를 추상 클래스를 선언하고 템플릿 메서드 패턴을 사용하여 공통 로직을 한 곳으로 모아서 중복을 제거했습니다.
요약 유사한 성격의 메일을 발송하는 두 클래스를 추상 클래스를 선언하고 템플릿 메서드 패턴을 사용하여 공통 로직을 한 곳으로 모아서 중복을 제거했습니다.
요약 다양한 캐싱 전략 중에서 로컬 캐시를 선택하여 오전 7시에 RDS에 집중된 조회 작업으로 인한 부하를 줄였습니다. 기존 코드는 카테고리별 질문지(백엔드, 프론트엔드)를 구독자 수 만큼 반복적으로 질문 테이블에서 대량의 데이터를 조회하고 있었는데, 이런 비효율을 해결했습니...
요약 구독자별 받은 질문지 모아보기 기능을 구현하는데 있어서 기존 테이블 관계를 파악하고 추가적인 다대다 테이블을 설계하였습니다. 그 과정에 현재 운영 상황과 스키마 변경 비용을 고려하여 테이블 정규화를 고민했습니다.
요약 비동기 스레드 풀의 대기 큐 사이즈보다 더 많은 요청이 들어와서 발생한 TaskRejectedExceptoin 에러와, AWS SES 초당 요청 처리 제한 초과로 인해 발생한 SMTPSendFailedExceptioin 에러가 발생하여 해결했습니다. 바로 조치하여 해결할...
사용자 추적을 위한 조회 기능 개발
사용성이 좋지 않다는 사용자 피드백에 따라 비즈니스 로직 개선
4번 문제
3번 문제
토미의 트랜잭션, 인덱스 강의 자료를 학습하여 작성했다.
org.hibernate.HibernateException: A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance 에러 트러블 슈팅한 내용이다.
정산을 위해 지출 내용을 직접 입력해야 된다는 것 자체가 엄청나게 큰 허들.
얼마 전 우테코의 코치 토미가 인덱스 강의를 해주셨다. 아마 토미가 미리 만들어두신 것으로 추정되는 백만에 가까운 row가 들어있는 대용량의 데이터를 바탕으로 강의가 진행되었다. 원래 수업시간 외에 크루들에게 데이터를 제공할 계획이 없으셨으나, 무수한 백엔드 크루들의 성원에 못이기...
우아한테크코스 6기 레벨3에는 팀 프로젝트를 진행하는데, 내가 속한 팀은 행동대장 팀이다.
처음으로 참가한 대회 Pinely Round 4 (Div. 1 + Div. 2)
제네릭 클래스와 인터페이스 선언에 타입 매개변수(type parameter)가 쓰이면, 이를 제네릭 클래스 혹은 제네릭 인터페이스라 한다. 제네릭 클래스와 제네릭 인터페이스를 통틀어 제네릭 타입(generic type)이라 한다.