2023.04.26 Study

ChoRong0824·2023년 5월 4일
1

Java

목록 보기
14/31
post-thumbnail

2023.04.26 자바 및 프로젝트 스터디 리뷰


새로 알게되거나 헷갈렸던 것들

IS-A : 은유법
업캐스팅, 다운캐스팅
오버라이딩 되었을 때의 경우 생각.
메서드 재정의 되어있으면 웬만해선 자식꺼임.
멤버변수가 재정의되면 다시 생각해봐야함.
챗 gpt - 쿼리에만 쓰면 됨. (쿼리에선 9할 이상 되는 것 같음)


실무에서 인터페이스와 상속의 차이점

  1. 기능 확장 방법
  • 상속: 부모 클래스에서 자식 클래스로 기능을 전달하며, 자식 클래스는 부모 클래스의 기능을 사용하면서 새로운 기능을 추가하거나 변경할 수 있습니다.
  • 인터페이스: 메서드의 시그니처만을 정의하고, 다른 클래스에서 해당 인터페이스를 구현하여 실제 기능을 구현합니다. 이 방법은 기능의 확장에 있어서 상속보다 더 유연한 방법입니다.
  1. 다중 구현 가능 여부
  • 상속: 하나의 클래스만 상속할 수 있으므로, 다중 구현이 불가능합니다.
  • 인터페이스: 다중 구현이 가능하므로, 한 클래스에서 여러 개의 인터페이스를 구현하여 다형성을 구현할 수 있습니다.
  1. 결합도(Coupling)
  • 상속: 상속을 사용하면 부모 클래스와 자식 클래스 간에 강한 결합도가 발생합니다. 이는 상속 구조가 복잡하고 깊어질수록 유지보수의 어려움을 야기할 수 있습니다.
  • 인터페이스: 인터페이스를 사용하면 결합도를 낮출 수 있습니다. 인터페이스는 클래스의 독립성을 보장하며, 인터페이스를 구현하는 클래스는 인터페이스의 변화에 대응하기 쉽습니다.
  1. 코드의 재사용
  • 상속: 상속을 사용하면 부모 클래스의 코드를 재사용할 수 있습니다. 하지만 자식 클래스가 부모 클래스의 모든 멤버를 상속받게 되므로, 필요하지 않은 멤버도 상속받아서 코드가 불필요하게 복잡해질 수 있습니다.
  • 인터페이스: 인터페이스를 사용하면 코드의 재사용성을 높일 수 있습니다. 인터페이스는 클래스와 무관하게 설계되기 때문에, 다양한 클래스에서 인터페이스를 구현하여 코드를 재사용할 수 있습니다.
    따라서, 실무에서는 기능의 확장성, 결합도, 다중 구현 가능 여부, 코드의 재사용성 등을 고려하여 인터페이스와 상속 중 적절한 방법을 선택하여 사용하시면 됩니다.

다음 스터디까지 내가 알아가야할 내용들

  • 클래스 및 객체 확실하게 다시 보기.
  • 데이터 베이스 공부해오기 (테이블 짜는 것은 몰라도, 테이블 구성하는 것이 무엇인지 볼 수 있도록)
  • 논리명 물리명이 무엇인지 확인하기
    -> 한글 왼쪽 (물리명 왼쪽, 논리명 우측 but 논리명은 영어, 물리명은 한글) 영어 우측

논리명 물리명 참고

  • JPA가 무엇인지 어떨때 쓰는지 확인해보기 . 만약 해당 스터디에서 쓰고, 말하는 것들이 JPA인지
    -> 스터디에서 내용을 말했던 것들은 전반적인 DB를 구성하는 테이블을 얘기하는 거였음.

물리명 && 논리명

물리명

CREATE TABLE에 지정하는 테이블 이름이나 열 이름.
길이 제한이 있거나 공백문자를 사용할 수 없는 등의 제약이 따름.
알파벳을 사용해 이름을 지정.

논리명

설계상의 이름 (한글도 가능함)
물리명 만으로는 의미가 전달되지 않는 경우도 많이 논리명이 필요.
실제로 부를 때 사용하는 이름


JPA가 무엇인지, 언제 쓰는지

JPA는 Java Persistence API의 약자로,
자바 애플리케이션에서 객체와 관계형 데이터베이스 간의 데이터를 영구적으로 저장하고 검색할 수 있는 API를 제공하는 자바 ORM(Object-Relational Mapping) 기술입니다.

JPA를 사용하면 개발자는 데이터베이스에 직접 쿼리를 작성하는 대신, 객체 지향적인 방식으로 데이터를 다룰 수 있습니다.
즉, 개발자는 객체를 생성하고 JPA를 통해 데이터베이스에 저장할 수 있으며,
JPA가 이를 데이터베이스에 맞는 SQL 쿼리로 변환하여 실행합니다.

JPA는 대규모 애플리케이션 개발에서 많이 사용되며,
객체 지향적인 코드 작성과 데이터베이스 간의 연결을 단순화할 수 있습니다.
또한, JPA는 트랜잭션 관리와 같은 데이터베이스 작업을 처리하는 데 도움을 줄 수 있습니다.

따라서, JPA를 사용하면 개발자는 보다 직관적이고 유지보수가 쉬운 코드를 작성할 수 있으며, 데이터베이스 작업에 대한 복잡성을 감소시킬 수 있습니다.


트랜잭션

데이터베이스에서 한 번에 실행되어야 하는 일련의 작업들을 묶어서 논리적인 작업 단위로 만든 것입니다. 즉, 여러 개의 쿼리나 데이터베이스 조작들을 하나의 트랜잭션으로 묶어서 실행하면, 모든 작업이 성공적으로 완료되거나 전혀 실행되지 않게 됩니다. 이를 통해 데이터베이스의 데이터 무결성과 일관성을 보장할 수 있습니다.

쿼리

데이터베이스에서 데이터를 검색, 추가, 수정 또는 삭제하는 명령어입니다. 쿼리를 사용하여 데이터베이스에서 원하는 데이터를 가져오거나 조작할 수 있습니다. 예를 들어, "SELECT * FROM Customers"라는 SQL 쿼리를 사용하면 Customers 테이블에서 모든 데이터를 검색할 수 있습니다.

즉 ,
JPA를 사용하면 개발자는 직접 SQL 쿼리를 작성하는 대신, 객체 지향적인 방식으로 데이터를 다루는 것이 가능해집니다.
개발자는 객체를 생성하고 JPA를 통해 데이터베이스에 저장할 수 있으며,
JPA가 이를 데이터베이스에 맞는 SQL 쿼리로 변환하여 실행합니다.
따라서, JPA를 사용하면 개발자는 SQL 쿼리를 작성하는 대신,
객체를 다루듯이 코드를 작성할 수 있습니다.

profile
컴퓨터공학과에 재학중이며, 백엔드를 지향하고 있습니다. 많이 부족하지만 열심히 노력해서 실력을 갈고 닦겠습니다. 부족하고 틀린 부분이 있을 수도 있지만 이쁘게 봐주시면 감사하겠습니다. 틀린 부분은 댓글 남겨주시면 제가 따로 학습 및 자료를 찾아봐서 제 것으로 만들도록 하겠습니다. 귀중한 시간 방문해주셔서 감사합니다.

0개의 댓글