김도현

토비의 스프링 8장

0. 스프링이란? 스프링은 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 이라고 한다. 이 정의를 조금씩 분해해서 살펴보자 애플리케이션 프레임워크 애플리케이션 프레임워크는 특정 계층/기술/분야에 관계없이 애플리케이션 전 영역을 다루는 범용 프레임워크이다. 이게 일반 프레임워크랑 무슨 차이냐면, 일반적으로 프레임...

커서기반 페이징 및 MySQL 최적화 톺아보기와 적용

흔하디 흔한 오프셋 기반 페이징 offset 쿼리를 사용해서 조회할 데이터를 분할해서 가져온다. 문제점 1. 데이터 중복/유실 페이징 중 데이터 추가/삭제 시 중복된 혹은 유실된 데이터 반환 이 내용은 아직 시나리오가 정확히 이해가 가지 않아서 나중에 자세한 시나리오를 작성하기로한다. 문제점 2. 성능 일단 Limit, Offest 문법은 ...

트랜잭션과 잠금 톺아보기

트랜잭션과 락 트랜잭션은 작업의 완전성을 보장해주는 것이다. 작업을 모두 완벽하게 처리하거나, 처리하지 않고 원 상태로 복구하거나 락과 트랜잭션은 유사해 보이지만 다르다. 락은 동시성을 제어하기 위한 기능이고, 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이다. 락이 없다면 어떻게 되는걸까? 하나의 회원 정보 레코드를 여러 커넥션에서 동시...

우아한 객체지향

모든 내용은 다음 링크를 출처로 두고 있다. 우아한 객체지향 - 조영호 설계의 핵심은 의존성이다. 의존성을 어떻게 잡냐에 따라 설계의 모양이 바뀐다. 역할/책임을 다루는 이야기는 하지만, 역할이나 책임이 필요하게된 핵심은 의존성을 어떻게 관리하느냐이다. 이 세미나의 내용을 통해 의존성을 어떻게 관리할 것인지 알아가자! 의존성 설계를...

토비의 스프링 - 오브젝트와 의존관계

0. 스프링을 학습하기 전 스프링의 핵심 철학은, 객체지향 프로그래밍이 제공하는 가치를 활용하는 것이다. 그래서 스프링을 학습하기전에 객체 생성 -> 관계 형성 -> 소멸 까지의 흐름을 숙지하면 좋다. 또한 스프링을 사용하다보면 객체지향 설계/원칙을 자연스럽게 적용할 수 있도록 설계되어있다. 1.1.1 초난감 DAO...