Develop199 Assert.assertTrue(); 안됨 해결 Spring 강의를 듣다가 Assert.assertTrue(); 메서드를 사용해야 하는 경우가 생겼다. 그러나, 계속해서 Assert 부분의 import 가 되지 않았다. 애초에 junit 에 Assert 라는 건 없다고 해서 당황했다. 구글링 결과, import org.junit.jupiter.api.Assertions; Assertions 를 적어주니, 해결이 되었다. 결국, Assert.assertTrue(); 가 아닌 Assertions.assertTrue(); 인 것이다. 구글링에는 모두 Assert 라고 되어있었지만, 짐작으론 19년도 이후로 명명이 바뀐 듯 하다. 해결 끝! 2022. 7. 28. @Autowired 란? Spring 에서 가장 큰 장점은 DI 이다. DI 란 Dependency Injection 의 약자로 '의존성 주입'이다. 이 DI 를 @Autowired 를 통해서 구현해준다. 보통 객체를 생성한다고 하면, UserRepository userRepository = new UserRepository(); 이러한 방식으로 써준다. 그러나, 이 새로운 객체를 Spring 에서 관리하겠다 라는 차원에서 의존성 주입이 들어간다. 결론은 DI 는 @Autowired 로 구현한다. @Autowired private UserRepository userRepository; 위와 같이 말이다. 2022. 7. 27. Repository 란? Repository 는 따로 쿼리문을 작성하지 않아도 Creat : 생성 Read : 읽기 Update : 갱신 Delete : 삭제 이런 기본적인 것들을 사용할 수 있게끔 해주는 것이다. @Repository public interface UserRepository extends JpaRepository { } 다음과 같이 코드를 작성하면 Repository 를 사용할 준비를 마친 것이다. 2022. 7. 27. 팩토리 패턴이란? 팩토리 패턴(Factory Pattern) 말 그대로, 공장과 같은 디자인 패턴이다. 객체를 어떻게 생성할 것인지에 대한 클래스 하나와 객체 생성만 하는 클래스 하나가 결합되어 동작한다. 예를 들면, 음식 레시피를 가진 클래스 하나와 그 레시피를 가지고 음식을 만들어내는 클래스 하나가 결합된 것이다. 이렇게 되면 장점은 유지보수성이 증가한다. 객체를 생성하는 로직이 따로 존재하기 때문에, 느슨한 결합을 가지며 이는 곧 유지보수성의 증가로 이어진다. package factory; // 아이스크림 -> 기본, 딸기, 초코 // 기본 1000, 딸기 2000, 초코 3000 abstract class IceCream { public abstract int getPrice(); @Override public S.. 2022. 7. 27. Naming Convention 네이밍 규칙이라고 보면 된다. 1. Camel Case 주로 Java 의 변수 선언 시에 사용된다. ex) phoneNumber, createdAt, updatedAt 2. Snake Case 주로 DB Column 에 사용된다. ex) phone_number, created_at, updated_at 2022. 7. 26. Gradle - compile 에러 build.gradle 의 dependencies 에서 compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('mysql:mysql-connector-java') 위 두 코드를 입력하는 과정에서, Could not find method compile() for arguments [org.springframework.boot:spring-boot-starter-data-jpa] ~ 이라는 에러가 떴다. 구글링을 해보니, Gradle 7.0 버전 이후로는 compile 이라는 명령은 없어졌다고 한다. compile 대신 implementation 이라는 명령을 써야했다. 2022. 7. 26. JPA 란? JPA ( Java Persistent Api ) 자바의 객체(Object)가 Mapping 을 통해서 관계형 데이터베이스(Relation DB)에 손쉽게 연결되고 그 DB 를 손쉽게 활용할 수 있도록 도와주는 라이브러리이다. 쿼리에 집중하기 보다는 객체에 좀 더 집중하게 해주어, 프로그래밍적으로 많이 활용된다. 2022. 7. 26. Lombok 이란? 우리는 대게 클래스를 생성하고 그 클래스 내에서 기본 생성자, 매개변수를 받는 생성자, getter & setter 메서드 등을 구현한다. public class SearchParam { private String account; private String email; private int page; // 기본생성자 public SearchParam() {} // 매개변수를 받는 생성자 public SearchParam(String account, String email, int page) { this.accont = account; this.email = email; this.page = page; } // getter&setter 메서드 public String getAccount() { return.. 2022. 7. 26. 싱글톤 패턴이란? 싱글톤 패턴(Singleton Pattern)은 바탕이 되는 하나의 클래스에 딱 하나의 인스턴스를 생성한다. 생성된 인스턴스 하나를 가지고 다른 모듈들이 공유하며 사용한다. 인스턴스를 여러 번 생성할 때 들어가는 비용을 줄일 수 있다. 그러나, 의존성이 높아지는 단점이 존재한다. (이러한 단점은 '의존성 주입' 을 통해 해결할 수 있다.) package singleton; class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } r.. 2022. 7. 26. 이전 1 ··· 18 19 20 21 22 23 다음