Spring 숙련 주차에 진입했다. 한번 했던 개념을 심화에서 배우는 중이라 저번 주차에 비해 난이도는 어렵지 않았다. 하지만 아직 헷갈리는 개념인 빈을 다시 한번 정의해보고, 기술매니저님이 알려주신 Soft Delete에 대해 정리해보려 한다.
bean : Spring IoC 컨테이너가 관리하는 자바 객체.
기존의 java에서는 클래스를 생성하고 new를 입력해 원하는 객체를 직접 생성해서 썼지만,
Spring에서는 직접 생성하는 것이 아니라 Spring에 의해 관리당하는 자바 객체를 사용한다.
이를 IoC 제어의 역전이라 하며, 이렇게 Spring에 의해 생성되고 관리되는 자바 객체를 Bean이라고 한다.
Bean을 Spring IoC Container에 등록하는 방법
@Component @Service @Repository @Controller 와 같은 어노테이션을 사용하거나
Bean Configuration File에 직접 등록해서 사용하면 된다.
@Configuration
public class MyConfiguration {
@Bean
public HelloController sampleController() {
return new SampleController;
}
}
해당 File 하위에 Bean으로 등록하고자 하는 Class에 @Bean Annotation을 사용하면 Bean을 등록할 수 있다.
DB에서 데이터를 삭제하는 방법은 물리삭제와 논리삭제가 있다.
물리삭제 : Hard Delete. SQL의 DELETE
명령어를 사용해 직접 데이터를 삭제하는 방법.
삭제 대상인 데이터가 더이상 필요없을때 사용한다. 실제 DB에서 해당 데이터를 아예 삭제해린다.
논리삭제 : Soft Delete. SQL의 UPDATE
명령어를 사용하여 삭제 여부를 알 수 있는 칼럼
을 만들고 해당 칼럼에 데이터가 삭제되었다는 값을 넣어서 표현한다.
만약 3번을 물리삭제시 3번의 데이터 전체가 사라진다.
2번을 논리삭제시 위의 테이블 처럼 삭제여부가 1로 표시된다.
실제 서비스에는 삭제여부 값이 1인 행은 무시하고 삭제여부 값이 0인 행만 사용하면 된다.