환경 설정에서 webapps 폴더가 만들어지지 않는 경우환경 설정을 미리 하지 않으면 LifecycleException이 발생한다그렇기에 아래 사진과 같이 다음을 사용하여 빌드 및 실행: IntelliJ IDEA로 바꾼다그리고 Porject Settings > Modu
Docker에서 mysql 이미지를 받는경우 version은 latest default 명령은 docker pull \_\_\_\_:{version}docker run --name mysql-sample-container -e MYSQL_ROOT_PASSWORD=te
자바 단위 테스팅 프레임워크인 • JUnit5는 프로젝트만 만들어도 기본적으로 위와 같이 dependencies가 걸려있다.그러나테스트 코드 가독성을 높여주는 자바 라이브러리인• AssertJ는 아래와 같이 dependencies를 추가해야 한다.설정된 의존성이 잘 들
Shift(⇧) + F6 : 클래스, 변수, 파라미터 이름을 일괄적으로 변경해주는 단축키 입니다. cmd(⌘) + Shift(⇧) + F6 : 타입을 일괄적으로 변경 할 수 있습니다
JUnit 5 User Guidehttps://junit.org/junit5/docs/current/user-guide/JUnit 5 Tutorialhttps://www.petrikainulainen.net/programming/testing/juni
도메인을 구성하는 객체에는 어떤 것들이 있는지 고민객체들 간의 관계를 고민동적인 객체를 정적인 타입으로 추상화해서 도메인 모델링 하기협력을 설계객체들을 포괄하는 타입에 적절한 책임을 할당구현하기(1) 학점계산기 도메인 : 이수한 과목, 학점 계산기 라는 객체들이 필요할
객체들끼리 비교할 때는 "equals() and hashcode()" 가 있어야한다. (alt + insert) equals() and hashcode() 추가하면 아래 이미지와 같고test 코드가 통과가 된다.
• 서버와 클라이언트가 웹에서 데이터를 주고받기 위한 프로토콜(규약) 참고• HTTP/1.1 , HTTP/2는 TCP 기반 위에서 동작• HTTP/3는 UDP 기반 위에서 동작클라이언트-서버 모델• 무상태 프로토콜(Stateless)• 서버가 클라이언트 상태를 유지하지
Logback은 Java에서 가장 많이 사용 되었던 로깅 라이브러리인 log4j의 후속버전이며, log4j를 설계한 Ceki Gulgu에 의해 설계되었습니다.logback은 새롭게 작성된 logger가 아니라, 오랫동안 검증된 "log4j"의 아키텍쳐 기반으로 재작성
자바에서 웹 애플리케이션을 만드는 기술자바에서 동적인 웹 페이지를 구현하기 위한 표준 서블릿의 생성부터 소멸까지의 라이프사이클을 관리하는 역할서블릿 컨테이너는 웹 서버와 소켓을 만들고 통신하는 과정을 대신 처리해준다. 개발자는 비즈니스 로직에만 집중하면 된다.서블릿
init( ) Javax.servlet.Servlet javax.servlet.GenericServlet 추상 클래스를 통해 핵심적인 service 부분만 오버라이드를 통해 구현하고 나머지 필요없는 부분은 구현하지 않아도 된다. Javax.servlet.http
• 자바 애플리케이션에서 DB 프로그래밍을 할 수 있도록 도와주는 표준 인터페이스• JDBC 인터페이스들을 구현한 구현체들은 각 데이터베이스 벤더 사들이 제공• 미리 일정량의 DB 커넥션을 생성해서 풀에 저장해 두고 있다가 HTTP 요청에 따라 필요할 때 풀에서 커넥션
dependencies 블록이란?dependencies 블록은 프로젝트를 구성하기 위해 받아와야 할 라이브러리를 정의해놓는 공간이다.
위의 이미지에서 보이는 것처럼 resources안에 파일을 생성하여 user table을 만들었다.
https://start.spring.io/
출처: https://www.daleseo.com/lombok-popular-annotations/제일 먼저 살펴볼 어노테이션은 예를 들어, xxx라는 필드에 선언하면 자동으로 getXxx()( boolean 타입인 경우, isXxx() )와 setXxx()
출처: https://gmlwjd9405.github.io/2019/08/12/primary-key-mapping.html기본 키 생성을 데이터베이스에 위임즉, id 값을 null로 하면 DB가 알아서 AUTO_INCREMENT 해준다.Ex) MySQL, Po
=> Not Null 이라는 뜻이다.true가 기본값위 코드와 같이 @Column(nullable = true)인 경우 (아무 옵션이 없는경우) @Column을 생략할 수 도 있다.그러며 해당 Entity 클래스에 있는 모든 필드는 다른 @Transient 같은 언급
출처: https://castleone.tistory.com/2출처: https://mangkyu.tistory.com/75설정파일을 만들기 위한 어노테이션 or Bean을 등록하기 위한 어노테이션이다.@Configuration 애노테이션을 사용하면
모든 JPA Entity들은 hibernate 구현체를 사용하는 기준으로 설명하자면기본 생성자를 가지고 있어야한다.동등성 검사하기 위해서 각 필드가 모두 맞는지 검사할 필요는 없다객체와 객체를 비교할 때 생성시간, 일자, 제목, 본문이 다 같아도 id를 비교하면 되므로
출처: https://junhyunny.github.io/spring-boot/jpa/test-driven-development/do-not-replace-database-when-using-data-jpa-test-annotation/
기존 Article.class와 ArticleComment.class에 중복되어 있는 위의 코드를 추출을 하는 방법은 총 2가지가 있다.@Embedded 방식과 @MappedSuperclass 방식이 있다.강의에서는 @MappedSuperclass를 사용하였다.아래와
이 어노테이션이 붙으면 스프링은 해당 타깃을 포인트 컷의 대상으로 자동 등록하며 트랜잭션 관리 대상이 된다. 즉, 이 어노테이션을 통해 포인트 컷에 등록하고 트랜잭션 속성을 부여하는 것이다.트랜잭션 어노테이션을 테스트에 붙이면 테스트의 DB 커밋을 롤백해주는 기능이 있
ThymeleafConfig.class위의 코드는 강사님이 따로 만든 코드로 이를 yaml에 추가를 하면 인식이 안될 때가 있다. 이를 해결하기 위해서이 코드를 build.gradle에 추가를 하면 사용자가 직접 만든 property 들도 문서세팅이 가능해지고 idea