backend총 9개의 글이 있어요 👀

JDBC setReadOnly 호출 이슈 해결기

안녕하세요. 인프랩 백엔드 개발자 인트, 제이입니다. 인프랩의 백엔드 서버는 대부분 Node.JS로 구성되어 있지만 일부 JVM 서버도 함께 운영됩니다. JVM 서버의 경우 모니터링으로 핀포인트를 활용하고 있습니다. 최근에 핀포인트를 통해 간헐적으로 원인을 파악하기 어려운 에러 알림이 발생했었는데, 이에 대한 해결 경험을 공유하고자 합니다. 문제가 발생한 환경 Spring Boot 3.2.5 Spring JDBC 6.1.6 PostgreSQL Driver 42.6.2 AWS Advanced JDBC Wrapper 2.2.3 AWS Aurora PostgreSQL 14.9.6 문제 상황 핀포인트에서는 다음과 같은 에러 메시지를 확인할 수 있었습니다. 이번에 경험한 에러는 특정 API에서만 발생하는 게 아닌 불특정 조회 API에서 간헐적으로 발생했습니다. 에러 메시지는 다음과 같습니다. 핀포인트 로그를 보면 에러는 트랜잭션의 마지막에 commit과 close를 하는 과정에서 발생했습…

2024.09.01
JDBC
setReadOnly
Aurora
Spring Boot & JPA에서 Java와 Kotlin을 함께 사용하기

Spring Boot & JPA 환경에서 Java와 Kotlin을 함께 사용한 이유와 사용 예제를 소개합니다.

2024.01.10
Spring
Java
Kotlin
변화에 유연한 HTTP 클라이언트 만들기

특정 라이브러리에 종속되지 않고 쉽게 테스트할 수 있는 HTTP 클라이언트를 만드는 방법을 소개합니다.

2023.07.23
http-client
interface
테스트 코드를 왜 그리고 어떻게 작성해야 할까?

테스트 코드가 필요한 이유와 잘 작성하는 방법에 대해 공유합니다.

2023.04.11
test
jest
MongoDB Atlas Search 정렬이슈 해결기

MongoDB Atlas Search을 검색엔진으로 사용하면서 겪었던 이슈와 해결과정을 공유합니다.

2022.11.16
Atlas
MongoDB
Code With Me를 활용한 페어 프로그래밍

Code With Me를 통한 페어 프로그래밍 경험을 공유합니다.

2022.11.16
pair
programming
강의실 개편

올해 저희 개발팀에서 기존 인프런 서비스 코드를 신규 스택으로 개편하는 프로젝트를 진행하였습니다. 여러 서비스 중 강의실 페이지 개선이 첫 번째 목표였고 최근 작업이 완료되었습니다. 이번 포스트에서는 프로젝트 진행에서 겪은 경험을 공유하고자 합니다. 개편의 필요성 기존 인프런 프로젝트는 다음과 같은 스택으로 구성되어 있습니다. Node.Js Postgresql Express FxJS MQL FxDOM FxJS 과 같은 함수형 라이브러리와 FxSQL 이라 불리는 쿼리빌더보다 더 이전에 나온 MQL2 를 사용합니다. 본 포스트에서는 같은 Fx 기반의 라이브러리임을 표시하기 위해 MQL 대신 FxSQL 으로 기술하겠습니다. 대부분의 애플리케이션 로직은 의 함수를 활용해 여러 단위의 함수를 합성하는 형태로 이루어져 있습니다. 아래 코드를 보시면 sql 을 실행한 결과로부터 시작해 , 같은 함수를 사용해 가공작업을 진행합니다. 유인동님의 함수형 프로그래밍 강의를 수강하신 분들이라면 익…

2022.07.18
legacy
refactoring
Localstack 을 활용한 AWS 인프라 통합테스트

안녕하세요. 인프랩에서 백엔드 개발을 담당하고 있는 인트라고합니다. 저는 최근 오픈한 채용 서비스 랠릿 프로젝트에 참여하였습니다. 기존 인프런 서비스와는 다른 스택과 환경에서 개발되었고 그 과정에서 여러 시행착오와 고민을 하게 되었습니다. 이번 포스팅에서는 그중에서 AWS 서비스를 사용하는 로직의 통합테스트를 위해 을 도입했던 과정을 공유하고자 합니다. 통합테스트 우리는 잘 작동하고 깔끔한 코드를 위해 테스트를 작성합니다. 테스트는 의존성 여부에 따라 크게 3가지 종류가 있습니다. e2e integration unit 이번 포스팅에서 이야기하고자 하는 주제는 통합(integration) 테스트로 그중에서도 AWS 리소스와 연동해야 하는 테스트를 다룹니다. 이번에 신규 프로젝트를 진행하면서 와 서비스가 필요하게 되었고 관련 모듈을 만들게 되었습니다. 만든 모듈에 대해 유닛테스트를 작성하였지만 AWS 를 사용하는 로직을 유닛 테스트만 가지고 검증하기에는 부족하다는 생각이 들었습니…

2022.02.03
AWS
Localstack
Test
2022년 1월 100% 할인 이벤트 장애 부검

안녕하세요 인프랩의 향로입니다. 인프런 서비스는 2022년 1월 3일 ~ 17일까지 지속적으로 서비스를 사용할 수 없는, 역대급 장애가 발생했습니다. 이번 장애 기간동안 정말 많은 분들의 질책을 들으면서 반성을 했습니다. 특히 퇴근 후 1~2시간 공부밖에 못하시는 분들께서는 그날의 학습을 모두 포기하게 되는 경험을 드리게 되어서 더욱 복잡한 마음이 들었습니다. 이번 포스팅을 통해 왜 이렇게 오랜 기간 서버 장애가 발생했는지, 근본 원인이 해결 된 것은 맞는지 등의 의문을 해소하려고 합니다. 이런 장애 부검은 앞으로도 지속적으로 유지하면서 인프런 서비스가 개선되고 있음을 투명하게 공유드리도록 하겠습니다. 다시 한번 서비스 사용에 불편을 드려 정말 죄송합니다. 1. 발단 2022년을 맞이해서 인프런에서는 특정 강의를 100% 할인 이벤트를 진행했습니다. 다양한 분야의 강의 125개, 총 5,016,000원 강의를 모두 0원에 아래 기간동안 등록할 수 있는 이벤트였습니다. 첫번째 이벤트…

2022.02.01
Postmortem
Service
©INFLAB. ALL RIGHTS RESERVED