230303 TIL #23 Bean / Soft Delete 논리삭제

김춘복·2023년 3월 2일
0

TIL : Today I Learned

목록 보기
23/543
post-custom-banner

230303 Today I Learned

Spring 숙련 주차에 진입했다. 한번 했던 개념을 심화에서 배우는 중이라 저번 주차에 비해 난이도는 어렵지 않았다. 하지만 아직 헷갈리는 개념인 빈을 다시 한번 정의해보고, 기술매니저님이 알려주신 Soft Delete에 대해 정리해보려 한다.

Bean

  • 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을 등록할 수 있다.

Soft Delete

참고사이트

  • DB에서 데이터를 삭제하는 방법은 물리삭제와 논리삭제가 있다.

  • 물리삭제 : Hard Delete. SQL의 DELETE 명령어를 사용해 직접 데이터를 삭제하는 방법.
    삭제 대상인 데이터가 더이상 필요없을때 사용한다. 실제 DB에서 해당 데이터를 아예 삭제해린다.

  • 논리삭제 : Soft Delete. SQL의 UPDATE 명령어를 사용하여 삭제 여부를 알 수 있는 칼럼을 만들고 해당 칼럼에 데이터가 삭제되었다는 값을 넣어서 표현한다.

  • 만약 3번을 물리삭제시 3번의 데이터 전체가 사라진다.

  • 2번을 논리삭제시 위의 테이블 처럼 삭제여부가 1로 표시된다.
    실제 서비스에는 삭제여부 값이 1인 행은 무시하고 삭제여부 값이 0인 행만 사용하면 된다.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글