전체 글(189)
-
[Python] A+B
a, b = map(int, input().split())print(a+b)
2024.07.17 -
[Python] Hello World
print('Hello World!')
2024.07.17 -
[Spring] 컨테이너에 등록된 빈 조회 방법
public class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("모든 빈 출력하기") void findAllBean() { String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); //타입을 모..
2024.07.16 -
[JPA] ORM(Object-Relational Mapping)과 JPA란 무엇인가?
ORM이란?ORM은 데이터베이스 테이블과 객체 지향 프로그래밍의 클래스 간의 매핑을 자동화하는 기술이다.이를 통해 SQL 쿼리를 직접 작성하지 않고도 데이터베이스 작업을 수행할 수 있다. ORM의 장점1. 개발 생산성 향상SQL 쿼리를 직접 작성하는 대신, ORM을 통해 간단한 메서드 호출로 데이터베이스 작업을 수행할 수 있다. 2. 유지보수성 향상객체 지향 코드로 데이터베이스 작업을 처리하므로, 코드의 가독성이 높아지고 유지보수가 쉬워진다. 3. 데이터베이스 독립성ORM 프레임워크는 다양한 데이터베이스를 지원하므로, 특정 데이터베이스에 종속되지 않고 애플리케이션을 개발할 수 있다.JPA(Java Persistence API)란?JPA는 자바 플랫폼의 ORM 표준 인터페이스이다.JPA는 객체와 관계형 데..
2024.07.13 -
[Spring] Entity 클래스에서 생성자, getter, setter를 선언하는 이유
public class Member { private Long id; private String name; private Grade grade; public Member(Long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void s..
2024.07.13 -
[Spring] Service를 Interface로 생성하는 이유 4가지
영한님 강의를 듣던 중 서비스를 인터페이스로 생성하고 이에 대한 구현체를 따로 만드시는 것을 보고 이렇게 하는 이유에 대한 궁금증이 생겼다. 참고로 위의 사진을 설명하자면인터페이스: MemberService는 서비스가 제공해야 할 기능(메서드)을 정의한다.구현체: MemberServiceImpl은 그 기능을 실제로 구현하는 클래스이다. 이렇게 서비스 단에서 인터페이스와 그에 대한 구현체를 만드는 이유는 4가지가 있다.1. 유연한 설계 및 느슨한 결합코드를 변경하는 범위가 최소화되어 유지보수가 쉬워진다. 나중에 MemberService의 구현체를 변경해야 하는 상황을 생각해보자.예를 들어, 현재 데이터베이스를 MySQL에서 MongoDB로 변경하고 싶을 때, 인터페이스가 없다면 모든 클라이언트 코드에서 M..
2024.07.13