12월 29일 금 TIL

장숭혁·2023년 12월 30일
0

TIL작성

목록 보기
41/60
public interface ColumnService {
    List<Column> getAllColumns();
    Column getColumnById(Long id);
    Column createColumn(Column column);
    Column updateColumn(Long id, Column column);
    void deleteColumn(Long id);
}

💻 ColumnService 인터페이스에서 선언된 각 메서드의 역할

  1. List getAllColumns(): 이 메서드는 데이터베이스에 있는 모든 'Column' 데이터를 조회하고, 그 결과를 List 형태로 반환하는 역할을 한다. 데이터베이스에서 'Column' 테이블의 모든 레코드를 가져와서 Java 객체로 변환 후, 이를 List에 담아 반환한다.
  2. Column getColumnById(Long id): 이 메서드는 주어진 id와 일치하는 'Column' 데이터를 데이터베이스에서 조회하고, 그 결과를 'Column' 객체로 반환하는 역할을 한다. 데이터베이스에서 id로 'Column' 테이블의 특정 레코드를 찾아서 Java 객체로 변환 후 반환한다.
  3. Column createColumn(Column column): 이 메서드는 새로운 'Column' 데이터를 데이터베이스에 생성하는 역할을 한다. 매개변수로 받은 'Column' 객체를 데이터베이스에 새 레코드로 저장하고, 저장된 'Column' 데이터를 Java 객체로 변환하여 반환한다.
    @Override
      public Column createColumn(Column column) {
          return columnRepository.save(column);
      }
  4. Column updateColumn(Long id, Column column): 이 메서드는 주어진 id에 해당하는 'Column' 데이터를 데이터베이스에서 수정하는 역할을 한다. 매개변수로 받은 id와 'Column' 객체의 정보를 사용하여 데이터베이스의 해당 레코드를 업데이트하고, 업데이트된 'Column' 데이터를 Java 객체로 변환하여 반환한다.
  5. void deleteColumn(Long id): 이 메서드는 주어진 id에 해당하는 'Column' 데이터를 데이터베이스에서 삭제하는 역할을 한다. 매개변수로 받은 id와 일치하는 'Column' 테이블의 레코드를 데이터베이스에서 삭제한다.
  • ColumnService 인터페이스는 'Column' 데이터에 대한 CRUD(Create, Read, Update, Delete) 연산을 정의하고 있다. 이 인터페이스를 구현한 ColumnServiceImpl 클래스에서는 위 메서드들을 구현하여 실제로 데이터베이스와의 상호작용을 담당하게 된다.

    @Service
    public class ColumnServiceImpl implements ColumnService {
    
      @Autowired
      private ColumnRepository columnRepository;
    
      @Override
      public List<Column> getAllColumns() {
          return columnRepository.findAll();
      }
    
      @Override
      public Column getColumnById(Long id) {
          return columnRepository.findById(id).orElse(null);
      }
    
      @Override
      public Column createColumn(Column column) {
          return columnRepository.save(column);
      }
    
      @Override
      public Column updateColumn(Long id, Column updatedColumn) {
          Optional<Column> existingColumn = columnRepository.findById(id);
    
          if (existingColumn.isPresent()) {
              Column column = existingColumn.get();
              column.setName(updatedColumn.getName());
              return columnRepository.save(column);
          } else {
              return null; // 예외 처리
          }
      }
    
      @Override
      public void deleteColumn(Long id) {
          columnRepository.deleteById(id);
      }
    }
  • interface를 구현하여 코드를 사용하는 이유

    • 해당 클래스가 어떤 메서드를 제공하는지를 명확하게 보여주기 위해.
    • 유연성: 인터페이스를 사용하면 다양한 구현체를 쉽게 교체할 수 있다.
    • 테스트 용이성: 인터페이스를 사용하면 모의 객체(Mock Object)를 쉽게 만들어 단위 테스트를 수행할 수 있다.
    • 의존성 역전 원칙(Dependency Inversion Principle)

모르고 dev 테이블에서 작업을 진행했었을때? 옮기는 방법

  • 다행히 커밋하기 이전이라 git checkout -b card를 사용해서 바로 옮길 수 있었다.
profile
코딩 기록

0개의 댓글

관련 채용 정보