Home
쿼리치 개발록
Cancel

[Spring] Acceptance Test Isolation

Test Isolation 애플리케이션 개발에 있어서 테스트코드는 개발 생산성과 애플리케이션 신뢰도 향상에 큰 도움을 줍니다. 이런 테스트코드는 순서에 상관없이 독립적으로 수행되어야 비로소 신뢰성 있고 안정적일 수 있는데요. 아무리 테스트코드를 꼼꼼히 작성하더라도 동일한 입력값에 대해 항상 같은 결과를 출력하지 않는 비결정적 테스트가 된다면 테스...

[Test] 테스트의 종류

Software Testing 소프트웨어 개발에서 테스트 자동화는 개발 생산성을 크게 향상시키고 유지보수에 매우 중요한 역할을 합니다. 때문에 적절한 테스트를 작성하는 것은 소프트웨어 품질과 직결되는 매우 중요한 부분입니다. 소프트웨어 테스트는 다양한 종류가 존재하는데요. 각 테스트는 목적과 방법 등에 따라 차이점을 가집니다. Test Pyr...

[Java] Thread Pool

Java Thread Pool OS 는 병렬 처리를 모방하기 위해 Thread 간의 Context Switching 을 수행합니다. Java 에서 Thread 는 OS 의 Thread 에 매핑됩니다. 때문에 Thread 를 너무 많이 생성하게 된다면 OS 의 자원이 빠르게 소진될 수 있으며 Context Switching 비용 역시 증가할 수...

[Test] Performance Test

Performance Test 성능 테스트의 목적 서비스를 운영하다보면 현재 아키텍처의 가용성에 대한 고민이 자연스럽게 따라옵니다. 가용성을 높인다는 것은 서비스의 안정적인 운영을 보장한다는 의미이기도 합니다. 때문에 고가용성 아키텍처를 구성하는 것은 안정적인 서비스 운영을 위해 필수적입니다. 시스템의 가용성을 확인하기 위해선 일정 수준의 트...

[MySQL] InnoDB Transaction Isolation Level

Transaction Isolation Level 애플리케이션을 개발 중 데이터베이스를 도입하면 격리 수준에 대한 이해가 자연스럽게 요구됩니다. 격리 수준은 데이터베이스의 ACID 성질 중 Isolation 에 해당하며, 여러 트랜잭션이 동시에 변경을 수행할 때 성능과 안정성, 일관성 및 재현성 간의 규형을 미세하게 조정하는 설정입니다. SQL:...

[Jenkins] 무중단 배포

무중단 배포 서비스를 운영할 때 새로운 버전을 배포하는 동안 운영중인 애플리케이션이 종료되는 문제가 있다. 이런 문제는 사용자에게 안 좋은 경험을 제공하기 때문에 서비스가 정지되지 않고 배포할 수 있는 환경을 구성하기 위한 여러 전략이 존재한다. 무중단 배포 전략 Rolling Update Blue-Green Deployment ...

[Spring] Transaction Propagation

Transaction Propagation Transaction Propagation, 트랜잭션 전파는 트랜잭션의 경계에서 이미 진행중인 트랜잭션이 있을 때 또는 없을 때 어떻게 동작할 것인가를 결정하는 방식을 의미한다. @Transactional 의 propagation 속성을 통해 피호출 트랜잭션 입장에서 호출한 쪽의 트랜잭션을 그대로 사용...

[Spring] DispatcherServlet

Dispatcher Servlet DispatcherServlet 이란 Presentation Layer 전면에서 모든 HTTP 요청을 중앙집중식으로 처리하는 Front Controller 패턴을 적용한 Servlet 이다. ServletContainer 가 받은 클라이언트 요청의 공통적인 작업은 DispatcherServlet 이 처리하고 그...

[Spring] Spring Boot 프로젝트에 Slack Bot 연동하기

개요 안녕하세요 공책팀에서 백엔드 개발을 맡고 있는 쿼리치입니다. 2차 스프린트를 진행하면서 저희 공책 프로젝트에 새로운 기능들이 많이 추가될 예정인데요. 제가 이번에 추가하게된 기능은 Slack Bot 을 연동하여 제출 시 Slack 알림이 울리는 기능입니다. 메시지 봇을 만드는 방법 Slack 에서 제공하는 API 로 메시지 봇을 만드...

[JPA Basic] 9. 값 타입

기본값 타입 JPA 의 데이터 타입 분류 엔티티 타입 @Entity 로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String 처럼 단순히 값으로 ...